Select and move (un)played tracks. Fixes #4
This commit is contained in:
parent
73879c6a99
commit
a80dc3f165
@ -138,8 +138,11 @@ class Window(QMainWindow, Ui_MainWindow):
|
|||||||
self.actionPlay_next.triggered.connect(self.play_next)
|
self.actionPlay_next.triggered.connect(self.play_next)
|
||||||
self.actionSearch_database.triggered.connect(self.search_database)
|
self.actionSearch_database.triggered.connect(self.search_database)
|
||||||
self.actionSelect_next_track.triggered.connect(self.select_next_track)
|
self.actionSelect_next_track.triggered.connect(self.select_next_track)
|
||||||
|
self.actionSelect_played_tracks.triggered.connect(self.select_played)
|
||||||
self.actionSelect_previous_track.triggered.connect(
|
self.actionSelect_previous_track.triggered.connect(
|
||||||
self.select_previous_track)
|
self.select_previous_track)
|
||||||
|
self.actionSelect_unplayed_tracks.triggered.connect(
|
||||||
|
self.select_unplayed)
|
||||||
self.actionSetNext.triggered.connect(self.set_next_track)
|
self.actionSetNext.triggered.connect(self.set_next_track)
|
||||||
self.actionSkip_next.triggered.connect(self.play_next)
|
self.actionSkip_next.triggered.connect(self.play_next)
|
||||||
self.actionSkipToEnd.triggered.connect(self.test_skip_to_end)
|
self.actionSkipToEnd.triggered.connect(self.test_skip_to_end)
|
||||||
@ -429,6 +432,11 @@ class Window(QMainWindow, Ui_MainWindow):
|
|||||||
|
|
||||||
self.visible_playlist_tab().select_next_track()
|
self.visible_playlist_tab().select_next_track()
|
||||||
|
|
||||||
|
def select_played(self):
|
||||||
|
"Select all played tracks in playlist"
|
||||||
|
|
||||||
|
self.visible_playlist_tab().select_played_tracks()
|
||||||
|
|
||||||
def select_previous_track(self):
|
def select_previous_track(self):
|
||||||
"Select previous or first track in playlist"
|
"Select previous or first track in playlist"
|
||||||
|
|
||||||
@ -449,6 +457,11 @@ class Window(QMainWindow, Ui_MainWindow):
|
|||||||
self.next_track = Tracks.get_track(session, next_track_id)
|
self.next_track = Tracks.get_track(session, next_track_id)
|
||||||
self.update_headers()
|
self.update_headers()
|
||||||
|
|
||||||
|
def select_unplayed(self):
|
||||||
|
"Select all unplayed tracks in playlist"
|
||||||
|
|
||||||
|
self.visible_playlist_tab().select_unplayed_tracks()
|
||||||
|
|
||||||
def show_warning(self, title, msg):
|
def show_warning(self, title, msg):
|
||||||
"Display a warning to user"
|
"Display a warning to user"
|
||||||
|
|
||||||
|
|||||||
@ -425,6 +425,21 @@ class PlaylistTab(QTableWidget):
|
|||||||
|
|
||||||
self.selectRow(row)
|
self.selectRow(row)
|
||||||
|
|
||||||
|
def select_played_tracks(self):
|
||||||
|
"Select all played tracks in playlist"
|
||||||
|
|
||||||
|
# Need to allow multiple rows to be selected
|
||||||
|
self.setSelectionMode(QtWidgets.QAbstractItemView.MultiSelection)
|
||||||
|
|
||||||
|
self.clearSelection()
|
||||||
|
|
||||||
|
for row in range(self.rowCount()):
|
||||||
|
if self._get_row_id(row) in self.played_tracks:
|
||||||
|
self.selectRow(row)
|
||||||
|
|
||||||
|
# Reset extended selection
|
||||||
|
self.setSelectionMode(QtWidgets.QAbstractItemView.ExtendedSelection)
|
||||||
|
|
||||||
def select_previous_track(self):
|
def select_previous_track(self):
|
||||||
"""
|
"""
|
||||||
Select previous or last track. Don't select notes. Wrap at first row.
|
Select previous or last track. Don't select notes. Wrap at first row.
|
||||||
@ -458,6 +473,25 @@ class PlaylistTab(QTableWidget):
|
|||||||
|
|
||||||
self.selectRow(row)
|
self.selectRow(row)
|
||||||
|
|
||||||
|
def select_unplayed_tracks(self):
|
||||||
|
"Select all unplayed tracks in playlist"
|
||||||
|
|
||||||
|
# Need to allow multiple rows to be selected
|
||||||
|
self.setSelectionMode(QtWidgets.QAbstractItemView.MultiSelection)
|
||||||
|
notes_rows = self._meta_get_notes()
|
||||||
|
|
||||||
|
self.clearSelection()
|
||||||
|
|
||||||
|
for row in range(self.rowCount()):
|
||||||
|
if row in notes_rows:
|
||||||
|
continue
|
||||||
|
if self._get_row_id(row) in self.played_tracks:
|
||||||
|
continue
|
||||||
|
self.selectRow(row)
|
||||||
|
|
||||||
|
# Reset extended selection
|
||||||
|
self.setSelectionMode(QtWidgets.QAbstractItemView.ExtendedSelection)
|
||||||
|
|
||||||
def set_selected_as_next(self):
|
def set_selected_as_next(self):
|
||||||
"""
|
"""
|
||||||
Sets the selected track as the next track.
|
Sets the selected track as the next track.
|
||||||
|
|||||||
@ -757,6 +757,8 @@ border: 1px solid rgb(85, 87, 83);</string>
|
|||||||
<addaction name="actionAdd_file"/>
|
<addaction name="actionAdd_file"/>
|
||||||
<addaction name="action_Clear_selection"/>
|
<addaction name="action_Clear_selection"/>
|
||||||
<addaction name="separator"/>
|
<addaction name="separator"/>
|
||||||
|
<addaction name="actionSelect_unplayed_tracks"/>
|
||||||
|
<addaction name="actionSelect_played_tracks"/>
|
||||||
<addaction name="actionMoveSelected"/>
|
<addaction name="actionMoveSelected"/>
|
||||||
<addaction name="separator"/>
|
<addaction name="separator"/>
|
||||||
<addaction name="actionExport_playlist"/>
|
<addaction name="actionExport_playlist"/>
|
||||||
@ -977,6 +979,16 @@ border: 1px solid rgb(85, 87, 83);</string>
|
|||||||
<string>K</string>
|
<string>K</string>
|
||||||
</property>
|
</property>
|
||||||
</action>
|
</action>
|
||||||
|
<action name="actionSelect_played_tracks">
|
||||||
|
<property name="text">
|
||||||
|
<string>Select played tracks</string>
|
||||||
|
</property>
|
||||||
|
</action>
|
||||||
|
<action name="actionSelect_unplayed_tracks">
|
||||||
|
<property name="text">
|
||||||
|
<string>Select unplayed tracks</string>
|
||||||
|
</property>
|
||||||
|
</action>
|
||||||
</widget>
|
</widget>
|
||||||
<resources>
|
<resources>
|
||||||
<include location="icons.qrc"/>
|
<include location="icons.qrc"/>
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user