diff options
author | hjk <hjk@qt.io> | 2020-01-24 16:24:31 +0100 |
---|---|---|
committer | hjk <hjk@qt.io> | 2020-01-27 06:44:55 +0000 |
commit | b0939414354589ae569f12a14e6fe55abb4ab575 (patch) | |
tree | c4daec2d42e09b620d32ca87949aae40e9f67319 /src/plugins/subversion | |
parent | 004614f6db033059a4703383bff25cc91d4fe7e2 (diff) |
Vcs: Drop VcsBaseOptionsPage hierarchy level
Adapt the remaining users: Cvs,Git,Svn.
Change-Id: Idd730a33e5c64d18002b1a21b5f5c715b7fa5ffb
Reviewed-by: Orgad Shaneh <orgads@gmail.com>
Diffstat (limited to 'src/plugins/subversion')
-rw-r--r-- | src/plugins/subversion/settingspage.cpp | 53 | ||||
-rw-r--r-- | src/plugins/subversion/settingspage.h | 8 | ||||
-rw-r--r-- | src/plugins/subversion/subversionplugin.cpp | 2 |
3 files changed, 35 insertions, 28 deletions
diff --git a/src/plugins/subversion/settingspage.cpp b/src/plugins/subversion/settingspage.cpp index 94b5830ced..8e16081c10 100644 --- a/src/plugins/subversion/settingspage.cpp +++ b/src/plugins/subversion/settingspage.cpp @@ -44,31 +44,44 @@ using namespace VcsBase; namespace Subversion { namespace Internal { -class SettingsPageWidget final : public VcsBase::VcsClientOptionsPageWidget +class SubversionSettingsPageWidget final : public Core::IOptionsPageWidget { Q_DECLARE_TR_FUNCTIONS(Subversion::Internal::SettingsPageWidget) public: - SettingsPageWidget(); + SubversionSettingsPageWidget(Core::IVersionControl *control, SubversionSettings *settings); - VcsBase::VcsBaseClientSettings settings() const final; - void setSettings(const VcsBase::VcsBaseClientSettings &s) final; + void apply() final; private: Ui::SettingsPage m_ui; + Core::IVersionControl *m_control; + SubversionSettings *m_settings; }; -SettingsPageWidget::SettingsPageWidget() +SubversionSettingsPageWidget::SubversionSettingsPageWidget(Core::IVersionControl *control, SubversionSettings *settings) + : m_control(control), m_settings(settings) { m_ui.setupUi(this); m_ui.pathChooser->setExpectedKind(PathChooser::ExistingCommand); m_ui.pathChooser->setHistoryCompleter(QLatin1String("Subversion.Command.History")); m_ui.pathChooser->setPromptDialogTitle(tr("Subversion Command")); + + SubversionSettings &s = *m_settings; + m_ui.pathChooser->setFileName(s.binaryPath()); + m_ui.usernameLineEdit->setText(s.stringValue(SubversionSettings::userKey)); + m_ui.passwordLineEdit->setText(s.stringValue(SubversionSettings::passwordKey)); + m_ui.userGroupBox->setChecked(s.boolValue(SubversionSettings::useAuthenticationKey)); + m_ui.timeOutSpinBox->setValue(s.intValue(SubversionSettings::timeoutKey)); + m_ui.promptToSubmitCheckBox->setChecked(s.boolValue(SubversionSettings::promptOnSubmitKey)); + m_ui.spaceIgnorantAnnotationCheckBox->setChecked( + s.boolValue(SubversionSettings::spaceIgnorantAnnotationKey)); + m_ui.logCountSpinBox->setValue(s.intValue(SubversionSettings::logCountKey)); } -VcsBase::VcsBaseClientSettings SettingsPageWidget::settings() const +void SubversionSettingsPageWidget::apply() { - SubversionSettings rc; + SubversionSettings rc = *m_settings; rc.setValue(SubversionSettings::binaryPathKey, m_ui.pathChooser->rawPath()); rc.setValue(SubversionSettings::useAuthenticationKey, m_ui.userGroupBox->isChecked()); rc.setValue(SubversionSettings::userKey, m_ui.usernameLineEdit->text()); @@ -80,29 +93,21 @@ VcsBase::VcsBaseClientSettings SettingsPageWidget::settings() const rc.setValue(SubversionSettings::spaceIgnorantAnnotationKey, m_ui.spaceIgnorantAnnotationCheckBox->isChecked()); rc.setValue(SubversionSettings::logCountKey, m_ui.logCountSpinBox->value()); - return rc; -} -void SettingsPageWidget::setSettings(const VcsBaseClientSettings &s) -{ - m_ui.pathChooser->setFileName(s.binaryPath()); - m_ui.usernameLineEdit->setText(s.stringValue(SubversionSettings::userKey)); - m_ui.passwordLineEdit->setText(s.stringValue(SubversionSettings::passwordKey)); - m_ui.userGroupBox->setChecked(s.boolValue(SubversionSettings::useAuthenticationKey)); - m_ui.timeOutSpinBox->setValue(s.intValue(SubversionSettings::timeoutKey)); - m_ui.promptToSubmitCheckBox->setChecked(s.boolValue(SubversionSettings::promptOnSubmitKey)); - m_ui.spaceIgnorantAnnotationCheckBox->setChecked( - s.boolValue(SubversionSettings::spaceIgnorantAnnotationKey)); - m_ui.logCountSpinBox->setValue(s.intValue(SubversionSettings::logCountKey)); + if (rc == *m_settings) + return; + + *m_settings = rc; + m_control->configurationChanged(); } -SettingsPage::SettingsPage(Core::IVersionControl *control, SubversionSettings *settings, QObject *parent) : - VcsClientOptionsPage(control, settings, parent) +SubversionSettingsPage::SubversionSettingsPage(Core::IVersionControl *control, SubversionSettings *settings, QObject *parent) : + Core::IOptionsPage(parent) { setId(VcsBase::Constants::VCS_ID_SUBVERSION); - setDisplayName(SettingsPageWidget::tr("Subversion")); + setDisplayName(SubversionSettingsPageWidget::tr("Subversion")); setCategory(VcsBase::Constants::VCS_SETTINGS_CATEGORY); - setWidgetFactory([] { return new SettingsPageWidget; }); + setWidgetCreator([control, settings] { return new SubversionSettingsPageWidget(control, settings); }); } } // Internal diff --git a/src/plugins/subversion/settingspage.h b/src/plugins/subversion/settingspage.h index c8dc438d12..6de99983d3 100644 --- a/src/plugins/subversion/settingspage.h +++ b/src/plugins/subversion/settingspage.h @@ -25,17 +25,19 @@ #pragma once -#include <vcsbase/vcsbaseoptionspage.h> +#include <coreplugin/dialogs/ioptionspage.h> + +namespace Core { class IVersionControl; } namespace Subversion { namespace Internal { class SubversionSettings; -class SettingsPage final : public VcsBase::VcsClientOptionsPage +class SubversionSettingsPage final : public Core::IOptionsPage { public: - SettingsPage(Core::IVersionControl *control, SubversionSettings *settings, QObject *parent); + SubversionSettingsPage(Core::IVersionControl *control, SubversionSettings *settings, QObject *parent); }; } // namespace Subversion diff --git a/src/plugins/subversion/subversionplugin.cpp b/src/plugins/subversion/subversionplugin.cpp index 733f36e21c..3c8cc503b8 100644 --- a/src/plugins/subversion/subversionplugin.cpp +++ b/src/plugins/subversion/subversionplugin.cpp @@ -231,7 +231,7 @@ SubversionPluginPrivate::SubversionPluginPrivate() : m_client = new SubversionClient(&m_settings); - new SettingsPage(versionControl(), &m_settings, this); + new SubversionSettingsPage(versionControl(), &m_settings, this); new VcsSubmitEditorFactory(&submitParameters, []() { return new SubversionSubmitEditor(&submitParameters); }, this); |