diff --git a/app/playlists.py b/app/playlists.py index 1018467..db910ac 100644 --- a/app/playlists.py +++ b/app/playlists.py @@ -172,24 +172,31 @@ class PlaylistTab(QTableWidget): if item is not None: row = item.row() DEBUG(f"playlist.eventFilter(): Right-click on row {row}") + current = row == self._meta_get_current() + next = row == self._meta_get_next() self.menu = QMenu(self) act_info = self.menu.addAction('Info') act_info.triggered.connect(lambda: self._info_row(row)) self.menu.addSeparator() if row not in self._meta_get_notes(): - act_setnext = self.menu.addAction("Set next") - act_setnext.triggered.connect(lambda: self._set_next(row)) + if not current and not next: + act_setnext = self.menu.addAction("Set next") + act_setnext.triggered.connect( + lambda: self._set_next(row)) act_copypath = self.menu.addAction("Copy track path") act_copypath.triggered.connect( lambda: self._copy_path(row)) - act_rescan = self.menu.addAction("Rescan track") - act_rescan.triggered.connect(lambda: self._rescan(row)) - act_audacity = self.menu.addAction( - "Open track in Audacity") - act_audacity.triggered.connect(lambda: self._audacity(row)) + if not current: + act_rescan = self.menu.addAction("Rescan track") + act_rescan.triggered.connect(lambda: self._rescan(row)) + act_audacity = self.menu.addAction( + "Open track in Audacity") + act_audacity.triggered.connect( + lambda: self._audacity(row)) + if not current and not next: self.menu.addSeparator() - act_delete = self.menu.addAction('Delete') - act_delete.triggered.connect(self._delete_rows) + act_delete = self.menu.addAction('Delete') + act_delete.triggered.connect(self._delete_rows) return super(PlaylistTab, self).eventFilter(source, event) @@ -653,22 +660,14 @@ class PlaylistTab(QTableWidget): with Session() as session: for row in rows: - if row == self._meta_get_current(): - show_warning("Silly", "Can't delete playing track") - return - elif row == self._meta_get_next(): - show_warning("Safety", "Can't delete next track") - return - title = self.item(row, self.COL_TITLE).text() - msg = QMessageBox(self) msg.setIcon(QMessageBox.Warning) msg.setText(f"Delete '{title}'?") msg.setStandardButtons(QMessageBox.Yes | QMessageBox.Cancel) msg.setDefaultButton(QMessageBox.Cancel) msg.setWindowTitle("Delete row") - # Store list of notes + # Store list of rows to delete if msg.exec() == QMessageBox.Yes: rows_to_delete.append(row)