From b65d54e662c7f7bde6d0f1d6bb195e6e7cb96af8 Mon Sep 17 00:00:00 2001 From: Eddy Pedroni Date: Mon, 24 Feb 2025 20:25:37 +0100 Subject: Add + button to key point lists --- web-project/src/solo_tool_web.py | 19 ++++++++++++++----- 1 file changed, 14 insertions(+), 5 deletions(-) (limited to 'web-project/src/solo_tool_web.py') diff --git a/web-project/src/solo_tool_web.py b/web-project/src/solo_tool_web.py index d18ae96..6616d82 100644 --- a/web-project/src/solo_tool_web.py +++ b/web-project/src/solo_tool_web.py @@ -9,10 +9,21 @@ st = loadSession("/home/eddy/music/funk-band/practice.json") midiController = MidiController(st) #midiController.connect() -def songName(path): +def songName(path: str) -> str: from os.path import basename, splitext return basename(splitext(path)[0]) +@ui.refreshable +def keyPointTables() -> None: + for i, song in enumerate(st.songs): + with ui.list().props('separator').bind_visibility_from(st, 'song', value=i): + for kp in st._keyPoints[i]: + ui.item(f"{kp:0.2}", on_click=handlers.setKeyPoint(st, kp)).props('clickable v-ripple') + +def addKeyPoint() -> None: + st.keyPoints += [st.keyPoint] + keyPointTables.refresh() + def main(): fullscreen = ui.fullscreen() ui.dark_mode().enable() @@ -24,10 +35,8 @@ def main(): with ui.right_drawer(top_corner=True, bottom_corner=True).props('width=120 behavior=desktop'): ui.label("Key Points").classes('text-lg') - for i, song in enumerate(st.songs): - with ui.list().props('separator').bind_visibility_from(st, 'song', value=i): - for kp in st._keyPoints[i]: - ui.item(f"{kp:0.2}", on_click=handlers.setKeyPoint(st, kp)).props('clickable v-ripple') + keyPointTables() + ui.button(icon='add', on_click=addKeyPoint).props('flat round dense color=secondary') with ui.left_drawer(bottom_corner=True).props('overlay') as song_drawer: with ui.list().props('separator'): -- cgit v1.2.3