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