Fix GtkWarning: gtk_tree_view_unref_tree_helper: assertion `node != NULL'

Handle next on record in a dict for each ModelList
This commit is contained in:
Cédric Krier committed 2008-05-27 12:53:08 +02:00
1 parent d6dc45362a
commit 7687283388
4 files changed
+15 -14

No files matched your search

+7 -6
View File
@@ -13,18 +13,19 @@ class ModelList(list):
def insert(self, pos, obj):
if pos >= 1:
self.__getitem__(pos - 1).next = obj
self.__getitem__(pos - 1).next[id(self)] = obj
if pos < self.__len__():
obj.next = self.__getitem__(pos)
obj.next[id(self)] = self.__getitem__(pos)
else:
obj.next = None
obj.next[id(self)] = None
super(ModelList, self).insert(pos, obj)
if not self.lock_signal:
self.__screen.signal('record-changed', ('record-added', pos))
def append(self, obj):
if self.__len__() >= 1:
self.__getitem__(self.__len__() - 1).next = obj
self.__getitem__(self.__len__() - 1).next[id(self)] = obj
obj.next[id(self)] = None
super(ModelList, self).append(obj)
if not self.lock_signal:
self.__screen.signal('record-changed', ('record-added', -1))
@@ -33,9 +34,9 @@ class ModelList(list):
idx = self.index(obj)
if idx >= 1:
if idx + 1 < self.__len__():
self.__getitem__(idx - 1).next = self.__getitem__(idx + 1)
self.__getitem__(idx - 1).next[id(self)] = self.__getitem__(idx + 1)
else:
self.__getitem__(idx - 1).next = None
self.__getitem__(idx - 1).next[id(self)] = None
super(ModelList, self).remove(obj)
if not self.lock_signal:
self.__screen.signal('record-changed', ('record-removed', idx))
+1 -1
View File
@@ -39,7 +39,7 @@ class ModelRecord(SignalEvent):
self.modified_fields = {}
self.read_time = time.time()
self.attachment_count = -1
self.next = None
self.next = {}
for key, val in self.mgroup.mfields.items():
self.value[key] = val.create(self)
if (new and val.attrs['type']=='one2many') \
+1 -1
View File
@@ -145,10 +145,10 @@ class ViewForm(ParserView):
return self.widgets[name]
def destroy(self):
self.widget.destroy()
for widget in self.widgets.keys():
self.widgets[widget].widget.destroy()
del self.widgets[widget]
self.widget.destroy()
del self.widget
del self.widgets
del self.screen
+6 -6
View File
@@ -24,14 +24,14 @@ class AdaptModelGroup(gtk.GenericTreeModel):
def added(self, modellist, position):
if modellist is self.models:
model = self.models[position]
self.emit('row_inserted', self.on_get_path(model),
self.get_iter(self.on_get_path(model)))
self.row_inserted(self.on_get_path(model),
self.get_iter(self.on_get_path(model)))
def cancel(self):
pass
def removed(self, lst, position):
self.emit('row_deleted', position)
self.row_deleted(position)
self.invalidate_iters()
def append(self, model):
@@ -71,10 +71,10 @@ class AdaptModelGroup(gtk.GenericTreeModel):
prev = None
for model in self.models:
if prev:
prev.next = model
prev.next[id(self.models)] = model
prev = model
if prev:
prev.next = None
prev.next[id(self.models)] = None
self.rows_reordered(None, None, new_order)
def __len__(self):
@@ -109,7 +109,7 @@ class AdaptModelGroup(gtk.GenericTreeModel):
def on_iter_next(self, node):
try:
return node.next
return node.next[id(self.models)]
except IndexError:
return None