rettelser

This commit is contained in:
2026-04-19 17:19:59 +02:00
parent c966d38f11
commit fb7622549c
7 changed files with 81 additions and 33 deletions

View File

@@ -365,6 +365,7 @@ class MainWindow(QMainWindow):
self._playlist_panel.event_started.connect(self._on_event_started)
self._playlist_panel.next_song_ready.connect(self._on_next_song_ready)
self._playlist_panel.playlist_changed.connect(self._on_playlist_changed)
self._playlist_panel.sync_requested.connect(self._manual_sync)
# Debounce-timer til auto-sync — starter sync 5 sek efter sidst ændring
self._sync_debounce = QTimer(self)

View File

@@ -20,6 +20,7 @@ class PlaylistBrowserDialog(QDialog):
"""Kombineret gem/hent dialog til danselister."""
playlist_selected = pyqtSignal(int, str) # playlist_id, name
sync_requested = pyqtSignal() # bed main_window om at køre sync
def __init__(self, mode: str = "load", current_songs: list = None,
current_name: str = "", parent=None):
@@ -344,10 +345,11 @@ class PlaylistBrowserDialog(QDialog):
)
if reply == QMessageBox.StandardButton.Yes:
try:
from local.local_db import get_db
with get_db() as conn:
conn.execute("DELETE FROM playlists WHERE id=?", (pl["id"],))
from local.local_db import delete_playlist
delete_playlist(pl["id"])
self._load_data()
# Signal til main_window om at køre sync
self.sync_requested.emit()
except Exception as e:
QMessageBox.warning(self, "Fejl", f"Kunne ikke slette: {e}")

View File

@@ -178,13 +178,8 @@ class PlaylistManagerDialog(QDialog):
)
if reply == QMessageBox.StandardButton.Yes:
try:
from local.local_db import get_db
with get_db() as conn:
conn.execute(
"INSERT INTO deleted_playlists (name) "
"SELECT name FROM playlists WHERE id=?", (pl["id"],)
)
conn.execute("DELETE FROM playlists WHERE id=?", (pl["id"],))
from local.local_db import delete_playlist
delete_playlist(pl["id"])
self._load_saved_playlists()
except Exception as e:
self._load_status.setText(f"Fejl: {e}")

View File

@@ -39,6 +39,7 @@ class PlaylistPanel(QWidget):
playlist_changed = pyqtSignal()
event_started = pyqtSignal()
next_song_ready = pyqtSignal(dict) # udsendes når næste sang ændres — main_window indlæser den # udsendes af Start event — main_window indlæser første sang # udsendes ved enhver ændring → trigger autogem
sync_requested = pyqtSignal() # bed main_window om at køre sync (efter sletning)
STATUS_ICON = {"pending": " ", "playing": "", "played": "", "skipped": "", "next": ""}
STATUS_COLOR = {"pending": "#5a6070", "playing": "#e8a020", "played": "#2ecc71", "skipped": "#e74c3c", "next": "#3b8fd4"}
@@ -526,6 +527,7 @@ class PlaylistPanel(QWidget):
self._btn_save_current.setToolTip(f"Gem ændringer til '{name}'")
self._save_named_playlist_id(pl_id)
dialog.playlist_selected.connect(on_saved)
dialog.sync_requested.connect(self._request_sync)
dialog.exec()
def _save_current(self):
@@ -572,10 +574,15 @@ class PlaylistPanel(QWidget):
except Exception as e:
QMessageBox.warning(self, "Fejl", f"Kunne ikke gemme: {e}")
def _request_sync(self):
"""Bobl sync-anmodning op til main_window."""
self.sync_requested.emit()
def _load_dialog(self):
from ui.playlist_browser import PlaylistBrowserDialog
dialog = PlaylistBrowserDialog(mode="load", parent=self.window())
dialog.playlist_selected.connect(self._load_playlist_by_id)
dialog.sync_requested.connect(self._request_sync)
dialog.exec()
def _load_playlist_by_id(self, pl_id: int, pl_name: str):