Show Wikipedia/Songfacts on next track if none selected

This commit is contained in:
Keith Edmunds 2024-08-18 11:13:20 +01:00
parent 42ebf2fa7b
commit 3d83de20c2

View File

@ -925,27 +925,19 @@ class Window(QMainWindow, Ui_MainWindow):
Display songfacts page for title in highlighted row
"""
row_number = self.active_tab().source_model_selected_row_number()
if row_number is None:
return
track_info = self.active_proxy_model().get_row_info(row_number)
if track_info is None:
track_info = self.selected_or_next_track_info()
if not track_info:
return
self.signals.search_songfacts_signal.emit(track_info.title)
def lookup_row_in_wikipedia(self) -> None:
"""
Display Wikipedia page for title in highlighted row
Display Wikipedia page for title in highlighted row or next track
"""
row_number = self.active_tab().source_model_selected_row_number()
if row_number is None:
return
track_info = self.active_proxy_model().get_row_info(row_number)
if track_info is None:
track_info = self.selected_or_next_track_info()
if not track_info:
return
self.signals.search_wikipedia_signal.emit(track_info.title)
@ -1502,6 +1494,26 @@ class Window(QMainWindow, Ui_MainWindow):
self.active_proxy_model().set_incremental_search(self.txtSearch.text())
def selected_or_next_track_info(self) -> Optional[RowAndTrack]:
"""
Return RowAndTrack info for selected track. If no selected track, return for
next track. If no next track, return None.
"""
row_number = self.active_tab().source_model_selected_row_number()
if row_number is None:
if track_sequence.next:
if track_sequence.next.track_id:
row_number = track_sequence.next.row_number
if row_number is None:
return None
track_info = self.active_proxy_model().get_row_info(row_number)
if track_info is None:
return None
return track_info
def select_next_row(self) -> None:
"""Select next or first row in playlist"""