File indexing completed on 2024-04-28 04:39:08
0001 /* 0002 SPDX-FileCopyrightText: 2013 Milian Wolff <mail@milianw.de> 0003 SPDX-FileCopyrightText: 2008 Alexander Dymo <adymo@kdevelop.org> 0004 0005 SPDX-License-Identifier: LGPL-2.0-or-later 0006 */ 0007 0008 #ifndef KDEVPLATFORM_PLUGIN_PROJECTFILTERCONFIGPAGE_H 0009 #define KDEVPLATFORM_PLUGIN_PROJECTFILTERCONFIGPAGE_H 0010 0011 #include <project/projectconfigpage.h> 0012 0013 #include "projectfiltersettings.h" 0014 0015 namespace Ui 0016 { 0017 class ProjectFilterSettings; 0018 } 0019 0020 namespace KDevelop 0021 { 0022 0023 class FilterModel; 0024 class ProjectFilterProvider; 0025 0026 class ProjectFilterConfigPage : public ProjectConfigPage<ProjectFilterSettings> 0027 { 0028 Q_OBJECT 0029 public: 0030 ProjectFilterConfigPage(ProjectFilterProvider* provider, const KDevelop::ProjectConfigOptions& options, QWidget* parent); 0031 ~ProjectFilterConfigPage() override; 0032 0033 QString name() const override; 0034 QIcon icon() const override; 0035 QString fullName() const override; 0036 0037 protected: 0038 bool eventFilter(QObject* object, QEvent* event) override; 0039 0040 private Q_SLOTS: 0041 void add(); 0042 void remove(); 0043 void moveUp(); 0044 void moveDown(); 0045 void selectionChanged(); 0046 void checkFiltersAndEmitChanged(); 0047 0048 public Q_SLOTS: 0049 void apply() override; 0050 void reset() override; 0051 void defaults() override; 0052 0053 private: 0054 void checkFilters(); 0055 0056 FilterModel *m_model; 0057 ProjectFilterProvider* m_projectFilterProvider; 0058 QScopedPointer<Ui::ProjectFilterSettings> m_ui; 0059 }; 0060 0061 } 0062 #endif