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 #include "clangtidypreferences.h" 0008 0009 // plugin 0010 #include "clangtidyconfig.h" 0011 #include "ui_clangtidypreferences.h" 0012 #include "checksetselectionmanager.h" 0013 0014 using KDevelop::IPlugin; 0015 using KDevelop::ConfigPage; 0016 using namespace ClangTidy; 0017 0018 ClangTidyPreferences::ClangTidyPreferences(CheckSetSelectionManager* checkSetSelectionManager, 0019 const CheckSet* checkSet, 0020 IPlugin* plugin, QWidget* parent) 0021 : ConfigPage(plugin, ClangTidySettings::self(), parent) 0022 , m_checkSetSelectionManager(checkSetSelectionManager) 0023 { 0024 ui = new Ui::ClangTidyPreferences(); 0025 ui->setupUi(this); 0026 ui->checksets->setCheckSetSelectionManager(checkSetSelectionManager, checkSet); 0027 0028 connect(ui->kcfg_parallelJobsEnabled, &QCheckBox::toggled, 0029 this, &ClangTidyPreferences::updateJobCountEnabledState); 0030 connect(ui->kcfg_parallelJobsAutoCount, &QCheckBox::toggled, 0031 this, &ClangTidyPreferences::updateJobCountEnabledState); 0032 connect(ui->checksets, &CheckSetManageWidget::changed, 0033 this, &ClangTidyPreferences::changed); 0034 0035 updateJobCountEnabledState(); 0036 } 0037 0038 ClangTidyPreferences::~ClangTidyPreferences() 0039 { 0040 delete ui; 0041 } 0042 0043 void ClangTidyPreferences::updateJobCountEnabledState() 0044 { 0045 const bool jobsEnabled = ui->kcfg_parallelJobsEnabled->isChecked(); 0046 const bool autoEnabled = ui->kcfg_parallelJobsAutoCount->isChecked(); 0047 const bool manualJobsEnabled = (jobsEnabled && !autoEnabled); 0048 0049 ui->kcfg_parallelJobsAutoCount->setEnabled(jobsEnabled); 0050 0051 ui->kcfg_parallelJobsFixedCount->setEnabled(manualJobsEnabled); 0052 ui->parallelJobsFixedCountLabel->setEnabled(manualJobsEnabled); 0053 } 0054 0055 ConfigPage::ConfigPageType ClangTidyPreferences::configPageType() const 0056 { 0057 return ConfigPage::AnalyzerConfigPage; 0058 } 0059 0060 QString ClangTidyPreferences::name() const 0061 { 0062 return i18nc("@title:tab", "Clang-Tidy"); 0063 } 0064 0065 QString ClangTidyPreferences::fullName() const 0066 { 0067 return i18nc("@title:tab", "Configure Clang-Tidy Settings"); 0068 } 0069 0070 QIcon ClangTidyPreferences::icon() const 0071 { 0072 return QIcon::fromTheme(QStringLiteral("dialog-ok")); 0073 } 0074 0075 void ClangTidyPreferences::apply() 0076 { 0077 ConfigPage::apply(); 0078 ui->checksets->store(); 0079 } 0080 0081 void ClangTidyPreferences::defaults() 0082 { 0083 ConfigPage::defaults(); 0084 ui->checksets->reload(); 0085 } 0086 0087 void ClangTidyPreferences::reset() 0088 { 0089 ConfigPage::reset(); 0090 ui->checksets->reload(); 0091 } 0092 0093 #include "moc_clangtidypreferences.cpp"