From c8e5691404ba9a396d6e650cbd8ecd4223bd3375 Mon Sep 17 00:00:00 2001 From: RickyRister Date: Mon, 23 Dec 2024 00:40:49 -0800 Subject: [PATCH] support multi delete deck --- .../src/client/tabs/tab_deck_storage.cpp | 18 ++++++++++++------ 1 file changed, 12 insertions(+), 6 deletions(-) diff --git a/cockatrice/src/client/tabs/tab_deck_storage.cpp b/cockatrice/src/client/tabs/tab_deck_storage.cpp index ea230e42c..11d6e8484 100644 --- a/cockatrice/src/client/tabs/tab_deck_storage.cpp +++ b/cockatrice/src/client/tabs/tab_deck_storage.cpp @@ -244,16 +244,22 @@ void TabDeckStorage::uploadFinished(const Response &r, const CommandContainer &c void TabDeckStorage::actDeleteLocalDeck() { - QModelIndex curLeft = localDirView->selectionModel()->currentIndex(); - if (localDirModel->isDir(curLeft)) - return; + const QModelIndexList curLefts = localDirView->selectionModel()->selectedRows(); - if (QMessageBox::warning(this, tr("Delete local file"), - tr("Are you sure you want to delete \"%1\"?").arg(localDirModel->fileName(curLeft)), + auto isDir = [&](const auto &curLeft) { return localDirModel->isDir(curLeft); }; + if (curLefts.isEmpty() || std::all_of(curLefts.begin(), curLefts.end(), isDir)) { + return; + } + + if (QMessageBox::warning(this, tr("Delete local file"), tr("Are you sure you want to delete the selected files?"), QMessageBox::Yes | QMessageBox::No) != QMessageBox::Yes) return; - localDirModel->remove(curLeft); + for (const auto &curLeft : curLefts) { + if (!localDirModel->isDir(curLeft)) { + localDirModel->remove(curLeft); + } + } } void TabDeckStorage::actOpenRemoteDeck()