Clean up signals

Remove search_wikipedia_signal and search_songfacts_signal. Improve
signal names. Make Current a dataclass.
This commit is contained in:
Keith Edmunds 2025-04-21 10:37:27 +01:00
parent 25771f5235
commit f172eaaeb2
4 changed files with 23 additions and 35 deletions

View File

@ -247,11 +247,6 @@ class MusicMusterSignals(QObject):
# Signals that the playlist_id passed should resize all rows. # Signals that the playlist_id passed should resize all rows.
resize_rows_signal = pyqtSignal(int) resize_rows_signal = pyqtSignal(int)
# Signal to open browser at songfacts or wikipedia page matching
# passed string.
search_songfacts_signal = pyqtSignal(str)
search_wikipedia_signal = pyqtSignal(str)
# Displays a warning dialog # Displays a warning dialog
show_warning_signal = pyqtSignal(str, str) show_warning_signal = pyqtSignal(str, str)

View File

@ -6,7 +6,7 @@ from functools import partial
from slugify import slugify # type: ignore from slugify import slugify # type: ignore
from typing import Any, Callable from typing import Any, Callable
import argparse import argparse
from dataclasses import dataclass from dataclasses import dataclass, field
import datetime as dt import datetime as dt
import os import os
import subprocess import subprocess
@ -70,14 +70,14 @@ from classes import (
MusicMusterSignals, MusicMusterSignals,
PlaylistDTO, PlaylistDTO,
QueryDTO, QueryDTO,
TrackAndPlaylist, SelectedRows,
TrackInfo, TrackInfo,
) )
from config import Config from config import Config
from dialogs import TrackInsertDialog from dialogs import TrackInsertDialog
from file_importer import FileImporter from file_importer import FileImporter
from helpers import ask_yes_no, file_is_unreadable, get_name from helpers import file_is_unreadable, get_name
from log import log, log_call from log import log, log_call
from playlistmodel import PlaylistModel, PlaylistProxyModel from playlistmodel import PlaylistModel, PlaylistProxyModel
from playlistrow import PlaylistRow, TrackSequence from playlistrow import PlaylistRow, TrackSequence
@ -104,15 +104,6 @@ class SignalMonitor:
self.signals.resize_rows_signal.connect( self.signals.resize_rows_signal.connect(
partial(self.show_signal, "resize_rows_signal ") 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( self.signals.signal_add_track_to_header.connect(
partial(self.show_signal, "signal_add_track_to_header ") partial(self.show_signal, "signal_add_track_to_header ")
) )
@ -152,17 +143,12 @@ class SignalMonitor:
log.debug(f"{name=}, args={args}") log.debug(f"{name=}, args={args}")
@dataclass
class Current: class Current:
base_model: PlaylistModel base_model: PlaylistModel | None = None
proxy_model: PlaylistProxyModel proxy_model: PlaylistProxyModel | None = None
playlist_id: int = 0 playlist_id: int = 0
selected_row_numbers: list[int] = [] selected_row_numbers: list[int] = field(default_factory=list)
def __repr__(self):
return (
f"<Current(base_model={self.base_model}, proxy_model={self.proxy_model}, "
f"playlist_id={self.playlist_id}, selected_rows={self.selected_row_numbers}>"
)
class DownloadCSV(QDialog): class DownloadCSV(QDialog):
@ -1738,14 +1724,13 @@ class Window(QMainWindow):
self.tabBar = self.playlist_section.tabPlaylist.tabBar() self.tabBar = self.playlist_section.tabPlaylist.tabBar()
self.txtSearch.textChanged.connect(self.search_playlist_text_changed) self.txtSearch.textChanged.connect(self.search_playlist_text_changed)
self.signals.enable_escape_signal.connect(self.enable_escape) self.signals.enable_escape_signal.connect(self.enable_escape_signal_handler)
self.signals.search_songfacts_signal.connect(self.open_songfacts_browser)
self.signals.search_wikipedia_signal.connect(self.open_wikipedia_browser)
self.signals.show_warning_signal.connect(self.show_warning) self.signals.show_warning_signal.connect(self.show_warning)
self.signals.signal_next_track_changed.connect(self.signal_next_track_changed_handler) self.signals.signal_next_track_changed.connect(self.signal_next_track_changed_handler)
self.signals.signal_set_next_track.connect(self.signal_set_next_track_handler) self.signals.signal_set_next_track.connect(self.signal_set_next_track_handler)
self.signals.status_message_signal.connect(self.show_status_message) self.signals.status_message_signal.connect(self.show_status_message)
self.signals.signal_track_ended.connect(self.end_of_track_actions) self.signals.signal_track_ended.connect(self.end_of_track_actions)
self.signals.signal_playlist_selected_rows.connect(self.signal_playlist_selected_rows_handler)
self.timer10.timeout.connect(self.tick_10ms) self.timer10.timeout.connect(self.tick_10ms)
self.timer500.timeout.connect(self.tick_500ms) self.timer500.timeout.connect(self.tick_500ms)
@ -1806,7 +1791,7 @@ class Window(QMainWindow):
) )
# @log_call # @log_call
def enable_escape(self, enabled: bool) -> None: def enable_escape_signal_handler(self, enabled: bool) -> None:
""" """
Manage signal to enable/disable handling ESC character. Manage signal to enable/disable handling ESC character.
@ -1981,7 +1966,7 @@ class Window(QMainWindow):
if not track_info: if not track_info:
return return
self.signals.search_songfacts_signal.emit(track_info.title) self.open_songfacts_browser(track_info.title)
def lookup_row_in_wikipedia(self, checked: bool = False) -> None: def lookup_row_in_wikipedia(self, checked: bool = False) -> None:
""" """
@ -1992,7 +1977,7 @@ class Window(QMainWindow):
if not track_info: if not track_info:
return return
self.signals.search_wikipedia_signal.emit(track_info.title) self.open_wikipedia_browser(track_info.title)
def mark_rows_for_moving(self, checked: bool = False) -> None: def mark_rows_for_moving(self, checked: bool = False) -> None:
""" """
@ -2521,6 +2506,14 @@ class Window(QMainWindow):
self._active_tab().scroll_to_top(playlist_track.row_number) self._active_tab().scroll_to_top(playlist_track.row_number)
def signal_playlist_selected_rows_handler(self, selected_rows: SelectedRows) -> None:
"""
Handle signal_playlist_selected_rows to keep track of which rows
are selected in the current model
"""
self.current.selected_row_numbers = selected_rows.rows
def signal_set_next_track_handler(self, plr: PlaylistRow) -> None: def signal_set_next_track_handler(self, plr: PlaylistRow) -> None:
""" """
Handle signal_set_next_track Handle signal_set_next_track

