Diverse rettelser
This commit is contained in:
@@ -379,6 +379,12 @@ class MainWindow(QMainWindow):
|
||||
self._sync_periodic.timeout.connect(self._manual_sync)
|
||||
self._sync_periodic.start()
|
||||
|
||||
# Periodisk fil-tilgængeligheds-check — opdager USB tilslutning/fjernelse
|
||||
self._availability_timer = QTimer(self)
|
||||
self._availability_timer.setInterval(30 * 1000) # hvert 30. sekund
|
||||
self._availability_timer.timeout.connect(self._run_availability_check)
|
||||
self._availability_timer.start()
|
||||
|
||||
self._library_panel = LibraryPanel()
|
||||
self._library_panel.set_preview_player(self._preview_player)
|
||||
|
||||
@@ -438,9 +444,30 @@ class MainWindow(QMainWindow):
|
||||
from local.local_db import init_db
|
||||
init_db()
|
||||
self._db_ready.emit()
|
||||
# Tjek fil-tilgængelighed i separat tråd
|
||||
import threading
|
||||
threading.Thread(
|
||||
target=self._refresh_availability, daemon=True
|
||||
).start()
|
||||
except Exception as e:
|
||||
pass
|
||||
|
||||
def _refresh_availability(self):
|
||||
"""Opdater file_missing for alle kendte filer og genindlæs biblioteket."""
|
||||
try:
|
||||
from local.local_db import refresh_file_availability
|
||||
refresh_file_availability()
|
||||
QTimer.singleShot(0, self._reload_library)
|
||||
except Exception:
|
||||
pass
|
||||
|
||||
def _run_availability_check(self):
|
||||
"""Kør periodisk fil-check i baggrundstråd — opdager USB til/fra."""
|
||||
import threading
|
||||
threading.Thread(
|
||||
target=self._refresh_availability, daemon=True
|
||||
).start()
|
||||
|
||||
def _start_watcher(self):
|
||||
"""Start fil-watcher i baggrundstråd — blokerer aldrig GUI."""
|
||||
import threading
|
||||
@@ -655,6 +682,8 @@ class MainWindow(QMainWindow):
|
||||
def on_one_finished(count, p):
|
||||
finished_count[0] += 1
|
||||
self._set_status(f"Scanning færdig — {count} filer", 4000)
|
||||
# Genindlæs biblioteket når scanning er færdig
|
||||
QTimer.singleShot(200, self._reload_library)
|
||||
# Ryd færdige workers ud
|
||||
self._scan_workers = [w for w in self._scan_workers
|
||||
if w.isRunning()]
|
||||
@@ -663,6 +692,9 @@ class MainWindow(QMainWindow):
|
||||
worker = ScanWorker(lib["id"], lib["path"], str(DB_PATH),
|
||||
overwrite_bpm=False)
|
||||
worker.finished.connect(on_one_finished)
|
||||
worker.batch_ready.connect(
|
||||
lambda n: QTimer.singleShot(0, self._reload_library)
|
||||
)
|
||||
worker.start()
|
||||
worker.setPriority(QThread.Priority.LowestPriority)
|
||||
self._scan_workers.append(worker)
|
||||
@@ -804,11 +836,9 @@ class MainWindow(QMainWindow):
|
||||
threading.Thread(target=_run, daemon=True).start()
|
||||
|
||||
def _on_playlist_changed(self):
|
||||
"""Danseliste ændret — start debounce-timer til auto-sync og opdater live-status."""
|
||||
"""Danseliste ændret — start debounce-timer til auto-sync."""
|
||||
if hasattr(self, "_sync_debounce"):
|
||||
self._sync_debounce.start()
|
||||
# Opdater storskærm med det samme
|
||||
self._sync_event_status_to_playlist()
|
||||
|
||||
def _auto_sync(self):
|
||||
"""Kør sync hvis vi er online — kaldes af debounce-timer."""
|
||||
|
||||
Reference in New Issue
Block a user