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 # App imports
from classes import singleton from classes import MusicMusterSignals, singleton
from config import Config from config import Config
import helpers import helpers
from log import log from log import log

View File

@ -2,8 +2,9 @@
# Standard library imports # Standard library imports
from __future__ import annotations from __future__ import annotations
from functools import partial
from slugify import slugify # type: ignore from slugify import slugify # type: ignore
from typing import Callable from typing import Any, Callable
import argparse import argparse
from dataclasses import dataclass from dataclasses import dataclass
import datetime as dt import datetime as dt
@ -93,6 +94,66 @@ import ds
import helpers 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: class Current:
base_model: PlaylistModel base_model: PlaylistModel
proxy_model: PlaylistProxyModel proxy_model: PlaylistProxyModel
@ -770,6 +831,7 @@ class QueryDialog(QDialog):
super().__init__() super().__init__()
self.playlist_id = playlist_id self.playlist_id = playlist_id
self.default = default self.default = default
self.signals = MusicMusterSignals()
# Build a list of (query-name, playlist-id) tuples # Build a list of (query-name, playlist-id) tuples
self.selected_tracks: list[int] = [] self.selected_tracks: list[int] = []
@ -1180,6 +1242,9 @@ class Window(QMainWindow):
self.action_quicklog = QShortcut(QKeySequence("Ctrl+L"), self) self.action_quicklog = QShortcut(QKeySequence("Ctrl+L"), self)
self.action_quicklog.activated.connect(self.quicklog) self.action_quicklog.activated.connect(self.quicklog)
# Optionally print signals
self.signal_monitor = SignalMonitor()
# Load playlists # Load playlists
self.load_last_playlists() self.load_last_playlists()