1 /* 2 problem.h 3 4 This file is part of GammaRay, the Qt application inspection and 5 manipulation tool. 6 7 Copyright (C) 2018-2021 Klarälvdalens Datakonsult AB, a KDAB Group company, info@kdab.com 8 Author: Anton Kreuzkamp <anton.kreuzkamp@kdab.com> 9 10 Licensees holding valid commercial KDAB GammaRay licenses may use this file in 11 accordance with GammaRay Commercial License Agreement provided with the Software. 12 13 Contact info@kdab.com if any conditions of this licensing are not clear to you. 14 15 This program is free software; you can redistribute it and/or modify 16 it under the terms of the GNU General Public License as published by 17 the Free Software Foundation, either version 2 of the License, or 18 (at your option) any later version. 19 20 This program is distributed in the hope that it will be useful, 21 but WITHOUT ANY WARRANTY; without even the implied warranty of 22 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 23 GNU General Public License for more details. 24 25 You should have received a copy of the GNU General Public License 26 along with this program. If not, see <http://www.gnu.org/licenses/>. 27 */ 28 29 #ifndef GAMMARAY_PROBLEM_H 30 #define GAMMARAY_PROBLEM_H 31 32 // Own 33 #include "objectid.h" 34 #include "common/sourcelocation.h" 35 36 // Qt 37 #include <QAbstractItemModel> 38 39 // Std 40 #include <memory> 41 #include <vector> 42 43 namespace GammaRay { 44 45 struct Problem { 46 enum Severity { 47 Info = 1, 48 Warning, 49 Error 50 }; 51 enum FindingCategory { 52 Unknown, 53 Live, ///< is added and removed as the problem arises/vanishes by the reporting tool 54 Scan, ///< is added in response to a scan request and removed by the problem collector in advance to the next scan 55 Permanent ///< is valid during the whole application lifetime and not meant to be removed at all 56 }; 57 ProblemProblem58 Problem() 59 : severity(Error) 60 , findingCategory(Unknown) 61 {} 62 63 Severity severity; 64 ObjectId object; 65 QString description; 66 QVector<SourceLocation> locations; 67 QString reportingTool; ///< Tool which reported the issue 68 QString problemId; ///< tool-specific unique id for the problem 69 FindingCategory findingCategory; 70 71 bool operator==(const Problem &other) const 72 { 73 return problemId == other.problemId; 74 } 75 }; 76 77 } 78 79 Q_DECLARE_METATYPE(GammaRay::Problem::Severity) 80 81 #endif // GAMMARAY_PROBLEM_H 82 83