Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Fix #12423 (GUI: The Recheck option does not recheck the selected file) #6625

Merged
merged 3 commits into from
Jul 21, 2024
Merged
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
45 changes: 14 additions & 31 deletions gui/resultstree.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -840,12 +840,9 @@ void ResultsTree::contextMenuEvent(QContextMenuEvent * e)
//Create a new context menu
QMenu menu(this);

//Store all applications in a list
QList<QAction*> actions;

//Create a signal mapper so we don't have to store data to class
//member variables
auto *signalMapper = new QSignalMapper(this);
QSignalMapper signalMapper;

if (mContextItem && mApplications->getApplicationCount() > 0 && mContextItem->parent()) {
//Create an action for the application
Expand All @@ -857,19 +854,16 @@ void ResultsTree::contextMenuEvent(QContextMenuEvent * e)
if (multipleSelection)
start->setDisabled(true);

//Add it to our list so we can disconnect later on
actions << start;

//Add it to context menu
menu.addAction(start);

//Connect the signal to signal mapper
connect(start, SIGNAL(triggered()), signalMapper, SLOT(map()));
connect(start, &QAction::triggered, &signalMapper, QOverload<>::of(&QSignalMapper::map));

//Add a new mapping
signalMapper->setMapping(start, defaultApplicationIndex);
signalMapper.setMapping(start, defaultApplicationIndex);

connect(signalMapper, SIGNAL(mapped(int)),
connect(&signalMapper, SIGNAL(mapped(int)),
this, SLOT(context(int)));
}

Expand Down Expand Up @@ -914,11 +908,11 @@ void ResultsTree::contextMenuEvent(QContextMenuEvent * e)
menu.addSeparator();
menu.addAction(opencontainingfolder);

connect(recheckAction, SIGNAL(triggered()), this, SLOT(recheckAction()));
connect(copyAction, SIGNAL(triggered()), this, SLOT(copyAction()));
connect(hide, SIGNAL(triggered()), this, SLOT(hideResult()));
connect(hideallid, SIGNAL(triggered()), this, SLOT(hideAllIdResult()));
connect(opencontainingfolder, SIGNAL(triggered()), this, SLOT(openContainingFolder()));
connect(recheckAction, &QAction::triggered, this, &ResultsTree::recheckSelectedFiles);
connect(copyAction, &QAction::triggered, this, &ResultsTree::copy);
connect(hide, &QAction::triggered, this, &ResultsTree::hideResult);
connect(hideallid, &QAction::triggered, this, &ResultsTree::hideAllIdResult);
connect(opencontainingfolder, &QAction::triggered, this, &ResultsTree::openContainingFolder);

const ProjectFile *currentProject = ProjectFile::getActiveProject();
if (currentProject && !currentProject->getTags().isEmpty()) {
Expand Down Expand Up @@ -947,17 +941,6 @@ void ResultsTree::contextMenuEvent(QContextMenuEvent * e)
index = indexAt(e->pos());
if (index.isValid()) {
mContextItem = mModel.itemFromIndex(index);
if (mContextItem && mApplications->getApplicationCount() > 0 && mContextItem->parent()) {
//Disconnect all signals
for (const QAction* action : actions) {
disconnect(action, SIGNAL(triggered()), signalMapper, SLOT(map()));
}

disconnect(signalMapper, SIGNAL(mapped(int)),
this, SLOT(context(int)));
//And remove the signal mapper
delete signalMapper;
}
}
}
}
Expand Down Expand Up @@ -1129,8 +1112,8 @@ void ResultsTree::copy()
return;

QString text;
for (QModelIndex index : mSelectionModel->selectedRows()) {
QStandardItem *item = mModel.itemFromIndex(index);
for (const QModelIndex& index : mSelectionModel->selectedRows()) {
const QStandardItem *item = mModel.itemFromIndex(index);
if (!item->parent()) {
text += item->text() + '\n';
continue;
Expand All @@ -1141,10 +1124,10 @@ void ResultsTree::copy()
if (!data.contains("id"))
continue;
QString inconclusive = data[INCONCLUSIVE].toBool() ? ",inconclusive" : "";
text += '[' + data[FILENAME].toString() + ':' + QString::number(data[LINE].toInt())
+ "] ("
text += data[FILENAME].toString() + ':' + QString::number(data[LINE].toInt()) + ':' + QString::number(data[COLUMN].toInt())
+ ": "
+ QString::fromStdString(severityToString(ShowTypes::ShowTypeToSeverity((ShowTypes::ShowType)data[SEVERITY].toInt()))) + inconclusive
+ ") "
+ ": "
+ data[MESSAGE].toString()
+ " ["
+ data[ERRORID].toString()
Expand Down
Loading