rind: Remove NodeTreeModel iter_valid() function
We can calculate this more efficiently without the extra function call. Signed-off-by: Anna Schumaker <Anna@NoWheyCreamery.com>
This commit is contained in:
parent
f3987543ed
commit
545854ca35
38
rind/node.py
38
rind/node.py
|
@ -29,8 +29,9 @@ class NodeTreeModel(GObject.GObject, Gtk.TreeModel):
|
|||
|
||||
def do_get_iter(self, path):
|
||||
plist = curds.playlist.Root.get_node(path.get_indices())
|
||||
iter = self.playlist_iter(plist)
|
||||
return self.iter_valid(iter)
|
||||
if plist == None or plist.parent == None:
|
||||
return (False, None)
|
||||
return (True, self.playlist_iter(plist))
|
||||
|
||||
def do_get_n_columns(self):
|
||||
return 3
|
||||
|
@ -77,26 +78,26 @@ class NodeTreeModel(GObject.GObject, Gtk.TreeModel):
|
|||
|
||||
def do_iter_nth_child(self, iter, n):
|
||||
plist = self.iter_playlist(iter)
|
||||
if plist:
|
||||
child = plist.nth_child(n)
|
||||
iter = self.playlist_iter(child)
|
||||
return self.iter_valid(iter)
|
||||
return (False, None)
|
||||
if plist == None or n >= plist.n_children():
|
||||
return (False, None)
|
||||
child = plist.nth_child(n)
|
||||
return (True, self.playlist_iter(child))
|
||||
|
||||
def do_iter_next(self, iter):
|
||||
plist = self.iter_playlist(iter)
|
||||
if plist != None and plist.next_child != None:
|
||||
res = self.playlist_iter(plist.next_child)
|
||||
iter.user_data = res.user_data
|
||||
iter.user_data2 = res.user_data2
|
||||
iter.user_data3 = id(plist.next_child)
|
||||
return self.iter_valid(iter)
|
||||
return (False, None)
|
||||
if plist == None or plist.next_child == None:
|
||||
return (False, None)
|
||||
res = self.playlist_iter(plist.next_child)
|
||||
iter.user_data = res.user_data
|
||||
iter.user_data2 = res.user_data2
|
||||
iter.user_data3 = id(plist.next_child)
|
||||
return (True, iter)
|
||||
|
||||
def do_iter_parent(self, child):
|
||||
plist = self.iter_playlist(child)
|
||||
iter = self.playlist_iter(plist.parent)
|
||||
return self.iter_valid(iter)
|
||||
if plist.parent == None or plist.parent == curds.playlist.Root:
|
||||
return (False, None)
|
||||
return (True, self.playlist_iter(plist.parent))
|
||||
|
||||
def is_visible(self, model, iter, data):
|
||||
plist = self.iter_playlist(iter)
|
||||
|
@ -112,11 +113,6 @@ class NodeTreeModel(GObject.GObject, Gtk.TreeModel):
|
|||
return curds.playlist.Root.get_node(path)
|
||||
return curds.playlist.Root
|
||||
|
||||
def iter_valid(self, iter):
|
||||
plist = self.iter_playlist(iter)
|
||||
valid = plist != None and plist != curds.playlist.Root
|
||||
return (True, iter) if valid else (False, None)
|
||||
|
||||
def on_playlist_changed(self, plist):
|
||||
if plist.parent:
|
||||
path = Gtk.TreePath(plist.get_path())
|
||||
|
|
|
@ -216,16 +216,6 @@ class TestNodeTreeModel(unittest.TestCase):
|
|||
expected = self.genre.nth_child(i) if i < self.genre.n_children() else None
|
||||
self.assertEqual(self.model.iter_playlist(iter), expected)
|
||||
|
||||
def test_model_iter_valid(self):
|
||||
iter = Gtk.TreeIter()
|
||||
self.assertEqual(self.model.iter_valid(iter), (False, None))
|
||||
|
||||
for i, node in enumerate(plist_root.children):
|
||||
iter.user_data = i + 1
|
||||
self.assertEqual(self.model.iter_valid(iter), (True, iter))
|
||||
iter.user_data = plist_root.n_children() + 1
|
||||
self.assertEqual(self.model.iter_valid(iter), (False, None))
|
||||
|
||||
def test_model_playlist_iter(self):
|
||||
self.assertIsNone(self.model.playlist_iter(None))
|
||||
|
||||
|
|
Loading…
Reference in New Issue