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