View File

@ -97,7 +97,7 @@ class PlaylistModel(QAbstractTableModel):
self.signals.signal_begin_insert_rows.connect(self.begin_insert_rows) self.signals.signal_begin_insert_rows.connect(self.begin_insert_rows)
self.signals.signal_end_insert_rows.connect(self.end_insert_rows) self.signals.signal_end_insert_rows.connect(self.end_insert_rows)
self.signals.signal_insert_track.connect(self.insert_row_signal_handler) self.signals.signal_insert_track.connect(self.insert_row_signal_handler)
self.signals.signal_playlist_selected_rows.connect(self.set_selected_rows) self.signals.signal_playlist_selected_rows.connect(self.signal_playlist_selected_rows_handler)
self.signals.signal_set_next_row.connect(self.set_next_row) self.signals.signal_set_next_row.connect(self.set_next_row)
self.signals.signal_track_started.connect(self.track_started) self.signals.signal_track_started.connect(self.track_started)
self.signals.signal_track_ended.connect(self.previous_track_ended) self.signals.signal_track_ended.connect(self.previous_track_ended)
@ -1255,7 +1255,7 @@ class PlaylistModel(QAbstractTableModel):
return True return True
# @log_call # @log_call
def set_selected_rows(self, selected_rows: SelectedRows) -> None: def signal_playlist_selected_rows_handler(self, selected_rows: SelectedRows) -> None:
""" """
Handle signal_playlist_selected_rows to keep track of which rows Handle signal_playlist_selected_rows to keep track of which rows
are selected in the view are selected in the view

View File

@ -354,7 +354,7 @@ class PlaylistTab(QTableView):
Override closeEditor to enable play controls and update display. Override closeEditor to enable play controls and update display.
""" """
self.musicmuster.enable_escape(True) self.signals.enable_escape_signal.emit(True)
super(PlaylistTab, self).closeEditor(editor, hint) super(PlaylistTab, self).closeEditor(editor, hint)