From 2f5d00fa3a4664da20eb46a077c17a0f138bc8a7 Mon Sep 17 00:00:00 2001 From: Keith Edmunds Date: Wed, 7 Sep 2022 20:07:02 +0100 Subject: [PATCH] Scroll to current/next on header click --- app/musicmuster.py | 4 ++++ app/playlists.py | 12 ++++++++++++ app/ui/main_window.ui | 28 ++++++++-------------------- app/ui/main_window_ui.py | 18 ++++++++---------- 4 files changed, 32 insertions(+), 30 deletions(-) diff --git a/app/musicmuster.py b/app/musicmuster.py index 0ba1a3b..fcc96e4 100755 --- a/app/musicmuster.py +++ b/app/musicmuster.py @@ -220,6 +220,10 @@ class Window(QMainWindow, Ui_MainWindow): self.btnFade.clicked.connect(self.fade) self.btnHidePlayed.clicked.connect(self.hide_played) self.btnStop.clicked.connect(self.stop) + self.hdrCurrentTrack.clicked.connect( + lambda: self.tabPlaylist.currentWidget().scroll_current_to_top()) + self.hdrNextTrack.clicked.connect( + lambda: self.tabPlaylist.currentWidget().scroll_next_to_top()) self.tabPlaylist.tabCloseRequested.connect(self.close_tab) self.txtSearch.returnPressed.connect(self.search_playlist_return) diff --git a/app/playlists.py b/app/playlists.py index 9d01d5c..a92a487 100644 --- a/app/playlists.py +++ b/app/playlists.py @@ -786,6 +786,18 @@ class PlaylistTab(QTableWidget): session.commit() PlaylistRows.delete_higher_rows(session, self.playlist_id, row) + def scroll_current_to_top(self) -> None: + """Scroll currently-playing row to top""" + + current_row = self._get_current_track_row() + self._scroll_to_top(current_row) + + def scroll_next_to_top(self) -> None: + """Scroll nextly-playing row to top""" + + next_row = self._get_next_track_row() + self._scroll_to_top(next_row) + def set_search(self, text: str) -> None: """Set search text and find first match""" diff --git a/app/ui/main_window.ui b/app/ui/main_window.ui index 1fcf54d..8c7cc6a 100644 --- a/app/ui/main_window.ui +++ b/app/ui/main_window.ui @@ -165,53 +165,41 @@ border: 1px solid rgb(85, 87, 83); - + - Sans 20 background-color: #d4edda; -border: 1px solid rgb(85, 87, 83); +border: 1px solid rgb(85, 87, 83); +text-align: left; - + true - - - - 0 - 39 - - - - - 16777215 - 39 - - + - Sans 20 background-color: #fff3cd; -border: 1px solid rgb(85, 87, 83); +border: 1px solid rgb(85, 87, 83); +text-align: left; - + true diff --git a/app/ui/main_window_ui.py b/app/ui/main_window_ui.py index 909e6f1..8c53f3b 100644 --- a/app/ui/main_window_ui.py +++ b/app/ui/main_window_ui.py @@ -92,28 +92,26 @@ class Ui_MainWindow(object): self.hdrPreviousTrack.setWordWrap(True) self.hdrPreviousTrack.setObjectName("hdrPreviousTrack") self.verticalLayout.addWidget(self.hdrPreviousTrack) - self.hdrCurrentTrack = QtWidgets.QLabel(self.centralwidget) + self.hdrCurrentTrack = QtWidgets.QPushButton(self.centralwidget) font = QtGui.QFont() - font.setFamily("Sans") font.setPointSize(20) self.hdrCurrentTrack.setFont(font) self.hdrCurrentTrack.setStyleSheet("background-color: #d4edda;\n" -"border: 1px solid rgb(85, 87, 83);") +"border: 1px solid rgb(85, 87, 83);\n" +"text-align: left;") self.hdrCurrentTrack.setText("") - self.hdrCurrentTrack.setWordWrap(True) + self.hdrCurrentTrack.setFlat(True) self.hdrCurrentTrack.setObjectName("hdrCurrentTrack") self.verticalLayout.addWidget(self.hdrCurrentTrack) - self.hdrNextTrack = QtWidgets.QLabel(self.centralwidget) - self.hdrNextTrack.setMinimumSize(QtCore.QSize(0, 39)) - self.hdrNextTrack.setMaximumSize(QtCore.QSize(16777215, 39)) + self.hdrNextTrack = QtWidgets.QPushButton(self.centralwidget) font = QtGui.QFont() - font.setFamily("Sans") font.setPointSize(20) self.hdrNextTrack.setFont(font) self.hdrNextTrack.setStyleSheet("background-color: #fff3cd;\n" -"border: 1px solid rgb(85, 87, 83);") +"border: 1px solid rgb(85, 87, 83);\n" +"text-align: left;") self.hdrNextTrack.setText("") - self.hdrNextTrack.setWordWrap(True) + self.hdrNextTrack.setFlat(True) self.hdrNextTrack.setObjectName("hdrNextTrack") self.verticalLayout.addWidget(self.hdrNextTrack) self.horizontalLayout_3.addLayout(self.verticalLayout)