diff --git a/app/musicmuster.py b/app/musicmuster.py index d72be6b..24556e7 100755 --- a/app/musicmuster.py +++ b/app/musicmuster.py @@ -461,7 +461,7 @@ class Window(QMainWindow, Ui_MainWindow): self.actionImport.triggered.connect(self.import_track) self.actionInsertSectionHeader.triggered.connect(self.insert_header) self.actionInsertTrack.triggered.connect(self.insert_track) - self.actionMark_for_moving.triggered.connect(self.cut_rows) + self.actionMark_for_moving.triggered.connect(self.mark_rows_for_moving) self.actionMoveSelected.triggered.connect(self.move_selected) self.actionNew_from_template.triggered.connect(self.new_from_template) self.actionNewPlaylist.triggered.connect(self.create_and_show_playlist) @@ -565,18 +565,6 @@ class Window(QMainWindow, Ui_MainWindow): log.debug(f"create_playlist_tab() returned: {idx=}") return idx - def cut_rows(self) -> None: - """ - Cut rows ready for pasting. - """ - - # Save the selected PlaylistRows items ready for a later - # paste - self.move_source_rows = self.active_tab().get_selected_rows() - self.move_source_model = self.active_proxy_model() - - log.debug(f"cut_rows(): {self.move_source_rows=} {self.move_source_model=}") - def debug(self): """Invoke debugger""" @@ -930,6 +918,18 @@ class Window(QMainWindow, Ui_MainWindow): self.signals.search_wikipedia_signal.emit(track_info.title) + def mark_rows_for_moving(self) -> None: + """ + Cut rows ready for pasting. + """ + + # Save the selected PlaylistRows items ready for a later + # paste + self.move_source_rows = self.active_tab().get_selected_rows() + self.move_source_model = self.active_proxy_model() + + log.debug(f"mark_rows_for_moving(): {self.move_source_rows=} {self.move_source_model=}") + def move_playlist_rows(self, row_numbers: List[int]) -> None: """ Move passed playlist rows to another playlist diff --git a/app/playlists.py b/app/playlists.py index f816660..35ca3c8 100644 --- a/app/playlists.py +++ b/app/playlists.py @@ -483,6 +483,13 @@ class PlaylistTab(QTableView): self._add_context_menu( "Rescan track", lambda: self._rescan(model_row_number) ) + self._add_context_menu( + "Mark for moving", lambda: self._mark_for_moving() + ) + if self.musicmuster.move_source_rows: + self._add_context_menu( + "Move selected rows here", lambda: self._move_selected_rows() + ) # ---------------------- self.menu.addSeparator() @@ -740,6 +747,20 @@ class PlaylistTab(QTableView): self.source_model.mark_unplayed(row_numbers) self.clear_selection() + def _mark_for_moving(self) -> None: + """ + Mark selected rows for pasting + """ + + self.musicmuster.mark_rows_for_moving() + + def _move_selected_rows(self) -> None: + """ + Move selected rows here + """ + + self.musicmuster.paste_rows() + def _open_in_audacity(self, row_number: int) -> None: """ Open track in passed row in Audacity