Skip to content

Commit c6e8d61

Browse files
committed
Added recheck and clear results buttons.
1 parent f04bdcc commit c6e8d61

5 files changed

Lines changed: 57 additions & 18 deletions

File tree

gui/mainwindow.cpp

Lines changed: 31 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -30,13 +30,17 @@ MainWindow::MainWindow() :
3030
mSettings(tr("CppCheck"), tr("CppCheck-GUI")),
3131
mActionExit(tr("E&xit"), this),
3232
mActionCheckFiles(tr("&Check files(s)"), this),
33-
mActionCheckDirectory(tr("&Check directory"), this),
33+
mActionClearResults(tr("Clear &results"), this),
34+
mActionReCheck(tr("Recheck files"), this),
35+
mActionCheckDirectory(tr("Check &directory"), this),
3436
mActionSettings(tr("&Settings"), this),
3537
mResults(mSettings)
3638
{
3739
QMenu *menu = menuBar()->addMenu(tr("&File"));
3840
menu->addAction(&mActionCheckFiles);
3941
menu->addAction(&mActionCheckDirectory);
42+
menu->addAction(&mActionReCheck);
43+
menu->addAction(&mActionClearResults);
4044
menu->addSeparator();
4145
menu->addAction(&mActionExit);
4246

@@ -50,6 +54,8 @@ MainWindow::MainWindow() :
5054
connect(&mActionCheckFiles, SIGNAL(triggered()), this, SLOT(CheckFiles()));
5155
connect(&mActionCheckDirectory, SIGNAL(triggered()), this, SLOT(CheckDirectory()));
5256
connect(&mActionSettings, SIGNAL(triggered()), this, SLOT(ProgramSettings()));
57+
connect(&mActionClearResults, SIGNAL(triggered()), this, SLOT(ClearResults()));
58+
connect(&mActionReCheck, SIGNAL(triggered()), this, SLOT(ReCheck()));
5359
connect(&mThread, SIGNAL(Done()), this, SLOT(CheckDone()));
5460
LoadSettings();
5561
mThread.Initialize(&mResults);
@@ -102,8 +108,8 @@ void MainWindow::DoCheckFiles(QFileDialog::FileMode mode)
102108
mThread.ClearFiles();
103109
mThread.SetFiles(RemoveUnacceptedFiles(fileNames));
104110
mSettings.setValue(tr("Check path"), dialog.directory().absolutePath());
105-
mActionCheckFiles.setDisabled(true);
106-
mThread.Check(GetCppCheckSettings());
111+
EnableCheckButtons(false);
112+
mThread.Check(GetCppCheckSettings(), false);
107113
}
108114
}
109115

@@ -125,7 +131,7 @@ Settings MainWindow::GetCppCheckSettings()
125131
result._checkCodingStyle = true;
126132
result._errorsOnly = false;
127133
result._verbose = true;
128-
result._force = true;
134+
result._force = mSettings.value(tr("Check force"), 1).toBool();
129135
result._xml = false;
130136
result._unusedFunctions = true;
131137
result._security = true;
@@ -186,7 +192,7 @@ QStringList MainWindow::RemoveUnacceptedFiles(const QStringList &list)
186192

187193
void MainWindow::CheckDone()
188194
{
189-
mActionCheckFiles.setDisabled(false);
195+
EnableCheckButtons(true);
190196
}
191197

192198
void MainWindow::ProgramSettings()
@@ -198,3 +204,23 @@ void MainWindow::ProgramSettings()
198204
}
199205
}
200206

207+
208+
void MainWindow::ReCheck()
209+
{
210+
ClearResults();
211+
EnableCheckButtons(false);
212+
mThread.Check(GetCppCheckSettings(), true);
213+
}
214+
215+
void MainWindow::ClearResults()
216+
{
217+
mResults.Clear();
218+
}
219+
220+
void MainWindow::EnableCheckButtons(bool enable)
221+
{
222+
mActionCheckFiles.setEnabled(enable);
223+
mActionReCheck.setEnabled(enable);
224+
mActionCheckDirectory.setEnabled(enable);
225+
}
226+

