File indexing completed on 2024-05-12 04:39:38
0001 /* 0002 SPDX-FileCopyrightText: 2014 Sergey Kalinichev <kalinichev.so.0@gmail.com> 0003 0004 SPDX-License-Identifier: GPL-2.0-only OR GPL-3.0-only OR LicenseRef-KDE-Accepted-GPL 0005 */ 0006 0007 #ifndef COMPILERSWIDGET_H 0008 #define COMPILERSWIDGET_H 0009 0010 #include <QVector> 0011 #include <QWidget> 0012 0013 #include <interfaces/configpage.h> 0014 0015 #include "../compilerprovider/icompiler.h" 0016 0017 namespace Ui 0018 { 0019 class CompilersWidget; 0020 } 0021 0022 class CompilersModel; 0023 class QMenu; 0024 0025 class CompilersWidget : public KDevelop::ConfigPage 0026 { 0027 Q_OBJECT 0028 0029 public: 0030 explicit CompilersWidget(QWidget* parent = nullptr); 0031 ~CompilersWidget() override; 0032 0033 void setCompilers(const QVector<CompilerPointer>& compilers); 0034 QVector<CompilerPointer> compilers() const; 0035 void clear(); 0036 0037 QString name() const override; 0038 QString fullName() const override; 0039 QIcon icon() const override; 0040 0041 KDevelop::ConfigPage::ConfigPageType configPageType() const override; 0042 0043 void apply() override; 0044 void reset() override; 0045 void defaults() override; 0046 0047 private Q_SLOTS: 0048 void deleteCompiler(); 0049 void addCompiler(const QString& factoryName); 0050 void compilerSelected(const QModelIndex& index); 0051 void compilerEdited(); 0052 0053 Q_SIGNALS: 0054 void compilerChanged(); 0055 0056 private: 0057 void enableItems(bool enable); 0058 0059 QScopedPointer<Ui::CompilersWidget> m_ui; 0060 CompilersModel* m_compilersModel; 0061 QMenu *m_addMenu; 0062 }; 0063 0064 #endif