parent
d9ccaf7caa
commit
70d986f4ac
@ -183,7 +183,7 @@ class PlaylistTab(QTableWidget):
|
|||||||
act_rescan.triggered.connect(lambda: self._rescan(row))
|
act_rescan.triggered.connect(lambda: self._rescan(row))
|
||||||
self.menu.addSeparator()
|
self.menu.addSeparator()
|
||||||
act_delete = self.menu.addAction('Delete')
|
act_delete = self.menu.addAction('Delete')
|
||||||
act_delete.triggered.connect(lambda: self._delete_row(row))
|
act_delete.triggered.connect(self._delete_rows)
|
||||||
act_info = self.menu.addAction('Info')
|
act_info = self.menu.addAction('Info')
|
||||||
act_info.triggered.connect(lambda: self._info_row(row))
|
act_info.triggered.connect(lambda: self._info_row(row))
|
||||||
|
|
||||||
@ -624,11 +624,17 @@ class PlaylistTab(QTableWidget):
|
|||||||
self.editing_cell = False
|
self.editing_cell = False
|
||||||
self.master_process.enable_play_next_controls()
|
self.master_process.enable_play_next_controls()
|
||||||
|
|
||||||
def _delete_row(self, row):
|
def _delete_rows(self):
|
||||||
"Delete row"
|
"Delete mutliple rows"
|
||||||
|
|
||||||
DEBUG(f"playlist._delete_row({row})")
|
DEBUG("playlist._delete_rows()")
|
||||||
|
|
||||||
|
rows = sorted(set(item.row() for item in self.selectedItems()))
|
||||||
|
rows_to_delete = []
|
||||||
|
notes = self._meta_get_notes()
|
||||||
|
|
||||||
|
with Session() as session:
|
||||||
|
for row in rows:
|
||||||
if row == self._meta_get_current():
|
if row == self._meta_get_current():
|
||||||
show_warning("Silly", "Can't delete playing track")
|
show_warning("Silly", "Can't delete playing track")
|
||||||
return
|
return
|
||||||
@ -636,7 +642,6 @@ class PlaylistTab(QTableWidget):
|
|||||||
show_warning("Safety", "Can't delete next track")
|
show_warning("Safety", "Can't delete next track")
|
||||||
return
|
return
|
||||||
|
|
||||||
with Session() as session:
|
|
||||||
title = self.item(row, self.COL_TITLE).text()
|
title = self.item(row, self.COL_TITLE).text()
|
||||||
|
|
||||||
msg = QMessageBox(self)
|
msg = QMessageBox(self)
|
||||||
@ -645,13 +650,19 @@ class PlaylistTab(QTableWidget):
|
|||||||
msg.setStandardButtons(QMessageBox.Yes | QMessageBox.Cancel)
|
msg.setStandardButtons(QMessageBox.Yes | QMessageBox.Cancel)
|
||||||
msg.setDefaultButton(QMessageBox.Cancel)
|
msg.setDefaultButton(QMessageBox.Cancel)
|
||||||
msg.setWindowTitle("Delete row")
|
msg.setWindowTitle("Delete row")
|
||||||
|
# Store list of notes
|
||||||
if msg.exec() == QMessageBox.Yes:
|
if msg.exec() == QMessageBox.Yes:
|
||||||
id = self._get_row_id(row)
|
rows_to_delete.append(row)
|
||||||
if row in self._meta_get_notes():
|
|
||||||
|
# delete in reverse row order so row numbers don't
|
||||||
|
# change
|
||||||
|
for del_row in sorted(rows_to_delete, reverse=True):
|
||||||
|
id = self._get_row_id(del_row)
|
||||||
|
if del_row in notes:
|
||||||
Notes.delete_note(session, id)
|
Notes.delete_note(session, id)
|
||||||
else:
|
else:
|
||||||
PlaylistTracks.remove_track(session, self.id, row)
|
PlaylistTracks.remove_track(session, self.id, del_row)
|
||||||
self.removeRow(row)
|
self.removeRow(del_row)
|
||||||
|
|
||||||
self._save_playlist(session)
|
self._save_playlist(session)
|
||||||
self._repaint()
|
self._repaint()
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user