diff options
author | Friedemann Kleint <[email protected]> | 2008-12-04 11:23:03 +0100 |
---|---|---|
committer | Friedemann Kleint <[email protected]> | 2008-12-04 11:23:03 +0100 |
commit | d63c68f39ad3d989ebcce701bfe1c37e7a1c7b63 (patch) | |
tree | 7170d640765526f78e0110d086676b55e3f5b074 /src/plugins/git/settingspage.cpp | |
parent | 8b018225b0169c220d112d9e55db6bf238c89aaf (diff) |
Fixes: Refactor git settings code, add some more menu options
Diffstat (limited to 'src/plugins/git/settingspage.cpp')
-rw-r--r-- | src/plugins/git/settingspage.cpp | 85 |
1 files changed, 37 insertions, 48 deletions
diff --git a/src/plugins/git/settingspage.cpp b/src/plugins/git/settingspage.cpp index 7b0c37284aa..e1b14cb9ccc 100644 --- a/src/plugins/git/settingspage.cpp +++ b/src/plugins/git/settingspage.cpp @@ -32,35 +32,44 @@ ***************************************************************************/ #include "settingspage.h" +#include "gitsettings.h" +#include "gitplugin.h" -#include <coreplugin/icore.h> -#include <extensionsystem/pluginmanager.h> - -#include <QtCore/QSettings> -#include <QtGui/QLineEdit> -#include <QtGui/QFileDialog> #include <QtCore/QDebug> using namespace Git::Internal; -static const char *groupC = "Git"; -static const char *sysEnvKeyC = "SysEnv"; -static const char *pathKeyC = "Path"; -static const char *logCountKeyC = "LogCount"; +SettingsPageWidget::SettingsPageWidget(QWidget *parent) : + QWidget(parent) +{ + m_ui.setupUi(this); + connect(m_ui.adoptButton, SIGNAL(clicked()), this, SLOT(setSystemPath())); +} -SettingsPage::SettingsPage() +GitSettings SettingsPageWidget::settings() const { - Core::ICore *coreIFace = ExtensionSystem::PluginManager::instance()->getObject<Core::ICore>(); - if (coreIFace) - m_settings = coreIFace->settings(); + GitSettings rc; + rc.path = m_ui.pathLineEdit->text(); + rc.adoptPath = m_ui.environmentGroupBox->isChecked() && !rc.path.isEmpty(); + rc.logCount = m_ui.logCountSpinBox->value(); + return rc; +} - if (m_settings) { - m_settings->beginGroup(QLatin1String(groupC)); - m_adopt = m_settings->value(QLatin1String(sysEnvKeyC), true).toBool(); - m_path = m_settings->value(QLatin1String(pathKeyC), QString()).toString(); - m_logCount = m_settings->value(QLatin1String(logCountKeyC), 10).toInt(); - m_settings->endGroup(); - } +void SettingsPageWidget::setSettings(const GitSettings &s) +{ + m_ui.environmentGroupBox->setChecked(s.adoptPath); + m_ui.pathLineEdit->setText(s.path); + m_ui.logCountSpinBox->setValue(s.logCount); +} + +void SettingsPageWidget::setSystemPath() +{ + m_ui.pathLineEdit->setText(QLatin1String(qgetenv("PATH"))); +} + +// -------- SettingsPage +SettingsPage::SettingsPage() +{ } QString SettingsPage::name() const @@ -68,7 +77,7 @@ QString SettingsPage::name() const return tr("General"); } -QString SettingsPage::category() const + QString SettingsPage::category() const { return QLatin1String("Git"); } @@ -80,37 +89,17 @@ QString SettingsPage::trCategory() const QWidget *SettingsPage::createPage(QWidget *parent) { - QWidget *w = new QWidget(parent); - m_ui.setupUi(w); - m_ui.adoptCheckBox->setChecked(m_adopt); - m_ui.pathLineEdit->setText(m_path); - m_ui.logLineEdit->setText(QString::number(m_logCount)); - - connect(m_ui.adoptButton, SIGNAL(clicked()), this, SLOT(setSystemPath())); - return w; + if (!m_widget) + m_widget = new SettingsPageWidget(parent); + m_widget->setSettings(GitPlugin::instance()->settings()); + return m_widget; } void SettingsPage::finished(bool accepted) { - if (!accepted) + if (!accepted || !m_widget) return; - m_adopt = m_ui.adoptCheckBox->isChecked(); - m_path = m_ui.pathLineEdit->text(); - m_logCount = m_ui.logLineEdit->text().toInt(); - - if (!m_settings) - return; - - m_settings->beginGroup(QLatin1String(groupC)); - m_settings->setValue(QLatin1String(sysEnvKeyC), m_adopt); - m_settings->setValue(QLatin1String(pathKeyC), m_path); - m_settings->setValue(QLatin1String(logCountKeyC), m_logCount); - m_settings->endGroup(); + GitPlugin::instance()->setSettings(m_widget->settings()); } -void SettingsPage::setSystemPath() -{ - m_path = qgetenv("PATH"); - m_ui.pathLineEdit->setText(m_path); -} |