diff --git a/app/classes.py b/app/classes.py index 2f513f6..6272f5d 100644 --- a/app/classes.py +++ b/app/classes.py @@ -83,8 +83,10 @@ class MusicMusterSignals(QObject): add_track_to_playlist_signal = pyqtSignal(int, int, int, str) enable_escape_signal = pyqtSignal(bool) next_track_changed_signal = pyqtSignal() - span_cells_signal = pyqtSignal(int, int, int, int) + search_songfacts_signal = pyqtSignal(str) + search_wikipedia_signal = pyqtSignal(str) show_warning_signal = pyqtSignal(str, str) + span_cells_signal = pyqtSignal(int, int, int, int) status_message_signal = pyqtSignal(str, int) def __post_init__(self): diff --git a/app/infotabs.py b/app/infotabs.py index a82e359..68a3dff 100644 --- a/app/infotabs.py +++ b/app/infotabs.py @@ -8,6 +8,7 @@ from PyQt6.QtWebEngineWidgets import QWebEngineView from PyQt6.QtWidgets import QTabWidget from config import Config +from classes import MusicMusterSignals class InfoTabs(QTabWidget): """ @@ -17,7 +18,9 @@ class InfoTabs(QTabWidget): def __init__(self, parent=None) -> None: super().__init__(parent) - # Dictionary to record when tabs were last updated (so we can + self.signals = MusicMusterSignals() + self.signals.search_songfacts_signal.connect(self.open_in_songfacts) + self.signals.search_wikipedia_signal.connect(self.open_in_wikipedia) # re-use the oldest one later) self.last_update: Dict[QWebEngineView, datetime] = {} self.tabtitles: Dict[int, str] = {} diff --git a/app/musicmuster.py b/app/musicmuster.py index 2000895..4fb243e 100755 --- a/app/musicmuster.py +++ b/app/musicmuster.py @@ -848,13 +848,7 @@ class Window(QMainWindow, Ui_MainWindow): if track_info is None: return - # Populate infotab in a thread as it's slow - QTimer.singleShot( - 0, - lambda: self.tabInfolist.open_in_songfacts( - track_info.title - ), - ) + self.signals.search_songfacts_signal.emit(track_info.title) def lookup_row_in_wikipedia(self) -> None: """ @@ -869,13 +863,7 @@ class Window(QMainWindow, Ui_MainWindow): if track_info is None: return - # Populate infotab in a thread as it's slow - QTimer.singleShot( - 0, - lambda: self.tabInfolist.open_in_wikipedia( - track_info.title - ), - ) + self.signals.search_wikipedia_signal.emit(track_info.title) def move_playlist_rows( self, session: scoped_session, playlistrows: Sequence[PlaylistRows] diff --git a/app/playlistmodel.py b/app/playlistmodel.py index 15cade6..2d5daad 100644 --- a/app/playlistmodel.py +++ b/app/playlistmodel.py @@ -940,6 +940,7 @@ class PlaylistModel(QAbstractTableModel): return track_sequence.next.set_plr(session, plr) self.signals.next_track_changed_signal.emit() + self.signals.search_wikipedia_signal.emit(self.playlist_rows[row_number].title) self.invalidate_row(row_number) self.update_track_times()