WIP V3: use signals to open wikipedia/songfacts pages
Also open wikipedia page on selecting next track
This commit is contained in:
parent
88e638a56e
commit
5add1f01c6
@ -83,8 +83,10 @@ class MusicMusterSignals(QObject):
|
|||||||
add_track_to_playlist_signal = pyqtSignal(int, int, int, str)
|
add_track_to_playlist_signal = pyqtSignal(int, int, int, str)
|
||||||
enable_escape_signal = pyqtSignal(bool)
|
enable_escape_signal = pyqtSignal(bool)
|
||||||
next_track_changed_signal = pyqtSignal()
|
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)
|
show_warning_signal = pyqtSignal(str, str)
|
||||||
|
span_cells_signal = pyqtSignal(int, int, int, int)
|
||||||
status_message_signal = pyqtSignal(str, int)
|
status_message_signal = pyqtSignal(str, int)
|
||||||
|
|
||||||
def __post_init__(self):
|
def __post_init__(self):
|
||||||
|
|||||||
@ -8,6 +8,7 @@ from PyQt6.QtWebEngineWidgets import QWebEngineView
|
|||||||
from PyQt6.QtWidgets import QTabWidget
|
from PyQt6.QtWidgets import QTabWidget
|
||||||
from config import Config
|
from config import Config
|
||||||
|
|
||||||
|
from classes import MusicMusterSignals
|
||||||
|
|
||||||
class InfoTabs(QTabWidget):
|
class InfoTabs(QTabWidget):
|
||||||
"""
|
"""
|
||||||
@ -17,7 +18,9 @@ class InfoTabs(QTabWidget):
|
|||||||
def __init__(self, parent=None) -> None:
|
def __init__(self, parent=None) -> None:
|
||||||
super().__init__(parent)
|
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)
|
# re-use the oldest one later)
|
||||||
self.last_update: Dict[QWebEngineView, datetime] = {}
|
self.last_update: Dict[QWebEngineView, datetime] = {}
|
||||||
self.tabtitles: Dict[int, str] = {}
|
self.tabtitles: Dict[int, str] = {}
|
||||||
|
|||||||
@ -848,13 +848,7 @@ class Window(QMainWindow, Ui_MainWindow):
|
|||||||
if track_info is None:
|
if track_info is None:
|
||||||
return
|
return
|
||||||
|
|
||||||
# Populate infotab in a thread as it's slow
|
self.signals.search_songfacts_signal.emit(track_info.title)
|
||||||
QTimer.singleShot(
|
|
||||||
0,
|
|
||||||
lambda: self.tabInfolist.open_in_songfacts(
|
|
||||||
track_info.title
|
|
||||||
),
|
|
||||||
)
|
|
||||||
|
|
||||||
def lookup_row_in_wikipedia(self) -> None:
|
def lookup_row_in_wikipedia(self) -> None:
|
||||||
"""
|
"""
|
||||||
@ -869,13 +863,7 @@ class Window(QMainWindow, Ui_MainWindow):
|
|||||||
if track_info is None:
|
if track_info is None:
|
||||||
return
|
return
|
||||||
|
|
||||||
# Populate infotab in a thread as it's slow
|
self.signals.search_wikipedia_signal.emit(track_info.title)
|
||||||
QTimer.singleShot(
|
|
||||||
0,
|
|
||||||
lambda: self.tabInfolist.open_in_wikipedia(
|
|
||||||
track_info.title
|
|
||||||
),
|
|
||||||
)
|
|
||||||
|
|
||||||
def move_playlist_rows(
|
def move_playlist_rows(
|
||||||
self, session: scoped_session, playlistrows: Sequence[PlaylistRows]
|
self, session: scoped_session, playlistrows: Sequence[PlaylistRows]
|
||||||
|
|||||||
@ -940,6 +940,7 @@ class PlaylistModel(QAbstractTableModel):
|
|||||||
return
|
return
|
||||||
track_sequence.next.set_plr(session, plr)
|
track_sequence.next.set_plr(session, plr)
|
||||||
self.signals.next_track_changed_signal.emit()
|
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.invalidate_row(row_number)
|
||||||
self.update_track_times()
|
self.update_track_times()
|
||||||
|
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user