File indexing completed on 2024-05-12 04:39:22

0001 /*
0002     SPDX-FileCopyrightText: 2016 Carlos Nihelton <carlosnsoliveira@gmail.com>
0003 
0004     SPDX-License-Identifier: GPL-2.0-or-later
0005 */
0006 
0007 #ifndef CLANGTIDYPREFERENCES_H
0008 #define CLANGTIDYPREFERENCES_H
0009 
0010 // KDevPlatform
0011 #include <interfaces/configpage.h>
0012 
0013 namespace Ui
0014 {
0015 class ClangTidyPreferences;
0016 }
0017 namespace ClangTidy
0018 {
0019 class CheckSetSelectionManager;
0020 class CheckSet;
0021 }
0022 /**
0023  * \class
0024  * \brief Implements the session configuration page for clang-tidy.
0025  */
0026 class ClangTidyPreferences : public KDevelop::ConfigPage
0027 {
0028     Q_OBJECT
0029 
0030 public:
0031     explicit ClangTidyPreferences(ClangTidy::CheckSetSelectionManager* checkSetSelectionManager,
0032                                   const ClangTidy::CheckSet* checkSet,
0033                                   KDevelop::IPlugin* plugin = nullptr, QWidget* parent = nullptr);
0034     ~ClangTidyPreferences() override;
0035 
0036 public: // KDevelop::ConfigPage API
0037     ConfigPage::ConfigPageType configPageType() const override;
0038     QString name() const override;
0039     QString fullName() const override;
0040     QIcon icon() const override;
0041 
0042     void apply() override;
0043     void defaults() override;
0044     void reset() override;
0045 
0046 private:
0047     void updateJobCountEnabledState();
0048 
0049 private:
0050     Ui::ClangTidyPreferences* ui;
0051     ClangTidy::CheckSetSelectionManager* const m_checkSetSelectionManager;
0052 };
0053 
0054 #endif