aboutsummaryrefslogtreecommitdiffstats
path: root/web-project
diff options
context:
space:
mode:
authorEddy Pedroni <epedroni@pm.me>2025-02-24 20:25:37 +0100
committerEddy Pedroni <epedroni@pm.me>2025-02-24 20:25:37 +0100
commitb65d54e662c7f7bde6d0f1d6bb195e6e7cb96af8 (patch)
treeb0565bf23d508119284721660dc2924c150657d6 /web-project
parent0050c6a0022e28d2ecf24f11f409c0da2ef6bdf7 (diff)
Add + button to key point lists
Diffstat (limited to 'web-project')
-rw-r--r--web-project/src/solo_tool_web.py19
1 files changed, 14 insertions, 5 deletions
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'):