This commit is contained in:
2026-04-12 19:19:01 +02:00
parent 1ea5cad01f
commit 45dcedaed4
4 changed files with 75 additions and 50 deletions

View File

@@ -287,10 +287,10 @@ class MainWindow(QMainWindow):
b.setCheckable(True)
return b
self._btn_prev = btn("", size=52)
self._btn_prev = btn("|◀◀", size=52)
self._btn_play = btn("", "btn_play", size=72)
self._btn_stop = btn("", "btn_stop", size=52)
self._btn_next = btn("", size=52)
self._btn_stop = btn("", "btn_stop", size=52)
self._btn_next = btn("▶▶|", size=52)
self._btn_demo = btn(f"\n{self._demo_seconds} SEK", "btn_demo", size=64, checkable=True)
self._btn_prev.clicked.connect(self._prev_song)
@@ -453,12 +453,15 @@ class MainWindow(QMainWindow):
SELECT s.id, s.title, s.artist, s.album, s.bpm,
s.duration_sec, s.local_path, s.file_format,
s.file_missing,
GROUP_CONCAT(d.name, '||') AS dance_names,
GROUP_CONCAT(COALESCE(dl.name,''), '||') AS dance_levels
GROUP_CONCAT(DISTINCT d.name) AS dance_names,
GROUP_CONCAT(DISTINCT COALESCE(dl.name,'')) AS dance_levels,
GROUP_CONCAT(DISTINCT ad.name) AS alt_dance_names
FROM songs s
LEFT JOIN song_dances sd ON sd.song_id = s.id
LEFT JOIN dances d ON d.id = sd.dance_id
LEFT JOIN dance_levels dl ON dl.id = d.level_id
LEFT JOIN song_dances sd ON sd.song_id = s.id
LEFT JOIN dances d ON d.id = sd.dance_id
LEFT JOIN dance_levels dl ON dl.id = d.level_id
LEFT JOIN song_alt_dances sad ON sad.song_id = s.id
LEFT JOIN dances ad ON ad.id = sad.dance_id
WHERE s.file_missing = 0
GROUP BY s.id
ORDER BY s.artist, s.title
@@ -467,8 +470,9 @@ class MainWindow(QMainWindow):
songs = []
for row in rows:
dances = row["dance_names"].split("||") if row["dance_names"] else []
levels = row["dance_levels"].split("||") if row["dance_levels"] else []
dances = row["dance_names"].split(",") if row["dance_names"] else []
levels = row["dance_levels"].split(",") if row["dance_levels"] else []
alt_dances = row["alt_dance_names"].split(",") if row["alt_dance_names"] else []
songs.append({
"id": row["id"],
"title": row["title"],
@@ -481,6 +485,7 @@ class MainWindow(QMainWindow):
"file_missing": bool(row["file_missing"]),
"dances": dances,
"dance_levels": levels,
"alt_dances": alt_dances,
})
self._library_loaded.emit(songs)
except Exception: