File indexing completed on 2024-04-14 04:31:19

0001 /* This file is part of KDevelop
0002    Copyright 2017 Anton Anikin <anton@anikin.xyz>
0003 
0004    This program is free software; you can redistribute it and/or
0005    modify it under the terms of the GNU General Public
0006    License as published by the Free Software Foundation; either
0007    version 2 of the License, or (at your option) any later version.
0008 
0009    This program is distributed in the hope that it will be useful,
0010    but WITHOUT ANY WARRANTY; without even the implied warranty of
0011    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
0012    General Public License for more details.
0013 
0014    You should have received a copy of the GNU General Public License
0015    along with this program; see the file COPYING. If not, write to
0016    the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
0017    Boston, MA 02110-1301, USA.
0018 */
0019 
0020 #pragma once
0021 
0022 #include <KConfigSkeleton>
0023 
0024 namespace Valgrind
0025 {
0026 
0027 class Config : public KConfigSkeleton
0028 {
0029     Q_OBJECT
0030 
0031 public:
0032     ~Config() override;
0033 
0034     void setConfigGroup(const KConfigGroup& group);
0035 
0036     ItemInt* addCmdItemInt(const QString& name, int& reference, int defaultValue, const QString& cmdName);
0037     ItemBool* addCmdItemBool(const QString& name, bool& reference, bool defaultValue, const QString& cmdName);
0038     ItemDouble* addCmdItemDouble(const QString& name, double& reference, double defaultValue, const QString& cmdName);
0039     ItemString* addCmdItemString(const QString& name, QString& reference, const QString& defaultValue, const QString& cmdName);
0040 
0041     QStringList cmdArgs();
0042 
0043 protected:
0044     explicit Config(const QString& group);
0045 
0046 private:
0047     QString m_group;
0048     QString m_extraArgs;
0049 
0050     class CmdItem;
0051     QList<CmdItem*> m_cmdItems;
0052 };
0053 
0054 }