gui/mainwindow.h

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -49,6 +49,8 @@ public slots:
4949
*
5050
*/
5151
void CheckFiles();
52+
void ReCheck();
53+
void ClearResults();
5254

5355
/**
5456
* @brief Slot for check directory menu item
@@ -66,6 +68,7 @@ protected slots:
6668
*/
6769
void CheckDone();
6870
protected:
71+
void EnableCheckButtons(bool enable);
6972
void DoCheckFiles(QFileDialog::FileMode mode);
7073
QStringList GetFilesRecursively(const QString &path);
7174
QStringList RemoveDuplicates(const QStringList &list);
@@ -102,6 +105,19 @@ protected slots:
102105
*/
103106
QAction mActionCheckFiles;
104107

108+
/**
109+
* @brief Menu action to clear results
110+
*
111+
*/
112+
QAction mActionClearResults;
113+
114+
/**
115+
* @brief Menu action to re check
116+
*
117+
*/
118+
QAction mActionReCheck;
119+
120+
105121
/**
106122
* @brief Menu action to check a directory
107123
*

gui/resultstree.cpp

Lines changed: 0 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -72,15 +72,11 @@ void ResultsTree::AddErrorItem(const QString &file,
7272
mModel.appendRow(fileitem);
7373
}
7474

75-
//qDebug() << "Adding error for file" << realfile << ". Message is" << message;
76-
7775
QList<QStandardItem*> list;
7876
list << CreateItem(severity);
7977
list << CreateItem(QString("%1").arg(lines[0]));
8078
list << CreateItem(message);
8179
fileitem->appendRow(list);
82-
83-
//qDebug()<<"\n";
8480
}
8581

8682
QStandardItem *ResultsTree::FindFileItem(const QString &name)

gui/threadhandler.cpp

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -33,22 +33,24 @@ ThreadHandler::~ThreadHandler()
3333

3434
void ThreadHandler::ClearFiles()
3535
{
36+
mLastFiles.clear();
3637
mResults.ClearFiles();
3738
}
3839

3940
void ThreadHandler::SetFiles(const QStringList &files)
4041
{
4142
mResults.SetFiles(files);
43+
mLastFiles = files;
4244
QString file;
43-
qDebug() << "Files to check:";
44-
foreach(file, files)
45-
{
46-
qDebug() << file;
47-
}
4845
}
4946

50-
void ThreadHandler::Check(Settings settings)
47+
void ThreadHandler::Check(Settings settings, bool recheck)
5148
{
49+
if (recheck && mRunningThreadCount == 0)
50+
{
51+
mResults.SetFiles(mLastFiles);
52+
}
53+
5254
if (mResults.GetFileCount() == 0 || mRunningThreadCount > 0 || settings._jobs <= 0)
5355
{
5456
qDebug() << "Can't start checking if there's no files to check or if check is in progress.";
@@ -126,8 +128,6 @@ void ThreadHandler::Stop()
126128
{
127129
mThreads[i]->terminate();
128130
}
129-
130-
mResults.ClearFiles();
131131
}
132132

133133
void ThreadHandler::Initialize(ResultsView *view)

gui/threadhandler.h

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -57,7 +57,7 @@ class ThreadHandler : public QObject
5757
*/
5858
void SetFiles(const QStringList &files);
5959

60-
void Check(Settings settings);
60+
void Check(Settings settings, bool recheck);
6161

6262

6363
signals:
@@ -66,6 +66,7 @@ protected slots:
6666
void Stop();
6767
void ThreadDone();
6868
protected:
69+
QStringList mLastFiles;
6970
void RemoveThreads();
7071
ThreadResult mResults;
7172
QList<CheckThread *> mThreads;

0 commit comments

Comments
 (0)