diff --git a/gui/checkstatistics.cpp b/gui/checkstatistics.cpp
new file mode 100644
index 000000000..deafc6aa0
--- /dev/null
+++ b/gui/checkstatistics.cpp
@@ -0,0 +1,83 @@
+/*
+ * Cppcheck - A tool for static C/C++ code analysis
+ * Copyright (C) 2007-2010 Daniel Marjamäki and Cppcheck team.
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see .
+ */
+
+#include
+#include "common.h"
+#include "checkstatistics.h"
+
+CheckStatistics::CheckStatistics(QObject *parent)
+ : QObject(parent)
+{
+ Clear();
+}
+
+void CheckStatistics::AddItem(ShowTypes type)
+{
+ switch (type)
+ {
+ case SHOW_STYLE:
+ mStyle++;
+ break;
+ case SHOW_WARNINGS:
+ mWarning++;
+ break;
+ case SHOW_PERFORMANCE:
+ mPerformance++;
+ break;
+ case SHOW_ERRORS:
+ mError++;
+ break;
+ case SHOW_NONE:
+ default:
+ qDebug() << "Unknown error type - not added to statistics.";
+ break;
+ }
+}
+
+void CheckStatistics::Clear()
+{
+ mStyle = 0;
+ mWarning = 0;
+ mPerformance = 0;
+ mError = 0;
+}
+
+unsigned CheckStatistics::GetCount(ShowTypes type) const
+{
+ unsigned count = 0;
+ switch (type)
+ {
+ case SHOW_STYLE:
+ count = mStyle;
+ break;
+ case SHOW_WARNINGS:
+ count = mWarning;
+ break;
+ case SHOW_PERFORMANCE:
+ count = mPerformance;
+ break;
+ case SHOW_ERRORS:
+ count = mError;
+ break;
+ case SHOW_NONE:
+ default:
+ qDebug() << "Unknown error type - returning zero statistices.";
+ break;
+ }
+ return count;
+}
diff --git a/gui/checkstatistics.h b/gui/checkstatistics.h
new file mode 100644
index 000000000..6dcbcae31
--- /dev/null
+++ b/gui/checkstatistics.h
@@ -0,0 +1,66 @@
+/*
+ * Cppcheck - A tool for static C/C++ code analysis
+ * Copyright (C) 2007-2010 Daniel Marjamäki and Cppcheck team.
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see .
+ */
+
+#ifndef CHECKSTATISTICS_H
+#define CHECKSTATISTICS_H
+
+#include
+#include "common.h"
+
+/// @addtogroup GUI
+/// @{
+
+/**
+ * A class for check statistics.
+ */
+class CheckStatistics : public QObject
+{
+public:
+ CheckStatistics(QObject *parent = NULL);
+
+ /**
+ * @brief Add new checked item to statistics.
+ *
+ * @param type Type of the item to add.
+ */
+ void AddItem(ShowTypes type);
+
+ /**
+ * @brief Clear the statistics.
+ *
+ */
+ void Clear();
+
+ /**
+ * @brief Return statistics for given type.
+ *
+ * @param type Type for which the statistics are returned.
+ * @return Number of items of given type.
+ */
+ unsigned GetCount(ShowTypes type) const;
+
+private:
+ unsigned mStyle;
+ unsigned mWarning;
+ unsigned mPerformance;
+ unsigned mError;
+};
+
+/// @}
+
+#endif // CHECKSTATISTICS_H