Select next/prev row working

This commit is contained in:
Keith Edmunds 2022-08-13 15:21:09 +01:00
parent cb5eedd8c8
commit 930efbbe6e
2 changed files with 89 additions and 85 deletions

View File

@ -180,18 +180,18 @@ class Window(QMainWindow, Ui_MainWindow):
# self.actionMoveSelected.triggered.connect(self.move_selected) # self.actionMoveSelected.triggered.connect(self.move_selected)
self.actionNewPlaylist.triggered.connect(self.create_playlist) self.actionNewPlaylist.triggered.connect(self.create_playlist)
self.actionOpenPlaylist.triggered.connect(self.open_playlist) self.actionOpenPlaylist.triggered.connect(self.open_playlist)
# ***kae
self.actionPlay_next.triggered.connect(self.play_next) self.actionPlay_next.triggered.connect(self.play_next)
# self.actionSearch.triggered.connect(self.search_playlist) # self.actionSearch.triggered.connect(self.search_playlist)
# 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_row) self.actionSelect_next_track.triggered.connect(self.select_next_row)
# self.actionSelect_played_tracks.triggered.connect(self.select_played) # self.actionSelect_played_tracks.triggered.connect(self.select_played)
# self.actionSelect_previous_track.triggered.connect( self.actionSelect_previous_track.triggered.connect(
# self.select_previous_row) self.select_previous_row)
# self.actionSelect_unplayed_tracks.triggered.connect( # self.actionSelect_unplayed_tracks.triggered.connect(
# self.select_unplayed) # self.select_unplayed)
self.actionSetNext.triggered.connect( self.actionSetNext.triggered.connect(
lambda: self.tabPlaylist.currentWidget().set_selected_as_next()) lambda: self.tabPlaylist.currentWidget().set_selected_as_next())
# ***kae
# self.actionSkip_next.triggered.connect(self.play_next) # self.actionSkip_next.triggered.connect(self.play_next)
self.actionStop.triggered.connect(self.stop) self.actionStop.triggered.connect(self.stop)
# self.btnDrop3db.clicked.connect(self.drop3db) # self.btnDrop3db.clicked.connect(self.drop3db)
@ -662,21 +662,21 @@ class Window(QMainWindow, Ui_MainWindow):
if playlist: if playlist:
playlist.mark_open(session) playlist.mark_open(session)
self.create_playlist_tab(session, playlist) self.create_playlist_tab(session, playlist)
#
# def select_next_row(self) -> None: def select_next_row(self) -> None:
# """Select next or first row in playlist""" """Select next or first row in playlist"""
#
# self.visible_playlist_tab().select_next_row() self.visible_playlist_tab().select_next_row()
# #
# def select_played(self) -> None: # def select_played(self) -> None:
# """Select all played tracks in playlist""" # """Select all played tracks in playlist"""
# #
# self.visible_playlist_tab().select_played_tracks() # self.visible_playlist_tab().select_played_tracks()
# #
# def select_previous_row(self) -> None: def select_previous_row(self) -> None:
# """Select previous or first row in playlist""" """Select previous or first row in playlist"""
#
# self.visible_playlist_tab().select_previous_row() self.visible_playlist_tab().select_previous_row()
# #
# def select_unplayed(self) -> None: # def select_unplayed(self) -> None:
# """Select all unplayed tracks in playlist""" # """Select all unplayed tracks in playlist"""

View File

