Web   ·   Wiki   ·   Activities   ·   Blog   ·   Lists   ·   Chat   ·   Meeting   ·   Bugs   ·   Git   ·   Translate   ·   Archive   ·   People   ·   Donate
summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorManuel QuiƱones <manuq@laptop.org>2012-08-30 01:27:12 (GMT)
committer Manuel QuiƱones <manuq@laptop.org>2012-08-30 01:27:12 (GMT)
commit372952d77c90109a6ccb0acbbf1373758d7b6379 (patch)
treedf857e8c1d1492bd4fb21e8ba08451f287cdc482
parent0904da14a04b98cf250ae9bb44137656581f1491 (diff)
Fix Journal custom TreeModel do_* override methods
Specially the return values changed. There are pending bugs still.
-rw-r--r--src/jarabe/journal/listmodel.py31
-rw-r--r--src/jarabe/journal/listview.py17
2 files changed, 29 insertions, 19 deletions
diff --git a/src/jarabe/journal/listmodel.py b/src/jarabe/journal/listmodel.py
index b50e8b2..b98d01c 100644
--- a/src/jarabe/journal/listmodel.py
+++ b/src/jarabe/journal/listmodel.py
@@ -114,10 +114,11 @@ class ListModel(GObject.GObject, Gtk.TreeModel, Gtk.TreeDragSource):
else:
return 0
- def do_get_value(self, index, column):
+ def do_get_value(self, iterator, column):
if self.view_is_resizing:
return None
+ index = iterator.user_data
if index == self._last_requested_index:
return self._cached_row[column]
@@ -200,33 +201,39 @@ class ListModel(GObject.GObject, Gtk.TreeModel, Gtk.TreeDragSource):
return self._cached_row[column]
- def do_iter_nth_child(self, iterator, n):
- return n
+ def do_iter_nth_child(self, parent_iter, n):
+ return (False, None)
def do_get_path(self, iterator):
- return (iterator)
+ treepath = Gtk.TreePath((iterator.user_data,))
+ return treepath
def do_get_iter(self, path):
- return (False, None)
+ idx = path.get_indices()[0]
+ iterator = Gtk.TreeIter()
+ iterator.user_data = idx
+ return (True, iterator)
def do_iter_next(self, iterator):
- if iterator != None:
- if iterator >= self._result_set.length - 1:
- return None
- return iterator + 1
- return None
+ idx = iterator.user_data + 1
+ if idx >= self._result_set.length:
+ iterator.stamp = -1
+ return (False, iterator)
+ else:
+ iterator.user_data = idx
+ return (True, iterator)
def do_get_flags(self):
return Gtk.TreeModelFlags.ITERS_PERSIST | Gtk.TreeModelFlags.LIST_ONLY
def do_iter_children(self, iterator):
- return None
+ return (False, iterator)
def do_iter_has_child(self, iterator):
return False
def do_iter_parent(self, iterator):
- return None
+ return (False, Gtk.TreeIter())
def do_drag_data_get(self, path, selection):
uid = self[path][ListModel.COLUMN_UID]
diff --git a/src/jarabe/journal/listview.py b/src/jarabe/journal/listview.py
index 8710660..cdd0da7 100644
--- a/src/jarabe/journal/listview.py
+++ b/src/jarabe/journal/listview.py
@@ -236,15 +236,15 @@ class BaseListView(Gtk.Bin):
if self._model is not None:
self._model.stop()
- def __buddies_set_data_cb(self, column, cell, tree_model, tree_iter):
+ def __buddies_set_data_cb(self, column, cell, tree_model, tree_iter, data):
progress = tree_model[tree_iter][ListModel.COLUMN_PROGRESS]
cell.props.visible = progress >= 100
- def __progress_data_cb(self, column, cell, tree_model, tree_iter):
+ def __progress_data_cb(self, column, cell, tree_model, tree_iter, data):
progress = tree_model[tree_iter][ListModel.COLUMN_PROGRESS]
cell.props.visible = progress < 100
- def __favorite_set_data_cb(self, column, cell, tree_model, tree_iter):
+ def __favorite_set_data_cb(self, column, cell, tree_model, tree_iter, data):
favorite = tree_model[tree_iter][ListModel.COLUMN_FAVORITE]
if favorite:
client = GConf.Client.get_default()
@@ -413,6 +413,7 @@ class BaseListView(Gtk.Bin):
if not self.tree_view.get_realized():
return
visible_range = self.tree_view.get_visible_range()
+ logging.debug('MANUQ visible_range %r', visible_range)
if visible_range is None:
return
@@ -422,10 +423,12 @@ class BaseListView(Gtk.Bin):
tree_model = self.tree_view.get_model()
while True:
- x, y, width, height = self.tree_view.get_cell_area(path,
- self.sort_column)
- x, y = self.tree_view.convert_tree_to_widget_coords(x, y)
- self.tree_view.queue_draw_area(x, y, width, height)
+ cel_rect = self.tree_view.get_cell_area(path,
+ self.sort_column)
+ x, y = self.tree_view.convert_tree_to_widget_coords(cel_rect.x,
+ cel_rect.y)
+ self.tree_view.queue_draw_area(x, y, cel_rect.width,
+ cel_rect.height)
if path == end_path:
break
else: