Implement signal monitor

This commit is contained in:
Keith Edmunds 2025-04-16 21:02:21 +01:00
parent bf89172f8a
commit ce224a41d1
2 changed files with 67 additions and 2 deletions

View File

@ -16,7 +16,7 @@ from PyQt6.QtCore import (
)
# App imports
from classes import singleton
from classes import MusicMusterSignals, singleton
from config import Config
import helpers
from log import log

View File

@ -2,8 +2,9 @@
# Standard library imports
from __future__ import annotations
from functools import partial
from slugify import slugify # type: ignore
from typing import Callable
from typing import Any, Callable
import argparse
from dataclasses import dataclass
import datetime as dt
@ -93,6 +94,66 @@ import ds
import helpers
class SignalMonitor:
def __init__(self):
self.signals = MusicMusterSignals()
self.signals.enable_escape_signal.connect(
partial(self.show_signal, "enable_escape_signal ")
)
self.signals.next_track_changed_signal.connect(
partial(self.show_signal, "next_track_changed_signal ")
)
self.signals.resize_rows_signal.connect(
partial(self.show_signal, "resize_rows_signal ")
)
self.signals.search_songfacts_signal.connect(
partial(self.show_signal, "search_songfacts_signal ")
)
self.signals.search_wikipedia_signal.connect(
partial(self.show_signal, "search_wikipedia_signal ")
)
self.signals.show_warning_signal.connect(
partial(self.show_signal, "show_warning_signal ")
)
self.signals.signal_add_track_to_header.connect(
partial(self.show_signal, "signal_add_track_to_header ")
)
self.signals.signal_begin_insert_rows.connect(
partial(self.show_signal, "signal_begin_insert_rows ")
)
self.signals.signal_end_insert_rows.connect(
partial(self.show_signal, "signal_end_insert_rows ")
)
self.signals.signal_insert_track.connect(
partial(self.show_signal, "signal_insert_track ")
)
self.signals.signal_playlist_selected_rows.connect(
partial(self.show_signal, "signal_playlist_selected_rows ")
)
self.signals.signal_set_next_row.connect(
partial(self.show_signal, "signal_set_next_row ")
)
self.signals.signal_set_next_track.connect(
partial(self.show_signal, "signal_set_next_track ")
)
self.signals.signal_track_started.connect(
partial(self.show_signal, "signal_track_started ")
)
# self.signals.span_cells_signal.connect(
# partial(self.show_signal, "span_cells_signal ")
# )
self.signals.status_message_signal.connect(
partial(self.show_signal, "status_message_signal ")
)
self.signals.track_ended_signal.connect(
partial(self.show_signal, "track_ended_signal ")
)
def show_signal(self, name: str, *args: Any) -> None:
print(f"{name=}, args={args}")
class Current:
base_model: PlaylistModel
proxy_model: PlaylistProxyModel
@ -770,6 +831,7 @@ class QueryDialog(QDialog):
super().__init__()
self.playlist_id = playlist_id
self.default = default
self.signals = MusicMusterSignals()
# Build a list of (query-name, playlist-id) tuples
self.selected_tracks: list[int] = []
@ -1180,6 +1242,9 @@ class Window(QMainWindow):
self.action_quicklog = QShortcut(QKeySequence("Ctrl+L"), self)
self.action_quicklog.activated.connect(self.quicklog)
# Optionally print signals
self.signal_monitor = SignalMonitor()
# Load playlists
self.load_last_playlists()