diff options
author | Manuel 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) |
commit | 372952d77c90109a6ccb0acbbf1373758d7b6379 (patch) | |
tree | df857e8c1d1492bd4fb21e8ba08451f287cdc482 | |
parent | 0904da14a04b98cf250ae9bb44137656581f1491 (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.py | 31 | ||||
-rw-r--r-- | src/jarabe/journal/listview.py | 17 |
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: |