diff options
Diffstat (limited to 'src/plugins/subversion/settingspage.cpp')
-rw-r--r-- | src/plugins/subversion/settingspage.cpp | 19 |
1 files changed, 14 insertions, 5 deletions
diff --git a/src/plugins/subversion/settingspage.cpp b/src/plugins/subversion/settingspage.cpp index 6f2bfa9994..851f8ae2c9 100644 --- a/src/plugins/subversion/settingspage.cpp +++ b/src/plugins/subversion/settingspage.cpp @@ -29,8 +29,10 @@ ****************************************************************************/ #include "settingspage.h" -#include "subversionsettings.h" + +#include "subversionclient.h" #include "subversionplugin.h" +#include "subversionsettings.h" #include <coreplugin/icore.h> #include <extensionsystem/pluginmanager.h> @@ -43,6 +45,7 @@ using namespace Subversion::Internal; using namespace Utils; +using namespace VcsBase; SettingsPageWidget::SettingsPageWidget(QWidget *parent) : QWidget(parent) @@ -53,7 +56,7 @@ SettingsPageWidget::SettingsPageWidget(QWidget *parent) : m_ui.pathChooser->setPromptDialogTitle(tr("Subversion Command")); } -SubversionSettings SettingsPageWidget::settings() const +VcsBase::VcsBaseClientSettings SettingsPageWidget::settings() const { SubversionSettings rc; rc.setValue(SubversionSettings::binaryPathKey, m_ui.pathChooser->rawPath()); @@ -70,7 +73,7 @@ SubversionSettings SettingsPageWidget::settings() const return rc; } -void SettingsPageWidget::setSettings(const SubversionSettings &s) +void SettingsPageWidget::setSettings(const VcsBaseClientSettings &s) { m_ui.pathChooser->setFileName(s.binaryPath()); m_ui.usernameLineEdit->setText(s.stringValue(SubversionSettings::userKey)); @@ -94,14 +97,20 @@ QWidget *SettingsPage::widget() { if (!m_widget) { m_widget = new SettingsPageWidget; - m_widget->setSettings(SubversionPlugin::instance()->settings()); + m_widget->setSettings(SubversionPlugin::instance()->client()->settings()); } return m_widget; } void SettingsPage::apply() { - SubversionPlugin::instance()->setSettings(m_widget->settings()); + const VcsBaseClientSettings newSettings = m_widget->settings(); + VcsBaseClientSettings &s = SubversionPlugin::instance()->client()->settings(); + if (s != newSettings) { + s = newSettings; + s.writeSettings(Core::ICore::settings()); + emit settingsChanged(); + } } void SettingsPage::finish() |