File indexing completed on 2024-04-21 04:35:59

0001 /* This file is part of KDevelop
0002    Copyright 2018 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 <interfaces/launchconfigurationpage.h>
0023 
0024 class KConfigDialogManager;
0025 
0026 namespace Valgrind
0027 {
0028 
0029 class Config;
0030 
0031 class ConfigPage : public KDevelop::LaunchConfigurationPage
0032 {
0033     Q_OBJECT
0034 
0035 public:
0036     ~ConfigPage() override;
0037 
0038     QString title() const override final;
0039     QIcon icon() const override final;
0040 
0041     void loadFromConfiguration(const KConfigGroup& cfg, KDevelop::IProject* project = nullptr) override final;
0042     void saveToConfiguration(KConfigGroup cfg, KDevelop::IProject* project = nullptr) const override final;
0043 
0044 protected:
0045     explicit ConfigPage(QString title, QWidget* parent = nullptr);
0046 
0047     void init(Config* config);
0048 
0049     virtual void check();
0050 
0051 private:
0052     QString m_title;
0053 
0054     QScopedPointer<Config> m_config;
0055     QScopedPointer<KConfigDialogManager> m_manager;
0056 
0057 };
0058 
0059 }