File indexing completed on 2024-04-21 04:36:02

0001 /* This file is part of KDevelop
0002 
0003    Copyright 2017 Anton Anikin <anton.anikin@htower.ru>
0004 
0005    This program is free software; you can redistribute it and/or
0006    modify it under the terms of the GNU General Public
0007    License as published by the Free Software Foundation; either
0008    version 2 of the License, or (at your option) any later version.
0009 
0010    This program is distributed in the hope that it will be useful,
0011    but WITHOUT ANY WARRANTY; without even the implied warranty of
0012    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
0013    General Public License for more details.
0014 
0015    You should have received a copy of the GNU General Public License
0016    along with this program; see the file COPYING.  If not, write to
0017    the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
0018    Boston, MA 02110-1301, USA.
0019 */
0020 
0021 #pragma once
0022 
0023 #include <shell/problemmodel.h>
0024 
0025 namespace KDevelop
0026 {
0027     class IProject;
0028 }
0029 
0030 namespace verapp
0031 {
0032 
0033 class Plugin;
0034 
0035 class ProblemModel : public KDevelop::ProblemModel
0036 {
0037 public:
0038     explicit ProblemModel(Plugin* plugin);
0039     ~ProblemModel() override;
0040 
0041     KDevelop::IProject* project() const;
0042 
0043     void addProblems(const QVector<KDevelop::IProblem::Ptr>& problems);
0044 
0045     void setProblems();
0046     using KDevelop::ProblemModel::setProblems;
0047 
0048     void reset();
0049     void reset(KDevelop::IProject* project, const QString& path);
0050 
0051     void show();
0052 
0053     void forceFullUpdate() override;
0054 
0055 private:
0056     Plugin* m_plugin;
0057 
0058     KDevelop::IProject* m_project;
0059     QString m_path;
0060 
0061     QVector<KDevelop::IProblem::Ptr> m_problems;
0062 };
0063 
0064 }