Web   ·   Wiki   ·   Activities   ·   Blog   ·   Lists   ·   Chat   ·   Meeting   ·   Bugs   ·   Git   ·   Translate   ·   Archive   ·   People   ·   Donate
summaryrefslogtreecommitdiffstats
path: root/src/jarabe/journal/browse/tableview.py
diff options
context:
space:
mode:
Diffstat (limited to 'src/jarabe/journal/browse/tableview.py')
-rw-r--r--src/jarabe/journal/browse/tableview.py24
1 files changed, 16 insertions, 8 deletions
diff --git a/src/jarabe/journal/browse/tableview.py b/src/jarabe/journal/browse/tableview.py
index 362c6ba..b5d45cd 100644
--- a/src/jarabe/journal/browse/tableview.py
+++ b/src/jarabe/journal/browse/tableview.py
@@ -15,6 +15,7 @@
# Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
import gtk
+import math
import hippo
import gobject
import logging
@@ -55,15 +56,18 @@ class TableView(SmoothTable):
def set_model(self, model):
if self._model == model:
return
+
if self._model:
self._model.disconnect_by_func(self.__row_changed_cb)
self._model.disconnect_by_func(self.__table_resized_cb)
+
self._model = model
+
if model:
self._model.connect('row-changed', self.__row_changed_cb)
- self._model.connect('row-inserted', self.__table_resized_cb)
- self._model.connect('row-deleted', self.__table_resized_cb)
- self.bin_rows = self._model.iter_n_children(None) / self.columns
+ self._model.connect('rows-reordered', self.__table_resized_cb)
+
+ self._resize()
model = gobject.property(type=object,
getter=get_model, setter=set_model)
@@ -101,7 +105,12 @@ class TableView(SmoothTable):
return canvas
- def _fill_in(self, canvas, y, x, row=None):
+ def _resize(self):
+ rows = int(math.ceil(float(self._model.iter_n_children(None)) / \
+ self.columns))
+ self.bin_rows = rows
+
+ def _fill_in(self, canvas, y, x, prepared_row=None):
cell = canvas.table_view_cell
sel_box = canvas.table_view_cell_sel_box
@@ -112,7 +121,7 @@ class TableView(SmoothTable):
bg_color = COLOR_BACKGROUND
sel_box.props.background_color = bg_color.get_int()
- cell.row = row
+ cell.row = prepared_row
if cell.row is None:
cell_num = y * self.columns + x
@@ -156,8 +165,7 @@ class TableView(SmoothTable):
return
row = self._model.get_row(path)
-
self._fill_in(canvas, y, x, row)
- def __table_resized_cb(self, model=None, path=None, iter=None):
- self.bin_rows = self._model.iter_n_children(None) / self.columns
+ def __table_resized_cb(self, model=None, path=None, iter=None, arg3=None):
+ self._resize()