Can now hide and show results based on cpp flags.
This commit is contained in:
parent
592ff8ba3c
commit
856b3cd949
|
@ -0,0 +1,16 @@
|
||||||
|
#ifndef COMMON_H
|
||||||
|
#define COMMON_H
|
||||||
|
|
||||||
|
|
||||||
|
typedef enum
|
||||||
|
{
|
||||||
|
SHOW_ALL,
|
||||||
|
SHOW_STYLE,
|
||||||
|
SHOW_SECURITY,
|
||||||
|
SHOW_UNUSED,
|
||||||
|
SHOW_ERRORS,
|
||||||
|
SHOW_NONE
|
||||||
|
}
|
||||||
|
ShowTypes;
|
||||||
|
|
||||||
|
#endif
|
|
@ -73,6 +73,13 @@ MainWindow::MainWindow() :
|
||||||
connect(&mActionCheckDirectory, SIGNAL(triggered()), this, SLOT(CheckDirectory()));
|
connect(&mActionCheckDirectory, SIGNAL(triggered()), this, SLOT(CheckDirectory()));
|
||||||
connect(&mActionSettings, SIGNAL(triggered()), this, SLOT(ProgramSettings()));
|
connect(&mActionSettings, SIGNAL(triggered()), this, SLOT(ProgramSettings()));
|
||||||
connect(&mActionClearResults, SIGNAL(triggered()), this, SLOT(ClearResults()));
|
connect(&mActionClearResults, SIGNAL(triggered()), this, SLOT(ClearResults()));
|
||||||
|
|
||||||
|
connect(&mActionShowAll, SIGNAL(toggled(bool)), this, SLOT(ShowAll(bool)));
|
||||||
|
connect(&mActionShowSecurity, SIGNAL(toggled(bool)), this, SLOT(ShowSecurity(bool)));
|
||||||
|
connect(&mActionShowStyle, SIGNAL(toggled(bool)), this, SLOT(ShowStyle(bool)));
|
||||||
|
connect(&mActionShowUnused, SIGNAL(toggled(bool)), this, SLOT(ShowUnused(bool)));
|
||||||
|
connect(&mActionShowErrors, SIGNAL(toggled(bool)), this, SLOT(ShowErrors(bool)));
|
||||||
|
|
||||||
connect(&mActionReCheck, SIGNAL(triggered()), this, SLOT(ReCheck()));
|
connect(&mActionReCheck, SIGNAL(triggered()), this, SLOT(ReCheck()));
|
||||||
connect(&mThread, SIGNAL(Done()), this, SLOT(CheckDone()));
|
connect(&mThread, SIGNAL(Done()), this, SLOT(CheckDone()));
|
||||||
LoadSettings();
|
LoadSettings();
|
||||||
|
@ -101,6 +108,12 @@ void MainWindow::LoadSettings()
|
||||||
mActionShowStyle.setChecked(mSettings.value(tr("Show style"), true).toBool());
|
mActionShowStyle.setChecked(mSettings.value(tr("Show style"), true).toBool());
|
||||||
mActionShowUnused.setChecked(mSettings.value(tr("Show unused"), true).toBool());
|
mActionShowUnused.setChecked(mSettings.value(tr("Show unused"), true).toBool());
|
||||||
mActionShowErrors.setChecked(mSettings.value(tr("Show errors"), true).toBool());
|
mActionShowErrors.setChecked(mSettings.value(tr("Show errors"), true).toBool());
|
||||||
|
|
||||||
|
mResults.ShowResults(SHOW_ALL,mActionShowAll.isChecked());
|
||||||
|
mResults.ShowResults(SHOW_ERRORS,mActionShowErrors.isChecked());
|
||||||
|
mResults.ShowResults(SHOW_SECURITY,mActionShowSecurity.isChecked());
|
||||||
|
mResults.ShowResults(SHOW_STYLE,mActionShowStyle.isChecked());
|
||||||
|
mResults.ShowResults(SHOW_UNUSED,mActionShowUnused.isChecked());
|
||||||
}
|
}
|
||||||
|
|
||||||
void MainWindow::SaveSettings()
|
void MainWindow::SaveSettings()
|
||||||
|
@ -254,3 +267,28 @@ void MainWindow::EnableCheckButtons(bool enable)
|
||||||
mActionCheckDirectory.setEnabled(enable);
|
mActionCheckDirectory.setEnabled(enable);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
void MainWindow::ShowAll(bool checked)
|
||||||
|
{
|
||||||
|
mResults.ShowResults(SHOW_ALL,checked);
|
||||||
|
}
|
||||||
|
|
||||||
|
void MainWindow::ShowSecurity(bool checked)
|
||||||
|
{
|
||||||
|
mResults.ShowResults(SHOW_SECURITY,checked);
|
||||||
|
}
|
||||||
|
|
||||||
|
void MainWindow::ShowStyle(bool checked)
|
||||||
|
{
|
||||||
|
mResults.ShowResults(SHOW_STYLE,checked);
|
||||||
|
}
|
||||||
|
|
||||||
|
void MainWindow::ShowUnused(bool checked)
|
||||||
|
{
|
||||||
|
mResults.ShowResults(SHOW_UNUSED,checked);
|
||||||
|
}
|
||||||
|
|
||||||
|
void MainWindow::ShowErrors(bool checked)
|
||||||
|
{
|
||||||
|
mResults.ShowResults(SHOW_ERRORS,checked);
|
||||||
|
}
|
||||||
|
|
|
@ -52,6 +52,12 @@ public slots:
|
||||||
void ReCheck();
|
void ReCheck();
|
||||||
void ClearResults();
|
void ClearResults();
|
||||||
|
|
||||||
|
void ShowAll(bool checked);
|
||||||
|
void ShowSecurity(bool checked);
|
||||||
|
void ShowStyle(bool checked);
|
||||||
|
void ShowUnused(bool checked);
|
||||||
|
void ShowErrors(bool checked);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @brief Slot for check directory menu item
|
* @brief Slot for check directory menu item
|
||||||
*
|
*
|
||||||
|
|
|
@ -63,20 +63,32 @@ void ResultsTree::AddErrorItem(const QString &file,
|
||||||
if (realfile.isEmpty())
|
if (realfile.isEmpty())
|
||||||
realfile = "Undefined file";
|
realfile = "Undefined file";
|
||||||
|
|
||||||
QStandardItem *fileitem = FindFileItem(realfile);
|
ErrorItem item;
|
||||||
|
item.file = realfile;
|
||||||
|
item.type = SeverityToShowType(severity);
|
||||||
|
item.message = message;
|
||||||
|
item.files = files;
|
||||||
|
item.lines = lines;
|
||||||
|
mItems<<item;
|
||||||
|
|
||||||
if (!fileitem)
|
if (mShowTypes[item.type])
|
||||||
{
|
{
|
||||||
//qDebug()<<"No previous error for file"<<realfile;
|
AddItem(mItems.size()-1);
|
||||||
fileitem = CreateItem(realfile);
|
|
||||||
mModel.appendRow(fileitem);
|
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
QList<QStandardItem*> list;
|
ShowTypes ResultsTree::SeverityToShowType(const QString &severity)
|
||||||
list << CreateItem(severity);
|
{
|
||||||
list << CreateItem(QString("%1").arg(lines[0]));
|
if (severity == "all")
|
||||||
list << CreateItem(message);
|
return SHOW_ALL;
|
||||||
fileitem->appendRow(list);
|
if (severity == "error")
|
||||||
|
return SHOW_ERRORS;
|
||||||
|
if (severity == "style")
|
||||||
|
return SHOW_STYLE;
|
||||||
|
if (severity == "security")
|
||||||
|
return SHOW_SECURITY;
|
||||||
|
|
||||||
|
return SHOW_NONE;
|
||||||
}
|
}
|
||||||
|
|
||||||
QStandardItem *ResultsTree::FindFileItem(const QString &name)
|
QStandardItem *ResultsTree::FindFileItem(const QString &name)
|
||||||
|
@ -90,6 +102,7 @@ QStandardItem *ResultsTree::FindFileItem(const QString &name)
|
||||||
void ResultsTree::Clear()
|
void ResultsTree::Clear()
|
||||||
{
|
{
|
||||||
mModel.removeRows(0, mModel.rowCount());
|
mModel.removeRows(0, mModel.rowCount());
|
||||||
|
mItems.clear();
|
||||||
}
|
}
|
||||||
|
|
||||||
void ResultsTree::LoadSettings()
|
void ResultsTree::LoadSettings()
|
||||||
|
@ -110,3 +123,71 @@ void ResultsTree::SaveSettings()
|
||||||
mSettings.setValue(temp, columnWidth(i));
|
mSettings.setValue(temp, columnWidth(i));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void ResultsTree::ShowResults(ShowTypes type, bool show)
|
||||||
|
{
|
||||||
|
if (type != SHOW_NONE)
|
||||||
|
{
|
||||||
|
if (mShowTypes[type] != show)
|
||||||
|
{
|
||||||
|
mShowTypes[type] = show;
|
||||||
|
RefreshTree();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
void ResultsTree::RefreshTree()
|
||||||
|
{
|
||||||
|
mModel.removeRows(0, mModel.rowCount());
|
||||||
|
for (int i=0;i<mItems.size();i++)
|
||||||
|
{
|
||||||
|
if (mShowTypes[mItems[i].type])
|
||||||
|
{
|
||||||
|
AddItem(i);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
QString ResultsTree::ShowTypeToString(ShowTypes type)
|
||||||
|
{
|
||||||
|
switch (type)
|
||||||
|
{
|
||||||
|
case SHOW_ALL:
|
||||||
|
return "all";
|
||||||
|
case SHOW_ERRORS:
|
||||||
|
return "error";
|
||||||
|
case SHOW_STYLE:
|
||||||
|
return "style";
|
||||||
|
case SHOW_SECURITY:
|
||||||
|
return "security";
|
||||||
|
case SHOW_UNUSED:
|
||||||
|
return "unused";
|
||||||
|
case SHOW_NONE:
|
||||||
|
return "none";
|
||||||
|
}
|
||||||
|
|
||||||
|
return "";
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
void ResultsTree::AddItem(int index)
|
||||||
|
{
|
||||||
|
if (index >= 0 && index < mItems.size())
|
||||||
|
{
|
||||||
|
QStandardItem *fileitem = FindFileItem(mItems[index].file);
|
||||||
|
if (!fileitem)
|
||||||
|
{
|
||||||
|
//qDebug()<<"No previous error for file"<<realfile;
|
||||||
|
fileitem = CreateItem(mItems[index].file);
|
||||||
|
mModel.appendRow(fileitem);
|
||||||
|
}
|
||||||
|
|
||||||
|
QList<QStandardItem*> list;
|
||||||
|
list << CreateItem(ShowTypeToString(mItems[index].type));
|
||||||
|
list << CreateItem(QString("%1").arg(mItems[index].lines[0]));
|
||||||
|
list << CreateItem(mItems[index].message);
|
||||||
|
fileitem->appendRow(list);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
|
@ -25,7 +25,7 @@
|
||||||
#include <QStandardItemModel>
|
#include <QStandardItemModel>
|
||||||
#include <QStandardItem>
|
#include <QStandardItem>
|
||||||
#include <QSettings>
|
#include <QSettings>
|
||||||
|
#include "common.h"
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @brief Cppcheck's results are shown in this tree
|
* @brief Cppcheck's results are shown in this tree
|
||||||
|
@ -55,7 +55,23 @@ public:
|
||||||
*
|
*
|
||||||
*/
|
*/
|
||||||
void Clear();
|
void Clear();
|
||||||
|
|
||||||
|
void ShowResults(ShowTypes type, bool show);
|
||||||
protected:
|
protected:
|
||||||
|
void AddItem(int index);
|
||||||
|
void RefreshTree();
|
||||||
|
ShowTypes SeverityToShowType(const QString &severity);
|
||||||
|
QString ShowTypeToString(ShowTypes type);
|
||||||
|
|
||||||
|
typedef struct {
|
||||||
|
QString file;
|
||||||
|
ShowTypes type;
|
||||||
|
QString message;
|
||||||
|
QStringList files;
|
||||||
|
QList<int> lines;
|
||||||
|
}ErrorItem;
|
||||||
|
|
||||||
|
QList<ErrorItem> mItems;
|
||||||
/**
|
/**
|
||||||
* @brief Load all settings
|
* @brief Load all settings
|
||||||
* Colum widths
|
* Colum widths
|
||||||
|
@ -95,6 +111,8 @@ protected:
|
||||||
*
|
*
|
||||||
*/
|
*/
|
||||||
QSettings &mSettings;
|
QSettings &mSettings;
|
||||||
|
|
||||||
|
bool mShowTypes[SHOW_NONE];
|
||||||
private:
|
private:
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
|
@ -63,3 +63,8 @@ void ResultsView::Error(const QString &file,
|
||||||
{
|
{
|
||||||
mTree->AddErrorItem(file, severity, message, files, lines);
|
mTree->AddErrorItem(file, severity, message, files, lines);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void ResultsView::ShowResults(ShowTypes type, bool show)
|
||||||
|
{
|
||||||
|
mTree->ShowResults(type,show);
|
||||||
|
}
|
||||||
|
|
|
@ -26,6 +26,8 @@
|
||||||
#include <QProgressBar>
|
#include <QProgressBar>
|
||||||
#include "../src/errorlogger.h"
|
#include "../src/errorlogger.h"
|
||||||
#include "resultstree.h"
|
#include "resultstree.h"
|
||||||
|
#include "common.h"
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @brief Widget to show cppcheck progressbar and result
|
* @brief Widget to show cppcheck progressbar and result
|
||||||
|
@ -35,9 +37,12 @@ class ResultsView : public QWidget
|
||||||
{
|
{
|
||||||
Q_OBJECT
|
Q_OBJECT
|
||||||
public:
|
public:
|
||||||
|
|
||||||
ResultsView(QSettings &settings);
|
ResultsView(QSettings &settings);
|
||||||
virtual ~ResultsView();
|
virtual ~ResultsView();
|
||||||
|
|
||||||
|
void ShowResults(ShowTypes type, bool show);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @brief Clear results
|
* @brief Clear results
|
||||||
*
|
*
|
||||||
|
|
Loading…
Reference in New Issue