aboutsummaryrefslogtreecommitdiffstats
path: root/src/plugins/subversion
diff options
context:
space:
mode:
authorhjk <hjk@qt.io>2020-01-24 16:24:31 +0100
committerhjk <hjk@qt.io>2020-01-27 06:44:55 +0000
commitb0939414354589ae569f12a14e6fe55abb4ab575 (patch)
treec4daec2d42e09b620d32ca87949aae40e9f67319 /src/plugins/subversion
parent004614f6db033059a4703383bff25cc91d4fe7e2 (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.cpp53
-rw-r--r--src/plugins/subversion/settingspage.h8
-rw-r--r--src/plugins/subversion/subversionplugin.cpp2
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);