Scroll to current/next on header click

This commit is contained in:
Keith Edmunds 2022-09-07 20:07:02 +01:00
parent af11f90808
commit 2f5d00fa3a
4 changed files with 32 additions and 30 deletions

View File

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

View File

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

View File

@ -165,53 +165,41 @@ border: 1px solid rgb(85, 87, 83);</string>
</widget>
</item>
<item>
<widget class="QLabel" name="hdrCurrentTrack">
<widget class="QPushButton" name="hdrCurrentTrack">
<property name="font">
<font>
<family>Sans</family>
<pointsize>20</pointsize>
</font>
</property>
<property name="styleSheet">
<string notr="true">background-color: #d4edda;
border: 1px solid rgb(85, 87, 83);</string>
border: 1px solid rgb(85, 87, 83);
text-align: left;</string>
</property>
<property name="text">
<string/>
</property>
<property name="wordWrap">
<property name="flat">
<bool>true</bool>
</property>
</widget>
</item>
<item>
<widget class="QLabel" name="hdrNextTrack">
<property name="minimumSize">
<size>
<width>0</width>
<height>39</height>
</size>
</property>
<property name="maximumSize">
<size>
<width>16777215</width>
<height>39</height>
</size>
</property>
<widget class="QPushButton" name="hdrNextTrack">
<property name="font">
<font>
<family>Sans</family>
<pointsize>20</pointsize>
</font>
</property>
<property name="styleSheet">
<string notr="true">background-color: #fff3cd;
border: 1px solid rgb(85, 87, 83);</string>
border: 1px solid rgb(85, 87, 83);
text-align: left;</string>
</property>
<property name="text">
<string/>
</property>
<property name="wordWrap">
<property name="flat">
<bool>true</bool>
</property>
</widget>

View File

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