WIP V3: use signals to open wikipedia/songfacts pages

Also open wikipedia page on selecting next track
This commit is contained in:
Keith Edmunds 2023-11-19 21:50:39 +00:00
parent 88e638a56e
commit 5add1f01c6
4 changed files with 10 additions and 16 deletions

View File

@ -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):

View File

@ -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] = {}

View File

@ -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]

View File

@ -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()