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