@ -794,41 +794,43 @@ class PlaylistTab(QTableWidget):
# row, FIXUP.COL_USERDATA).data(self.CONTENT_OBJECT) # row, FIXUP.COL_USERDATA).data(self.CONTENT_OBJECT)
# playlist.add_track(session, track_id, row) # playlist.add_track(session, track_id, row)
# session.commit() # session.commit()
#
# def select_next_row(self) -> None: def select_next_row(self) -> None:
# """ """
# Select next or first row. Don't select notes. Wrap at last row. Select next or first row. Don't select section headers.
# """ Wrap at last row.
# """
# row: int
# selected_rows: List[int] row: int
# selected_rows: List[int]
# selected_rows = [row for row in
# set([a.row() for a in self.selectedItems()])] selected_rows = self._selected_rows()
# # we will only handle zero or one selected rows # we will only handle zero or one selected rows
# if len(selected_rows) > 1: if len(selected_rows) > 1:
# return return
# # select first row if none selected # select first row if none selected
# if len(selected_rows) == 0: if len(selected_rows) == 0:
# row = 0 row = 0
# else: else:
# row = selected_rows[0] + 1 row = selected_rows[0] + 1
# if row >= self.rowCount(): if row >= self.rowCount():
# row = 0 row = 0
#
# # Don't select notes # Don't select section headers
# wrapped: bool = False wrapped: bool = False
# while row in self._get_notes_rows(): track_id = self._get_row_track_id(row)
# row += 1 while not track_id:
# if row >= self.rowCount(): row += 1
# if wrapped: if row >= self.rowCount():
# # we're already wrapped once, so there are no if wrapped:
# # non-notes # we're already wrapped once, so there are no
# return # non-notes
# row = 0 return
# wrapped = True row = 0
# wrapped = True
# self.selectRow(row) track_id = self._get_row_track_id(row)
self.selectRow(row)
# #
# def select_played_tracks(self) -> None: # def select_played_tracks(self) -> None:
# """Select all played tracks in playlist""" # """Select all played tracks in playlist"""
@ -839,42 +841,44 @@ class PlaylistTab(QTableWidget):
# finally: # finally:
# self.selecting_in_progress = False # self.selecting_in_progress = False
# self._select_event() # self._select_event()
#
# def select_previous_row(self) -> None: def select_previous_row(self) -> None:
# """ """
# Select previous or last track. Don't select notes. Wrap at first row. Select previous or last track. Don't select section headers.
# """ Wrap at first row.
# """
# row: int
# selected_rows: List[int] row: int
# selected_rows: List[int]
# selected_rows = [row for row in
# set([a.row() for a in self.selectedItems()])] selected_rows = self._selected_rows()
# # we will only handle zero or one selected rows # we will only handle zero or one selected rows
# if len(selected_rows) > 1: if len(selected_rows) > 1:
# return return
# # select last row if none selected # select last row if none selected
# last_row: int = self.rowCount() - 1 last_row = self.rowCount() - 1
# if len(selected_rows) == 0: if len(selected_rows) == 0:
# row = last_row row = last_row
# else: else:
# row = selected_rows[0] - 1 row = selected_rows[0] - 1
# if row < 0: if row < 0:
# row = last_row row = last_row
#
# # Don't select notes # Don't select section headers
# wrapped: bool = False wrapped: bool = False
# while row in self._get_notes_rows(): track_id = self._get_row_track_id(row)
# row -= 1 while not track_id:
# if row < 0: row -= 1
# if wrapped: if row < 0:
# # we're already wrapped once, so there are no if wrapped:
# # non-notes # we're already wrapped once, so there are no
# return # non-notes
# row = last_row return
# wrapped = True row = last_row
# wrapped = True
# self.selectRow(row) track_id = self._get_row_track_id(row)
self.selectRow(row)
# #
# def select_unplayed_tracks(self) -> None: # def select_unplayed_tracks(self) -> None:
# """Select all unplayed tracks in playlist""" # """Select all unplayed tracks in playlist"""
@ -1750,7 +1754,7 @@ class PlaylistTab(QTableWidget):
else: else:
self.musicmuster.lblSumPlaytime.setText("") self.musicmuster.lblSumPlaytime.setText("")
def _selected_rows(self) -> Optional[List[int]]: def _selected_rows(self) -> List[int]:
"""Return a list of selected row numbers""" """Return a list of selected row numbers"""
# Use a set to deduplicate result (a selected row will have all # Use a set to deduplicate result (a selected row will have all