GTK3: store integer in user_data of iter:
https://bugzilla.gnome.org/show_bug.cgi?id=683599 svn: r20429
This commit is contained in:
parent
987be6c408
commit
2aa5848247
@ -233,8 +233,10 @@ class FlatNodeMap(object):
|
||||
:param type: an object handle
|
||||
:Returns: the path, or None if handle does not link to a path
|
||||
"""
|
||||
handle = iter.user_data
|
||||
return self.get_path_from_handle(handle)
|
||||
index = iter.user_data
|
||||
if index is None:
|
||||
return None
|
||||
return Gtk.TreePath((self.real_path(index),))
|
||||
|
||||
def get_path_from_handle(self, handle):
|
||||
"""
|
||||
@ -269,7 +271,8 @@ class FlatNodeMap(object):
|
||||
"""
|
||||
iter = Gtk.TreeIter()
|
||||
iter.stamp = self.stamp
|
||||
iter.user_data = handle
|
||||
##GTK3: user data may only be an integer, we store the index
|
||||
iter.user_data = self._hndl2index[handle]
|
||||
return iter
|
||||
|
||||
def get_iter(self, path):
|
||||
@ -313,12 +316,11 @@ class FlatNodeMap(object):
|
||||
in the treeview is needed
|
||||
:param type: an object handle
|
||||
"""
|
||||
handle = iter.user_data
|
||||
if handle is None:
|
||||
index = iter.user_data
|
||||
if index is None:
|
||||
#Nothing on this level
|
||||
return False
|
||||
|
||||
index = self._hndl2index.get(handle)
|
||||
if self._reverse :
|
||||
index -= 1
|
||||
if index < 0:
|
||||
@ -748,8 +750,8 @@ class FlatBaseModel(GObject.Object, Gtk.TreeModel):
|
||||
See Gtk.TreeModel.
|
||||
col is the model column that is needed, not the visible column!
|
||||
"""
|
||||
#print 'do_get_val', iter, iter.user_data, col,
|
||||
handle = iter.user_data
|
||||
#print 'do_get_val', iter, iter.user_data, col
|
||||
handle = self.node_map._index2hndl[iter.user_data][1]
|
||||
if handle != self.prev_handle:
|
||||
data = self.map(str(handle))
|
||||
if data is None:
|
||||
@ -781,7 +783,7 @@ class FlatBaseModel(GObject.Object, Gtk.TreeModel):
|
||||
#print 'do_iter_next', iter, iter.user_data
|
||||
handle = self.node_map.find_next_handle(iter)
|
||||
if handle:
|
||||
iter.user_data = handle[1]
|
||||
iter.user_data = self.node_map._hndl2index[handle[1]]
|
||||
return True
|
||||
else:
|
||||
return False
|
||||
|
Loading…
Reference in New Issue
Block a user