def on_iter_n_children(self, iter): '''Returns the number of children in a namespace. As a special case, when iter is None the number of pages in the root namespace is given. ''' if iter is None: return self.index.n_list_all_pages() else: return PageTreeStore.on_iter_n_children(self, iter)
def on_iter_n_children(self, iter): '''Returns the number of children in a namespace. As a special case, when iter is None the number of pages in the root namespace is given. ''' if iter is None: return self.index.n_list_all_pages() else: return PageTreeStore.on_iter_n_children(self, iter)
def on_iter_n_children(self, iter): '''Returns the number of children in a namespace. As a special case, when iter is None the number of tags is given. ''' if iter is None: return self.index.n_list_all_tags() + 1 # +1 to include untagged elif isinstance(iter, PageTreeTagIter): if iter.indextag == self.untagged: return self.index.n_list_untagged_root_pages() else: return self.index.n_list_tagged_pages(iter.indextag) else: return PageTreeStore.on_iter_n_children(self, iter)
def on_iter_n_children(self, iter): '''Returns the number of children in a namespace. As a special case, when iter is None the number of tags is given. ''' if iter is None: return self.index.n_list_all_tags() + 1 # +1 to include untagged elif isinstance(iter, PageTreeTagIter): if iter.indextag == self.untagged: return self.index.n_list_untagged_root_pages() else: return self.index.n_list_tagged_pages(iter.indextag) else: return PageTreeStore.on_iter_n_children(self, iter)
def runTest(self): '''Test PageTreeStore index interface''' # This is one big test instead of seperate sub tests because in the # subclass we generate a file based notebook in setUp, and we do not # want to do that many times self.index.update() treestore = PageTreeStore(self.index) self.assertEqual(treestore.get_flags(), 0) self.assertEqual(treestore.get_n_columns(), 5) treeview = PageTreeView(None) # just run hidden to check errors treeview.set_model(treestore) n = treestore.on_iter_n_children() self.assertTrue(n > 0) n = treestore.iter_n_children(None) self.assertTrue(n > 0) # Quick check for basic methods path = treestore.on_get_iter((0,)) self.assertTrue(isinstance(path, IndexPath) and not path.isroot) basename = treestore.on_get_value(path, 0) self.assertTrue(len(basename) > 0) self.assertEqual(treestore.get_treepath(path), (0,)) path2 = treestore.on_iter_children() self.assertEqual(path2, path) self.assertTrue(treestore.on_get_iter((20,20,20,20,20)) is None) self.assertRaises( ValueError, treestore.get_treepath, Path('nonexisting')) # Now walk through the whole notebook testing the API # with nested pages and stuff path = [] for page in self.notebook.walk(): names = page.name.split(':') if len(names) > len(path): path.append(0) # always increment by one elif len(names) < len(path): while len(names) < len(path): path.pop() path[-1] += 1 else: path[-1] += 1 #~ print '>>', page, path iter = treestore.get_iter(tuple(path)) indexpath = treestore.get_indexpath(iter) #~ print '>>>', indexpath self.assertEqual(indexpath, page) self.assertEqual( treestore.get_value(iter, 0), page.basename) self.assertEqual( treestore.get_path(iter), tuple(path)) if indexpath.haschildren: self.assertTrue(treestore.iter_has_child(iter)) child = treestore.iter_children(iter) self.assertTrue(not child is None) child = treestore.iter_nth_child(iter, 0) self.assertTrue(not child is None) parent = treestore.iter_parent(child) self.assertEqual( treestore.get_indexpath(parent), page) childpath = treestore.get_path(child) self.assertEqual( childpath, tuple(path) + (0,)) n = treestore.iter_n_children(iter) for i in range(1, n): child = treestore.iter_next(child) childpath = treestore.get_path(child) self.assertEqual( childpath, tuple(path) + (i,)) child = treestore.iter_next(child) self.assertTrue(child is None) else: self.assertTrue(not treestore.iter_has_child(iter)) child = treestore.iter_children(iter) self.assertTrue(child is None) child = treestore.iter_nth_child(iter, 0) self.assertTrue(child is None) # Check if all the signals go OK del treestore self.index.flush() treestore = PageTreeStore(self.index) self.index.update()