Skip to content

Commit 7044b94

Browse files
committed
Context menu improvements
1 parent 515c73e commit 7044b94

1 file changed

Lines changed: 25 additions & 9 deletions

File tree

gui/resultstree.cpp

Lines changed: 25 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -747,21 +747,35 @@ void ResultsTree::contextMenuEvent(QContextMenuEvent * e)
747747
menu.addSeparator();
748748
}
749749

750+
int selectedFiles = 0;
751+
int selectedResults = 0;
752+
753+
for (auto index : mSelectionModel->selectedRows()) {
754+
auto *item = mModel.itemFromIndex(index);
755+
if (!item->parent())
756+
selectedFiles++;
757+
else if (!item->parent()->parent())
758+
selectedResults++;
759+
}
760+
750761
//Create an action for the application
751-
auto *recheckAction = new QAction(tr("Recheck"), &menu);
762+
auto *recheckAction = new QAction(tr("Recheck %1 file(s)").arg(selectedFiles), &menu);
752763
auto *copyAction = new QAction(tr("Copy"), &menu);
753-
auto *hide = new QAction(tr("Hide"), &menu);
764+
auto *hide = new QAction(tr("Hide %1 result(s)").arg(selectedResults), &menu);
754765
auto *hideallid = new QAction(tr("Hide all with id"), &menu);
755766
auto *opencontainingfolder = new QAction(tr("Open containing folder"), &menu);
756767

757-
if (multipleSelection) {
768+
if (selectedFiles == 0 || mThread->isChecking())
769+
recheckAction->setDisabled(true);
770+
771+
if (selectedResults == 0)
772+
hide->setDisabled(true);
773+
774+
if (selectedResults == 0 || multipleSelection)
758775
hideallid->setDisabled(true);
776+
777+
if (multipleSelection)
759778
opencontainingfolder->setDisabled(true);
760-
}
761-
if (mThread->isChecking())
762-
recheckAction->setDisabled(true);
763-
else
764-
recheckAction->setDisabled(false);
765779

766780
menu.addAction(recheckAction);
767781
menu.addSeparator();
@@ -774,7 +788,9 @@ void ResultsTree::contextMenuEvent(QContextMenuEvent * e)
774788
{
775789
QVariantMap itemdata = mContextItem->data().toMap();
776790
const QString messageId = itemdata[ERRORID].toString();
777-
suppress->setEnabled(!ErrorLogger::isCriticalErrorId(messageId.toStdString()));
791+
792+
if (selectedResults == 0 || ErrorLogger::isCriticalErrorId(messageId.toStdString()))
793+
suppress->setDisabled(true);
778794
}
779795
menu.addAction(suppress);
780796
connect(suppress, &QAction::triggered, this, &ResultsTree::suppressSelectedIds);

0 commit comments

Comments
 (0)