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.
|
# 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)
|
||||||
|
|
||||||
|
|||||||
@ -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
|
||||||
|
|||||||
@ -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
|
||||||
|
|||||||
@ -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)
|
||||||
|
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user