Browse Source

qt: prompt confirmation before committing deletion in `PlaylistMediaList`

pull/183/head
Fatih Uzunoglu 1 year ago
committed by Steve Lhomme
parent
commit
ddd66d5268
  1. 21
      modules/gui/qt/medialibrary/qml/PlaylistMediaList.qml
  2. 4
      modules/gui/qt/menus/qml_menu_wrapper.cpp
  3. 3
      modules/gui/qt/menus/qml_menu_wrapper.hpp

21
modules/gui/qt/medialibrary/qml/PlaylistMediaList.qml

@ -183,6 +183,23 @@ MainViewLoader {
return Promise.resolve()
}
function deleteSelectedPlaylists() {
console.assert(root.model)
console.assert(root.selectionModel)
if (root.selectionModel.hasSelection) {
const items = []
for (const i of root.selectionModel.selectedIndexes) {
items.push(root.model.data(i, MLPlaylistListModel.PLAYLIST_ID))
}
console.assert(items.length > 0)
if (DialogsProvider.questionDialog(qsTr("Do you really want to delete the selected playlist(s)?"),
qsTr("Delete playlist(s)")))
root.model.deletePlaylists(items)
} else {
console.warn(root, ": Nothing to delete")
}
}
//---------------------------------------------------------------------------------------------
// Childs
//---------------------------------------------------------------------------------------------
@ -248,6 +265,10 @@ MainViewLoader {
function tableView_popup(index, selectedIndexes, globalPos) {
popup(selectedIndexes, globalPos)
}
Component.onCompleted: {
contextMenu.requestDeleteSelectedPlaylists.connect(root.deleteSelectedPlaylists)
}
}
// TBD: Refactor this with MusicGenres ?

4
modules/gui/qt/menus/qml_menu_wrapper.cpp

@ -839,9 +839,7 @@ void PlaylistListContextMenu::popup(const QModelIndexList & selected, QPoint pos
action = menu->addAction(qtr("Delete"));
connect(action, &QAction::triggered, [this, ids]() {
m_model->deletePlaylists(ids);
});
connect(action, &QAction::triggered, this, &PlaylistListContextMenu::requestDeleteSelectedPlaylists);
menu->popup(pos);
}

3
modules/gui/qt/menus/qml_menu_wrapper.hpp

@ -391,6 +391,9 @@ public:
public slots:
void popup(const QModelIndexList & selected, QPoint pos, QVariantMap options = {});
signals:
void requestDeleteSelectedPlaylists();
};
class QmlAudioContextMenu : public VLCMenuBar

Loading…
Cancel
Save