Web   ·   Wiki   ·   Activities   ·   Blog   ·   Lists   ·   Chat   ·   Meeting   ·   Bugs   ·   Git   ·   Translate   ·   Archive   ·   People   ·   Donate
summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorAleksey Lim <alsroot@member.fsf.org>2010-01-22 02:51:20 (GMT)
committer Aleksey Lim <alsroot@member.fsf.org>2010-01-22 02:51:20 (GMT)
commit748620f5e56a6da75fa99a0d9aed2cfd0b58976d (patch)
treee9e310250d30aaf8621c1ffcea501850b427ba34
parent87beb0b65270cefbe6d19bbbdee6049ee417fadc (diff)
Do not discard thumb on every requery
-rw-r--r--src/jarabe/journal/thumbsview.py25
1 files changed, 8 insertions, 17 deletions
diff --git a/src/jarabe/journal/thumbsview.py b/src/jarabe/journal/thumbsview.py
index 5b085b1..aaed3d7 100644
--- a/src/jarabe/journal/thumbsview.py
+++ b/src/jarabe/journal/thumbsview.py
@@ -30,7 +30,8 @@ class _Cell(Cell):
def __init__(self):
Cell.__init__(self)
- self._offset = None
+ self._last_thumb_offset = None
+ self._last_thumb_mtime = None
cell = gtk.HBox()
self.add(cell)
@@ -74,10 +75,6 @@ class _Cell(Cell):
self.show_all()
- def discard_thumb(self):
- self._set_thumb_widget(self._icon)
- self._offset = None
-
def do_fill_in_cell_content(self, table, offset, metadata):
self._keep.fill_in(metadata)
self._details.fill_in(metadata)
@@ -86,14 +83,17 @@ class _Cell(Cell):
self._icon.fill_in(metadata)
self._thumb.fill_in(metadata)
- if self._offset != offset:
- self.discard_thumb()
+ if self._last_thumb_offset != offset or \
+ self._last_thumb_mtime != metadata.get('timestamp'):
+ self._set_thumb_widget(self._icon)
+ self._last_thumb_offset = None
+ self._last_thumb_mtime = metadata.get('timestamp')
preview.fetch(offset, metadata)
else:
self._set_thumb_widget(self._thumb)
def fill_pixbuf_in(self, offset, pixbuf):
- self._offset = offset
+ self._last_thumb_offset = offset
self._thumb.image.set_from_pixbuf(pixbuf)
self._set_thumb_widget(self._thumb)
@@ -118,15 +118,6 @@ class ThumbsView(HomogeneView):
self.connect('frame-scrolled', self.__frame_scrolled_cb)
preview.fetched.connect(self.__preview_fetched_cb)
- def set_result_set(self, result_set):
- if result_set is self.get_result_set():
- return
-
- for cell in self.frame_cells:
- cell.discard_thumb()
-
- HomogeneView.set_result_set(self, result_set)
-
def __frame_scrolled_cb(self, table):
preview.discard_queue(table.frame_range)