File indexing completed on 2024-04-28 04:38:57
0001 /* 0002 SPDX-FileCopyrightText: 2006 Matt Rogers <mattr@kde.org> 0003 0004 SPDX-License-Identifier: GPL-2.0-or-later 0005 */ 0006 0007 #include "makebuilderpreferences.h" 0008 0009 #include "ui_makeconfig.h" 0010 #include "makebuilderconfig.h" 0011 0012 using namespace KDevelop; 0013 0014 MakeBuilderPreferences::MakeBuilderPreferences(IPlugin* plugin, const ProjectConfigOptions& options, QWidget* parent) 0015 : ProjectConfigPage<MakeBuilderSettings>(plugin, options, parent) 0016 { 0017 m_prefsUi = new Ui::MakeConfig; 0018 m_prefsUi->setupUi(this); 0019 connect(m_prefsUi->makeExecutable, &KUrlRequester::textChanged, 0020 this, &MakeBuilderPreferences::changed); 0021 connect(m_prefsUi->makeExecutable, &KUrlRequester::urlSelected, 0022 this, &MakeBuilderPreferences::changed); 0023 connect(m_prefsUi->configureEnvironment, &EnvironmentConfigureButton::environmentConfigured, 0024 this, &MakeBuilderPreferences::changed); 0025 0026 m_prefsUi->configureEnvironment->setSelectionWidget( m_prefsUi->kcfg_environmentProfile ); 0027 } 0028 0029 void MakeBuilderPreferences::reset() 0030 { 0031 ProjectConfigPage::reset(); 0032 QSignalBlocker sigBlock(this); // don't emit changed signal from m_prefsUi->makeExecutable 0033 m_prefsUi->makeExecutable->setText(MakeBuilderSettings::self()->makeExecutable()); 0034 } 0035 0036 void MakeBuilderPreferences::apply() 0037 { 0038 MakeBuilderSettings::self()->setMakeExecutable(m_prefsUi->makeExecutable->text()); 0039 MakeBuilderSettings::self()->save(); // TODO: is this needed? KConfigDialogManager should end up calling it 0040 ProjectConfigPage::apply(); 0041 } 0042 0043 void MakeBuilderPreferences::defaults() 0044 { 0045 MakeBuilderSettings::self()->setDefaults(); 0046 m_prefsUi->makeExecutable->setText(MakeBuilderSettings::self()->makeExecutable()); 0047 ProjectConfigPage::defaults(); 0048 } 0049 0050 MakeBuilderPreferences::~MakeBuilderPreferences() 0051 { 0052 delete m_prefsUi; 0053 } 0054 0055 QString MakeBuilderPreferences::standardMakeExecutable() 0056 { 0057 #ifdef Q_OS_WIN 0058 if (!QStandardPaths::findExecutable(QStringLiteral("make")).isEmpty()) 0059 return QStringLiteral("make"); 0060 if (!QStandardPaths::findExecutable(QStringLiteral("mingw32-make")).isEmpty()) 0061 return QStringLiteral("mingw32-make"); 0062 return QStringLiteral("nmake"); 0063 #else 0064 return QStringLiteral("make"); 0065 #endif 0066 } 0067 0068 QString MakeBuilderPreferences::name() const 0069 { 0070 return i18nc("@title:tab", "Make"); 0071 } 0072 0073 QString MakeBuilderPreferences::fullName() const 0074 { 0075 return i18nc("@title:tab", "Configure Make Settings"); 0076 } 0077 0078 QIcon MakeBuilderPreferences::icon() const 0079 { 0080 return QIcon::fromTheme(QStringLiteral("run-build")); 0081 } 0082 0083 #include "moc_makebuilderpreferences.cpp"