Warning, file /network/krdc/config/preferencesdialog.cpp was not indexed or was modified since last indexation (in which case cross-reference links may be missing, inaccurate or erroneous).
0001 /* 0002 SPDX-FileCopyrightText: 2007-2010 Urs Wolfer <uwolfer@kde.org> 0003 0004 SPDX-License-Identifier: GPL-2.0-or-later 0005 */ 0006 0007 #include "preferencesdialog.h" 0008 #include "krdc_debug.h" 0009 #include "hostpreferenceslist.h" 0010 #include "ui_general.h" 0011 0012 #include <KConfigSkeleton> 0013 #include <KLocalizedString> 0014 #include <KPluginWidget> 0015 #include <KPluginMetaData> 0016 0017 PreferencesDialog::PreferencesDialog(QWidget *parent, KConfigSkeleton *skeleton) 0018 : KConfigDialog(parent, QStringLiteral("preferences"), skeleton) 0019 , m_settingsChanged(false) 0020 { 0021 QWidget *generalPage = new QWidget(this); 0022 Ui::General generalUi; 0023 generalUi.setupUi(generalPage); 0024 addPage(generalPage, i18nc("General Config", "General"), QStringLiteral("krdc"), i18n("General Configuration")); 0025 0026 HostPreferencesList *hostPreferencesList = new HostPreferencesList(this, 0027 qobject_cast<MainWindow *>(parent), 0028 skeleton->config()->group("hostpreferences")); 0029 addPage(hostPreferencesList, i18n("Hosts"), QStringLiteral("computer"), i18n("Host Configuration")); 0030 0031 m_pluginSelector = new KPluginWidget(); 0032 const QVector<KPluginMetaData> offers = KPluginMetaData::findPlugins(QStringLiteral("krdc")); 0033 m_pluginSelector->setConfig(KSharedConfig::openConfig()->group(QStringLiteral("Plugins"))); 0034 m_pluginSelector->addPlugins(offers, i18n("Plugins")); 0035 addPage(m_pluginSelector, i18n("Plugins"), QStringLiteral("preferences-plugin"), i18n("Plugin Configuration")); 0036 0037 connect(this, SIGNAL(accepted()), SLOT(saveState())); 0038 QPushButton *defaultsButton = buttonBox()->button(QDialogButtonBox::RestoreDefaults); 0039 connect(defaultsButton, SIGNAL(clicked()), SLOT(loadDefaults())); 0040 connect(m_pluginSelector, SIGNAL(changed(bool)), SLOT(settingsChanged())); 0041 } 0042 0043 void PreferencesDialog::saveState() 0044 { 0045 //TODO: relaod plugins at runtime? 0046 m_pluginSelector->save(); 0047 } 0048 0049 void PreferencesDialog::loadDefaults() 0050 { 0051 m_pluginSelector->defaults(); 0052 } 0053 0054 void PreferencesDialog::settingsChanged() 0055 { 0056 enableButton(QDialogButtonBox::Apply); 0057 enableButton(QDialogButtonBox::RestoreDefaults); 0058 } 0059 0060 bool PreferencesDialog::isDefault() 0061 { 0062 return KConfigDialog::isDefault() && m_pluginSelector->isDefault(); 0063 } 0064 0065 void PreferencesDialog::enableButton(QDialogButtonBox::StandardButton standardButton) 0066 { 0067 QPushButton *button = buttonBox()->button(standardButton); 0068 if (button) { 0069 button->setEnabled(true); 0070 } 0071 } 0072