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"