Skip to content

Commit

Permalink
Merged gui branch to master.
Browse files Browse the repository at this point in the history
  • Loading branch information
vesap committed Mar 22, 2009
1 parent c6e8d61 commit 0953995
Show file tree
Hide file tree
Showing 7 changed files with 221 additions and 12 deletions.
16 changes: 16 additions & 0 deletions gui/common.h
Original file line number Diff line number Diff line change
@@ -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
69 changes: 69 additions & 0 deletions gui/mainwindow.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -34,6 +34,11 @@ MainWindow::MainWindow() :
mActionReCheck(tr("Recheck files"), this),
mActionCheckDirectory(tr("Check &directory"), this),
mActionSettings(tr("&Settings"), this),
mActionShowAll(tr("Show &more errors"), this),
mActionShowSecurity(tr("Show &security errors"), this),
mActionShowStyle(tr("Show s&tyle errors"), this),
mActionShowUnused(tr("Show errors on &unused functions"), this),
mActionShowErrors(tr("Show &common errors"), this),
mResults(mSettings)
{
QMenu *menu = menuBar()->addMenu(tr("&File"));
Expand All @@ -44,6 +49,19 @@ MainWindow::MainWindow() :
menu->addSeparator();
menu->addAction(&mActionExit);

QMenu *menuview = menuBar()->addMenu(tr("&View"));
mActionShowAll.setCheckable(true);
mActionShowSecurity.setCheckable(true);
mActionShowStyle.setCheckable(true);
mActionShowUnused.setCheckable(true);
mActionShowErrors.setCheckable(true);

menuview->addAction(&mActionShowAll);
menuview->addAction(&mActionShowSecurity);
menuview->addAction(&mActionShowStyle);
menuview->addAction(&mActionShowUnused);
menuview->addAction(&mActionShowErrors);

QMenu *menuprogram = menuBar()->addMenu(tr("&Program"));
menuprogram->addAction(&mActionSettings);

Expand All @@ -55,6 +73,13 @@ MainWindow::MainWindow() :
connect(&mActionCheckDirectory, SIGNAL(triggered()), this, SLOT(CheckDirectory()));
connect(&mActionSettings, SIGNAL(triggered()), this, SLOT(ProgramSettings()));
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(&mThread, SIGNAL(Done()), this, SLOT(CheckDone()));
LoadSettings();
Expand All @@ -77,13 +102,31 @@ void MainWindow::LoadSettings()
resize(mSettings.value(tr("Window width"), 800).toInt(),
mSettings.value(tr("Window height"), 600).toInt());
}

mActionShowAll.setChecked(mSettings.value(tr("Show all"), true).toBool());
mActionShowSecurity.setChecked(mSettings.value(tr("Show security"), true).toBool());
mActionShowStyle.setChecked(mSettings.value(tr("Show style"), true).toBool());
mActionShowUnused.setChecked(mSettings.value(tr("Show unused"), 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()
{
mSettings.setValue(tr("Window width"), size().width());
mSettings.setValue(tr("Window height"), size().height());
mSettings.setValue(tr("Window maximized"), isMaximized());

mSettings.setValue(tr("Show all"), mActionShowAll.isChecked());
mSettings.setValue(tr("Show security"), mActionShowSecurity.isChecked());
mSettings.setValue(tr("Show style"), mActionShowStyle.isChecked());
mSettings.setValue(tr("Show unused"), mActionShowUnused.isChecked());
mSettings.setValue(tr("Show errors"), mActionShowErrors.isChecked());
}


Expand Down Expand Up @@ -224,3 +267,29 @@ void MainWindow::EnableCheckButtons(bool 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);
}

13 changes: 13 additions & 0 deletions gui/mainwindow.h
Original file line number Diff line number Diff line change
Expand Up @@ -52,6 +52,12 @@ public slots:
void ReCheck();
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
*
Expand Down Expand Up @@ -130,6 +136,13 @@ protected slots:
*/
QAction mActionSettings;

QAction mActionShowAll;
QAction mActionShowSecurity;
QAction mActionShowStyle;
QAction mActionShowUnused;
QAction mActionShowErrors;



/**
* @brief Results for checking
Expand Down
104 changes: 93 additions & 11 deletions gui/resultstree.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -63,20 +63,33 @@ void ResultsTree::AddErrorItem(const QString &file,
if (realfile.isEmpty())
realfile = "Undefined file";

QStandardItem *fileitem = FindFileItem(realfile);

if (!fileitem)
ErrorItem item;
item.file = realfile;
item.type = SeverityToShowType(severity);
item.message = message;
item.files = files;
item.lines = lines;
mItems << item;

if (mShowTypes[item.type])
{
//qDebug()<<"No previous error for file"<<realfile;
fileitem = CreateItem(realfile);
mModel.appendRow(fileitem);
AddItem(mItems.size() - 1);
}
}

QList<QStandardItem*> list;
list << CreateItem(severity);
list << CreateItem(QString("%1").arg(lines[0]));
list << CreateItem(message);
fileitem->appendRow(list);

ShowTypes ResultsTree::SeverityToShowType(const QString &severity)
{
if (severity == "all")
return SHOW_ALL;
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)
Expand All @@ -90,6 +103,7 @@ QStandardItem *ResultsTree::FindFileItem(const QString &name)
void ResultsTree::Clear()
{
mModel.removeRows(0, mModel.rowCount());
mItems.clear();
}

void ResultsTree::LoadSettings()
Expand All @@ -110,3 +124,71 @@ void ResultsTree::SaveSettings()
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);
}
}

21 changes: 20 additions & 1 deletion gui/resultstree.h
Original file line number Diff line number Diff line change
Expand Up @@ -25,7 +25,7 @@
#include <QStandardItemModel>
#include <QStandardItem>
#include <QSettings>

#include "common.h"

/**
* @brief Cppcheck's results are shown in this tree
Expand Down Expand Up @@ -55,7 +55,24 @@ class ResultsTree : public QTreeView
*
*/
void Clear();

void ShowResults(ShowTypes type, bool show);
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
* Colum widths
Expand Down Expand Up @@ -95,6 +112,8 @@ class ResultsTree : public QTreeView
*
*/
QSettings &mSettings;

bool mShowTypes[SHOW_NONE];
private:
};

Expand Down
5 changes: 5 additions & 0 deletions gui/resultsview.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -63,3 +63,8 @@ void ResultsView::Error(const QString &file,
{
mTree->AddErrorItem(file, severity, message, files, lines);
}

void ResultsView::ShowResults(ShowTypes type, bool show)
{
mTree->ShowResults(type, show);
}
5 changes: 5 additions & 0 deletions gui/resultsview.h
Original file line number Diff line number Diff line change
Expand Up @@ -26,6 +26,8 @@
#include <QProgressBar>
#include "../src/errorlogger.h"
#include "resultstree.h"
#include "common.h"


/**
* @brief Widget to show cppcheck progressbar and result
Expand All @@ -35,9 +37,12 @@ class ResultsView : public QWidget
{
Q_OBJECT
public:

ResultsView(QSettings &settings);
virtual ~ResultsView();

void ShowResults(ShowTypes type, bool show);

/**
* @brief Clear results
*
Expand Down

0 comments on commit 0953995

Please sign in to comment.