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

0001 /* This file is part of KDevelop
0002 
0003    Copyright 2016 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 #ifndef VERAPP_PARAMETERS_H
0022 #define VERAPP_PARAMETERS_H
0023 
0024 #include "rules.h"
0025 
0026 #include <util/path.h>
0027 
0028 namespace KDevelop
0029 {
0030 class IProject;
0031 }
0032 
0033 namespace verapp
0034 {
0035 
0036 namespace defaults
0037 {
0038 
0039 QString executablePath();
0040 bool hideOutputView();
0041 
0042 bool isRuleEnabled(rules::Type type);
0043 
0044 }
0045 
0046 class Parameters
0047 {
0048 
0049 public:
0050     explicit Parameters(KDevelop::IProject* project = nullptr);
0051 
0052     QStringList commandLine() const;
0053 
0054     QString buildRunScript() const;
0055 
0056     // global settings
0057     QString executablePath;
0058     bool hideOutputView;
0059 
0060     // project settings
0061     bool isRuleEnabled(rules::Type type) const;
0062     void setRuleEnabled(rules::Type type, bool value);
0063 
0064     QString extraParameters;
0065 
0066     QString checkPath;
0067 
0068 private:
0069     QString applyPlaceholders(const QString& text) const;
0070 
0071     KDevelop::IProject* m_project;
0072 
0073     KDevelop::Path m_projectRootPath;
0074     KDevelop::Path m_projectBuildPath;
0075 
0076     bool m_ruleEnabled[rules::Type::COUNT];
0077 };
0078 
0079 }
0080 #endif