summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPhilip Withnall <philip.withnall@collabora.co.uk>2010-06-29 16:37:36 +0100
committerPhilip Withnall <philip@tecnocode.co.uk>2010-06-29 21:18:33 +0100
commitdaca09dc2c2306d4fa82a68bbdd147d4b170a1e7 (patch)
treecdec07c35e2814791887c706a86c521709888c14
parentbb8adb7f02f0c5494df2cb6e535e44d23902e8f5 (diff)
downloadpygobject-daca09dc2c2306d4fa82a68bbdd147d4b170a1e7.tar.gz
Add override for TreeModel implementing __len__()
Closes: bgo#622882
-rw-r--r--gi/overrides/Gtk.py11
-rw-r--r--tests/test_overrides.py5
2 files changed, 14 insertions, 2 deletions
diff --git a/gi/overrides/Gtk.py b/gi/overrides/Gtk.py
index 0c3dcc52..0c2d1d98 100644
--- a/gi/overrides/Gtk.py
+++ b/gi/overrides/Gtk.py
@@ -340,7 +340,14 @@ class TextBuffer(Gtk.TextBuffer):
TextBuffer = override(TextBuffer)
__all__.append('TextBuffer')
-class ListStore(Gtk.ListStore):
+class TreeModel(Gtk.TreeModel):
+ def __len__(self):
+ return self.iter_n_children(None)
+
+TreeModel = override(TreeModel)
+__all__.append('TreeModel')
+
+class ListStore(Gtk.ListStore, TreeModel):
def __init__(self, *column_types):
Gtk.ListStore.__init__(self)
self.set_column_types(column_types)
@@ -362,7 +369,7 @@ class ListStore(Gtk.ListStore):
ListStore = override(ListStore)
__all__.append('ListStore')
-class TreeStore(Gtk.TreeStore):
+class TreeStore(Gtk.TreeStore, TreeModel):
def __init__(self, *column_types):
Gtk.TreeStore.__init__(self)
diff --git a/tests/test_overrides.py b/tests/test_overrides.py
index 0509cfaa..7255a5fa 100644
--- a/tests/test_overrides.py
+++ b/tests/test_overrides.py
@@ -159,6 +159,7 @@ class TestGtk(unittest.TestCase):
def test_tree_api(self):
self.assertEquals(Gtk.TreeStore, overrides.Gtk.TreeStore)
self.assertEquals(Gtk.ListStore, overrides.Gtk.ListStore)
+ self.assertEquals(Gtk.TreeModel, overrides.Gtk.TreeModel)
self.assertEquals(Gtk.TreeViewColumn, overrides.Gtk.TreeViewColumn)
class TestClass(GObject.GObject):
@@ -183,6 +184,8 @@ class TestGtk(unittest.TestCase):
testobj = TestClass(self, i, label)
parent = tree_store.append(parent, (i, label, testobj))
+ self.assertEquals(len(tree_store), 100)
+
# walk the tree to see if the values were stored correctly
iter = Gtk.TreeIter()
parent = None
@@ -205,6 +208,8 @@ class TestGtk(unittest.TestCase):
testobj = TestClass(self, i, label)
parent = list_store.append((i, label, testobj))
+ self.assertEquals(len(list_store), 100)
+
# walk the list to see if the values were stored correctly
iter = Gtk.TreeIter()
i = 0