This commit is contained in:
Andrew Dunai 2018-08-09 14:19:59 +03:00
parent 4edb5cd4f3
commit b180bee6bb
No known key found for this signature in database
GPG key ID: 592B181FC403814E
9 changed files with 91 additions and 7 deletions

View file

@ -99,7 +99,7 @@ class AppWidget(urwid.Frame):
body=urwid.Filler(urwid.Text('Loading...', align='center'))
)
self.set_page('MyLibraryPage')
self.set_page('library')
self.log_in()
def log_in(self, use_token=True):
@ -181,11 +181,11 @@ class AppWidget(urwid.Frame):
"""
self.loop = loop
def set_page(self, classname):
def set_page(self, slug):
"""
Switch to a different tab.
"""
page = [page for page in self.pages if page.__class__.__name__ == classname][0]
page = [page for page in self.pages if page.slug == slug][0]
self.current_page = page
self.contents['body'] = (page, None)
@ -225,13 +225,41 @@ class AppWidget(urwid.Frame):
Handle keypress.
Can switch tabs, control playback, flags, notifications and app state.
"""
for tab in self.tabs:
if 'meta {}'.format(tab.page.key) == key:
self.set_page(tab.page.__class__.__name__)
return
# for tab in self.tabs:
# if 'meta {}'.format(tab.page.key) == key:
# self.set_page(tab.page.__class__.__name__)
# return
hotkey_manager.keypress("global", self, super(AppWidget, self), size, key)
def show_debug(self):
""" Show debug page. """
self.set_page('debug')
def show_library(self):
""" Show library page. """
self.set_page('library')
def show_playlists(self):
""" Show playlists page. """
self.set_page('playlists')
def show_stations(self):
""" Show stations page. """
self.set_page('stations')
def show_queue(self):
""" Show queue page. """
self.set_page('queue')
def show_search(self):
""" Show search page. """
self.set_page('search')
def show_settings(self):
""" Show settings page. """
self.set_page('settings')
@staticmethod
def seek_start():
"""

View file

@ -19,6 +19,13 @@ hotkeys:
prev_song: mod + a
toggle_repeat_one: mod + o
handle_escape: esc, mod + _
show_debug: meta + 0
show_library: meta + 1
show_playlists: meta + 2
show_stations: meta + 3
show_queue: meta + 4
show_search: meta + 5
show_settings: meta + 9
library_item:
activate: enter

View file

@ -97,6 +97,13 @@ class DebugPage(urwid.Pile, AbstractPage):
"""
return "Debug"
@property
def slug(self):
"""
Return page ID (str).
"""
return "debug"
@property
def key(self):
"""

View file

@ -23,6 +23,13 @@ class MyLibraryPage(urwid.Columns, AbstractPage):
def key(self):
return 1
@property
def slug(self):
"""
Return page ID (str).
"""
return "library"
def __init__(self, app):
self.app = app
self.songlist = SongListBox(app)

View file

@ -126,6 +126,13 @@ class MyPlaylistsPage(urwid.Columns, AbstractPage):
def key(self):
return 2
@property
def slug(self):
"""
Return page ID (str).
"""
return "playlists"
def __init__(self, app):
self.app = app

View file

@ -119,6 +119,13 @@ class MyStationsPage(urwid.Columns, AbstractPage):
def key(self):
return 3
@property
def slug(self):
"""
Return page ID (str).
"""
return "stations"
def __init__(self, app):
self.app = app

View file

@ -20,6 +20,13 @@ class QueuePage(urwid.Columns, AbstractPage):
def key(self):
return 4
@property
def slug(self):
"""
Return page ID (str).
"""
return "queue"
def __init__(self, app):
self.app = app
self.songlist = SongListBox(app)

View file

@ -60,6 +60,13 @@ class SearchPage(urwid.Pile, AbstractPage):
def key(self):
return 5
@property
def slug(self):
"""
Return page ID (str).
"""
return "search"
def __init__(self, app):
self.app = app
self.songlist = SongListBox(app)

View file

@ -138,6 +138,13 @@ class SettingsPage(urwid.Columns, AbstractPage):
def key(self):
return 9
@property
def slug(self):
"""
Return page ID (str).
"""
return "settings"
def __init__(self, app):
self.app = app
self.username = urwid.Edit(