made back menu a thing
This commit is contained in:
1 parent
d3b5a2120f
commit
51c0e43add
2 files changed
+88
-15
No files matched your search
+17
-10
@@ -44,8 +44,8 @@ class TextualSubpyPlayer(App):
|
||||
albums: list[SubSonic.Album]
|
||||
conn: SubSonic.SubpyConn
|
||||
|
||||
currentMenu: int
|
||||
lastMenu: int
|
||||
currentMenu: Menus
|
||||
lastMenu: Menus
|
||||
|
||||
def compose(self) -> ComposeResult:
|
||||
self.currentMenu = Menus.MAIN
|
||||
@@ -62,11 +62,16 @@ class TextualSubpyPlayer(App):
|
||||
logging.debug('Menu Back Called')
|
||||
match self.lastMenu:
|
||||
case Menus.MAIN:
|
||||
logging.debug("Moving back to the main menu")
|
||||
await self.main_menu()
|
||||
case Menus.ARTISTALBUMS:
|
||||
logging.debug("Moving back to Artist Albums")
|
||||
await self.selectArtistAlbumView(self.selectedArtist.id)
|
||||
case Menus.ARTISTS:
|
||||
logging.debug("Moving backt to artists")
|
||||
await self.selectArtistsView()
|
||||
case _:
|
||||
logging.debug(f"Last Menu unknown, {self.lastMenu}")
|
||||
|
||||
def on_key(self, event: events.Key) -> None:
|
||||
logging.debug(f'Key Pressed {event.name}')
|
||||
@@ -79,13 +84,13 @@ class TextualSubpyPlayer(App):
|
||||
)
|
||||
|
||||
|
||||
def _getArtistMenu(self) -> OptionList:
|
||||
async def _getArtistMenu(self) -> OptionList:
|
||||
self.artists = self.conn.getArtists()
|
||||
|
||||
return OptionList(id="ArtistList")
|
||||
return OptionList(id=Menus.ARTISTS.value)
|
||||
|
||||
|
||||
@on(OptionList.OptionSelected, "#mainMenu")
|
||||
@on(OptionList.OptionSelected, f'#{Menus.MAIN.value}')
|
||||
async def selectMainMenu(self, event: OptionList.OptionSelected) -> None:
|
||||
match event.option_id:
|
||||
case "BrowseArtists":
|
||||
@@ -93,7 +98,7 @@ class TextualSubpyPlayer(App):
|
||||
await self.selectArtistsView()
|
||||
|
||||
|
||||
@on(OptionList.OptionSelected, "#ArtistList")
|
||||
@on(OptionList.OptionSelected, f"#{Menus.ARTISTS.value}")
|
||||
async def artistSelected(self, event: OptionList.OptionSelected) -> None:
|
||||
logging.debug(f'Artist {event.option.prompt} Selected')
|
||||
self.lastMenu = Menus.ARTISTS
|
||||
@@ -129,7 +134,7 @@ class TextualSubpyPlayer(App):
|
||||
for song in songs:
|
||||
albumSongs.add_row(song.trackNumber, song.title, song.artist, song.duration, song.bitRate, key=song.id)
|
||||
|
||||
self.query_one(f"#{self.lastMenu}").remove()
|
||||
self.query_one(f"#{self.lastMenu.value}").remove()
|
||||
|
||||
async def selectArtistAlbumView(self, artist_id: str) -> None:
|
||||
logging.debug("Setting up album DataTable")
|
||||
@@ -147,7 +152,7 @@ class TextualSubpyPlayer(App):
|
||||
for album in self.albums:
|
||||
albumTable.add_row(album.title, album.songCount, key=album.id)
|
||||
|
||||
self.query_one(f"#{self.lastMenu}").remove()
|
||||
self.query_one(f"#{self.lastMenu.value}").remove()
|
||||
|
||||
async def main_menu(self) -> None:
|
||||
await self.mount(OptionList(
|
||||
@@ -158,10 +163,12 @@ class TextualSubpyPlayer(App):
|
||||
id=Menus.MAIN.value
|
||||
))
|
||||
|
||||
self.query_one(f"#{self.lastMenu}").remove()
|
||||
self.query_one(f"#{self.currentMenu.value}").remove()
|
||||
|
||||
async def selectArtistsView(self) -> None:
|
||||
artistList: OptionList = self._getArtistMenu()
|
||||
artistList: OptionList = await self._getArtistMenu()
|
||||
|
||||
self.currentMenu = Menus.ARTISTS
|
||||
|
||||
await self.mount(artistList)
|
||||
|
||||
|
||||
Reference in new issue
Block a user