File indexing completed on 2024-05-05 16:45:14
0001 /* 0002 SPDX-FileCopyrightText: 2017 Anton Anikin <anton.anikin@htower.ru> 0003 0004 SPDX-License-Identifier: GPL-2.0-or-later 0005 */ 0006 0007 #pragma once 0008 0009 #include <shell/problemmodel.h> 0010 0011 namespace KDevelop 0012 { 0013 class IProject; 0014 } 0015 0016 namespace cppcheck 0017 { 0018 0019 class Plugin; 0020 0021 class ProblemModel : public KDevelop::ProblemModel 0022 { 0023 Q_OBJECT 0024 public: 0025 explicit ProblemModel(Plugin* plugin); 0026 ~ProblemModel() override; 0027 0028 KDevelop::IProject* project() const; 0029 0030 void addProblems(const QVector<KDevelop::IProblem::Ptr>& problems); 0031 0032 void setProblems(); 0033 0034 void reset(); 0035 void reset(KDevelop::IProject* project, const QString& path); 0036 0037 void show(); 0038 0039 void forceFullUpdate() override; 0040 0041 private: 0042 void fixProblemFinalLocation(KDevelop::IProblem::Ptr problem); 0043 bool problemExists(KDevelop::IProblem::Ptr newProblem); 0044 void setMessage(const QString& message); 0045 0046 using KDevelop::ProblemModel::setProblems; 0047 0048 Plugin* m_plugin; 0049 0050 KDevelop::IProject* m_project; 0051 0052 QString m_path; 0053 KDevelop::DocumentRange m_pathLocation; 0054 0055 QVector<KDevelop::IProblem::Ptr> m_problems; 0056 }; 0057 0058 }