rind: Add one to MangaerModel iter user_data

This lets us use 0 to represent a child that we haven't descended down.

Signed-off-by: Anna Schumaker <Anna@NoWheyCreamery.com>
This commit is contained in:
Anna Schumaker 2019-03-16 08:53:45 -04:00
parent 6539299212
commit e6cc3716eb
2 changed files with 17 additions and 8 deletions

View File

@ -20,7 +20,9 @@ class ManagerModel(GObject.GObject, Gtk.TreeModel):
return 2
def do_get_path(self, iter):
return Gtk.TreePath((iter.user_data))
if iter != None:
return Gtk.TreePath((iter.user_data - 1))
return None
def do_get_value(self, iter, column):
plist = self.iter_playlist(iter)
@ -41,18 +43,20 @@ class ManagerModel(GObject.GObject, Gtk.TreeModel):
def do_iter_nth_child(self, iter, n):
if n < len(toplevel):
iter = Gtk.TreeIter()
iter.user_data = n
iter.user_data = n + 1
iter.user_data2 = 0
iter.user_data3 = 0
return (True, iter)
return (False, None)
def do_iter_next(self, iter):
iter.user_data += 1
if iter.user_data >= len(toplevel):
if iter.user_data > len(toplevel):
return (False, None)
return (True, iter)
def iter_playlist(self, iter):
top = toplevel[iter.user_data]
top = toplevel[iter.user_data - 1]
if top != None:
return curds.PlaylistManager[top]
return None
@ -64,7 +68,6 @@ class ManagerModel(GObject.GObject, Gtk.TreeModel):
self.row_changed(path, iter)
MgrModel = ManagerModel()
Treeview = gtk.Builder.get_object("manager_treeview")
Treeview.set_model(MgrModel)

View File

@ -39,7 +39,9 @@ class TestManager(unittest.TestCase):
self.assertEqual(model.iter_n_children(None), 3)
self.assertEqual(iter.user_data, 0)
self.assertEqual(iter.user_data, 1)
self.assertEqual(iter.user_data2, 0)
self.assertEqual(iter.user_data3, 0)
self.assertFalse(model.iter_has_child(iter))
self.assertEqual(model.iter_n_children(iter), 0)
self.assertEqual(model.iter_playlist(iter), plist_mgr["Collection"])
@ -53,7 +55,9 @@ class TestManager(unittest.TestCase):
for i in range(1, 3):
iter = model.iter_next(iter)
path = model.get_path(iter)
self.assertEqual(iter.user_data, i)
self.assertEqual(iter.user_data, i + 1)
self.assertEqual(iter.user_data2, 0)
self.assertEqual(iter.user_data3, 0)
self.assertEqual(path.get_indices()[0], i)
self.assertEqual(model.iter_n_children(iter), 0)
self.assertEqual(model.iter_playlist(iter), toplevel_plist[i])
@ -61,4 +65,6 @@ class TestManager(unittest.TestCase):
self.assertEqual(model.get_value(iter, 1), toplevel_names[i])
iter = model.iter_nth_child(None, 2)
self.assertEqual(iter.user_data, 2)
self.assertEqual(iter.user_data, 3)
self.assertEqual(iter.user_data2, 0)
self.assertEqual(iter.user_data3, 0)