File indexing completed on 2024-04-21 05:41:00
0001 /* 0002 SPDX-FileCopyrightText: 2011 Vishesh Yadav <vishesh3y@gmail.com> 0003 0004 SPDX-License-Identifier: GPL-2.0-or-later 0005 */ 0006 0007 #include "configdialog.h" 0008 #include "hgwrapper.h" 0009 #include "fileviewhgpluginsettings.h" 0010 0011 #include "config-widgets/generalconfig.h" 0012 #include "config-widgets/pathconfig.h" 0013 #include "config-widgets/ignorewidget.h" 0014 #include "config-widgets/pluginsettings.h" 0015 0016 #include <QWidget> 0017 #include <QDialogButtonBox> 0018 #include <KLocalizedString> 0019 #include <QDebug> 0020 0021 HgConfigDialog::HgConfigDialog(HgConfig::ConfigType type, QWidget *parent): 0022 KPageDialog(parent), 0023 m_configType(type) 0024 { 0025 // dialog properties 0026 if (m_configType == HgConfig::RepoConfig) { 0027 this->setWindowTitle(xi18nc("@title:window", 0028 "<application>Hg</application> Repository Configuration")); 0029 } else { 0030 this->setWindowTitle(xi18nc("@title:window", 0031 "<application>Hg</application> Global Configuration")); 0032 } 0033 this->setStandardButtons(QDialogButtonBox::Ok | QDialogButtonBox::Apply | QDialogButtonBox::Cancel); 0034 0035 setupUI(); 0036 loadGeometry(); 0037 0038 connect(this, SIGNAL(finished(int)), this, SLOT(saveGeometry())); 0039 } 0040 0041 void HgConfigDialog::setupUI() 0042 { 0043 m_generalConfig = new HgGeneralConfigWidget(m_configType); 0044 addPage(m_generalConfig, xi18nc("@label:group", "General Settings")); 0045 0046 if (m_configType == HgConfig::RepoConfig) { 0047 m_pathConfig = new HgPathConfigWidget; 0048 addPage(m_pathConfig, xi18nc("@label:group", "Repository Paths")); 0049 0050 m_ignoreWidget = new HgIgnoreWidget; 0051 addPage(m_ignoreWidget, xi18nc("@label:group", "Ignored Files")); 0052 } 0053 else if (m_configType == HgConfig::GlobalConfig) { 0054 m_pluginSetting = new HgPluginSettingsWidget; 0055 addPage(m_pluginSetting, xi18nc("@label:group", "Plugin Settings")); 0056 } 0057 } 0058 0059 void HgConfigDialog::saveSettings() 0060 { 0061 qDebug() << "Saving Mercurial configuration"; 0062 m_generalConfig->saveConfig(); 0063 if (m_configType == HgConfig::RepoConfig) { 0064 m_pathConfig->saveConfig(); 0065 m_ignoreWidget->saveConfig(); 0066 } 0067 else if (m_configType == HgConfig::GlobalConfig) { 0068 m_pluginSetting->saveConfig(); 0069 } 0070 } 0071 0072 void HgConfigDialog::done(int r) 0073 { 0074 if (r == QDialog::Accepted) { 0075 saveSettings(); 0076 QDialog::done(r); 0077 } 0078 else { 0079 QDialog::done(r); 0080 } 0081 } 0082 0083 void HgConfigDialog::loadGeometry() 0084 { 0085 FileViewHgPluginSettings *settings = FileViewHgPluginSettings::self(); 0086 this->resize(QSize(settings->configDialogWidth(), 0087 settings->configDialogHeight())); 0088 } 0089 0090 void HgConfigDialog::saveGeometry() 0091 { 0092 FileViewHgPluginSettings *settings = FileViewHgPluginSettings::self(); 0093 settings->setConfigDialogHeight(this->height()); 0094 settings->setConfigDialogWidth(this->width()); 0095 settings->save(); 0096 } 0097 0098 0099 0100 #include "moc_configdialog.cpp"