playlist: Create a SortButton menu button
Signed-off-by: Anna Schumaker <Anna@NoWheyCreamery.com>
This commit is contained in:
parent
94cb57dbfc
commit
c5aff410b4
|
@ -3,6 +3,7 @@ import db
|
|||
import lib
|
||||
from gi.repository import Gtk
|
||||
from . import model
|
||||
from . import view
|
||||
|
||||
class FilterEntry(lib.filter.Entry):
|
||||
def __init__(self):
|
||||
|
@ -47,3 +48,15 @@ class LoopToggle(PropertyToggle):
|
|||
self.set_sensitive(plist != db.user.Table.find("Collection") and
|
||||
plist != db.user.Table.find("Previous") and
|
||||
plist != db.user.Table.find("Queued Tracks"))
|
||||
|
||||
|
||||
class SortButton(Gtk.MenuButton):
|
||||
def __init__(self):
|
||||
Gtk.MenuButton.__init__(self)
|
||||
self.set_icon_name("view-sort-ascending")
|
||||
self.set_popover(view.SortOrderPopover())
|
||||
self.set_sensitive(False)
|
||||
|
||||
def set_playlist(self, plist):
|
||||
self.get_popover().set_playlist(plist)
|
||||
self.set_sensitive(plist != db.user.Table.find("Previous"))
|
||||
|
|
|
@ -5,6 +5,7 @@ import unittest
|
|||
from gi.repository import Gtk
|
||||
from . import header
|
||||
from . import model
|
||||
from . import view
|
||||
|
||||
class TestFilterEntry(unittest.TestCase):
|
||||
def test_init(self):
|
||||
|
@ -87,3 +88,26 @@ class TestLoopToggle(unittest.TestCase):
|
|||
self.assertFalse(loop.get_sensitive())
|
||||
loop.set_playlist(db.user.Table.find("Queued Tracks"))
|
||||
self.assertFalse(loop.get_sensitive())
|
||||
|
||||
|
||||
class TestSortButton(unittest.TestCase):
|
||||
def test_init(self):
|
||||
sort = header.SortButton()
|
||||
self.assertIsInstance(sort, Gtk.MenuButton)
|
||||
self.assertIsInstance(sort.get_popover(), Gtk.Popover)
|
||||
self.assertIsInstance(sort.get_popover(), view.SortOrderPopover)
|
||||
self.assertEqual(sort.get_icon_name(), "view-sort-ascending")
|
||||
self.assertFalse(sort.get_sensitive())
|
||||
|
||||
def test_set_playlist(self):
|
||||
sort = header.SortButton()
|
||||
sort.set_playlist(db.user.Table.find("Collection"))
|
||||
self.assertTrue(sort.get_sensitive())
|
||||
sort.set_playlist(db.user.Table.find("Favorites"))
|
||||
self.assertTrue(sort.get_sensitive())
|
||||
sort.set_playlist(db.user.Table.find("New Tracks"))
|
||||
self.assertTrue(sort.get_sensitive())
|
||||
sort.set_playlist(db.user.Table.find("Previous"))
|
||||
self.assertFalse(sort.get_sensitive())
|
||||
sort.set_playlist(db.user.Table.find("Queued Tracks"))
|
||||
self.assertTrue(sort.get_sensitive())
|
||||
|
|
Loading…
Reference in New Issue