Clean up signals
Remove search_wikipedia_signal and search_songfacts_signal. Improve signal names. Make Current a dataclass.
This commit is contained in:
parent
25771f5235
commit
f172eaaeb2
@ -247,11 +247,6 @@ class MusicMusterSignals(QObject):
|
||||
# Signals that the playlist_id passed should resize all rows.
|
||||
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
|
||||
show_warning_signal = pyqtSignal(str, str)
|
||||
|
||||
|
||||
@ -6,7 +6,7 @@ from functools import partial
|
||||
from slugify import slugify # type: ignore
|
||||
from typing import Any, Callable
|
||||
import argparse
|
||||
from dataclasses import dataclass
|
||||
from dataclasses import dataclass, field
|
||||
import datetime as dt
|
||||
import os
|
||||
import subprocess
|
||||
@ -70,14 +70,14 @@ from classes import (
|
||||
MusicMusterSignals,
|
||||
PlaylistDTO,
|
||||
QueryDTO,
|
||||
TrackAndPlaylist,
|
||||
SelectedRows,
|
||||
TrackInfo,
|
||||
)
|
||||
|
||||
from config import Config
|
||||
from dialogs import TrackInsertDialog
|
||||
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 playlistmodel import PlaylistModel, PlaylistProxyModel
|
||||
from playlistrow import PlaylistRow, TrackSequence
|
||||
@ -104,15 +104,6 @@ class SignalMonitor:
|
||||
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 ")
|
||||
)
|
||||
@ -152,17 +143,12 @@ class SignalMonitor:
|
||||
log.debug(f"{name=}, args={args}")
|
||||
|
||||
|
||||
@dataclass
|
||||
class Current:
|
||||
base_model: PlaylistModel
|
||||
proxy_model: PlaylistProxyModel
|
||||
base_model: PlaylistModel | None = None
|
||||
proxy_model: PlaylistProxyModel | None = None
|
||||
playlist_id: int = 0
|
||||
selected_row_numbers: list[int] = []
|
||||
|
||||
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}>"
|
||||
)
|
||||
selected_row_numbers: list[int] = field(default_factory=list)
|
||||
|
||||
|
||||
class DownloadCSV(QDialog):
|
||||
@ -1738,14 +1724,13 @@ class Window(QMainWindow):
|
||||
self.tabBar = self.playlist_section.tabPlaylist.tabBar()
|
||||
self.txtSearch.textChanged.connect(self.search_playlist_text_changed)
|
||||
|
||||
self.signals.enable_escape_signal.connect(self.enable_escape)
|
||||
self.signals.search_songfacts_signal.connect(self.open_songfacts_browser)
|
||||
self.signals.search_wikipedia_signal.connect(self.open_wikipedia_browser)
|
||||
self.signals.enable_escape_signal.connect(self.enable_escape_signal_handler)
|
||||
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_set_next_track.connect(self.signal_set_next_track_handler)
|
||||
self.signals.status_message_signal.connect(self.show_status_message)
|
||||
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.timer500.timeout.connect(self.tick_500ms)
|
||||
@ -1806,7 +1791,7 @@ class Window(QMainWindow):
|
||||
)
|
||||
|
||||
# @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.
|
||||
|
||||
@ -1981,7 +1966,7 @@ class Window(QMainWindow):
|
||||
if not track_info:
|
||||
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:
|
||||
"""
|
||||
@ -1992,7 +1977,7 @@ class Window(QMainWindow):
|
||||
if not track_info:
|
||||
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:
|
||||
"""
|
||||
@ -2521,6 +2506,14 @@ class Window(QMainWindow):
|
||||
|
||||
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:
|
||||
"""
|
||||
Handle signal_set_next_track
|
||||
|
||||
@ -97,7 +97,7 @@ class PlaylistModel(QAbstractTableModel):
|
||||
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_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_track_started.connect(self.track_started)
|
||||
self.signals.signal_track_ended.connect(self.previous_track_ended)
|
||||
@ -1255,7 +1255,7 @@ class PlaylistModel(QAbstractTableModel):
|
||||
return True
|
||||
|
||||
# @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
|
||||
are selected in the view
|
||||
|
||||
@ -354,7 +354,7 @@ class PlaylistTab(QTableView):
|
||||
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)
|
||||
|
||||
|
||||
Loading…
Reference in New Issue
Block a user