aboutsummaryrefslogtreecommitdiffstats
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
parent004614f6db033059a4703383bff25cc91d4fe7e2 (diff)
Vcs: Drop VcsBaseOptionsPage hierarchy level
Adapt the remaining users: Cvs,Git,Svn. Change-Id: Idd730a33e5c64d18002b1a21b5f5c715b7fa5ffb Reviewed-by: Orgad Shaneh <orgads@gmail.com>
-rw-r--r--src/plugins/bazaar/optionspage.h4
-rw-r--r--src/plugins/cvs/cvsplugin.cpp2
-rw-r--r--src/plugins/cvs/settingspage.cpp47
-rw-r--r--src/plugins/cvs/settingspage.h8
-rw-r--r--src/plugins/git/gitplugin.cpp13
-rw-r--r--src/plugins/git/gitsettings.cpp6
-rw-r--r--src/plugins/git/gitsettings.h2
-rw-r--r--src/plugins/git/settingspage.cpp68
-rw-r--r--src/plugins/git/settingspage.h7
-rw-r--r--src/plugins/subversion/settingspage.cpp53
-rw-r--r--src/plugins/subversion/settingspage.h8
-rw-r--r--src/plugins/subversion/subversionplugin.cpp2
-rw-r--r--src/plugins/vcsbase/CMakeLists.txt1
-rw-r--r--src/plugins/vcsbase/vcsbase.pro2
-rw-r--r--src/plugins/vcsbase/vcsbase.qbs2
-rw-r--r--src/plugins/vcsbase/vcsbaseoptionspage.cpp91
-rw-r--r--src/plugins/vcsbase/vcsbaseoptionspage.h78
17 files changed, 112 insertions, 282 deletions
diff --git a/src/plugins/bazaar/optionspage.h b/src/plugins/bazaar/optionspage.h
index 9a75dc2671..ccfaa8f0cf 100644
--- a/src/plugins/bazaar/optionspage.h
+++ b/src/plugins/bazaar/optionspage.h
@@ -25,7 +25,9 @@
#pragma once
-#include <vcsbase/vcsbaseoptionspage.h>
+#include <coreplugin/dialogs/ioptionspage.h>
+
+namespace Core { class IVersionControl; }
namespace Bazaar {
namespace Internal {
diff --git a/src/plugins/cvs/cvsplugin.cpp b/src/plugins/cvs/cvsplugin.cpp
index 4c87edaf79..8d7f249624 100644
--- a/src/plugins/cvs/cvsplugin.cpp
+++ b/src/plugins/cvs/cvsplugin.cpp
@@ -221,7 +221,7 @@ CvsPluginPrivate::CvsPluginPrivate()
m_client = new CvsClient(&m_settings);
- new SettingsPage(vcsCtrl, &m_settings, this);
+ new CvsSettingsPage(vcsCtrl, &m_settings, this);
new VcsSubmitEditorFactory(&submitParameters,
[]() { return new CvsSubmitEditor(&submitParameters); }, this);
diff --git a/src/plugins/cvs/settingspage.cpp b/src/plugins/cvs/settingspage.cpp
index c6419d7e6f..3e03dfc3af 100644
--- a/src/plugins/cvs/settingspage.cpp
+++ b/src/plugins/cvs/settingspage.cpp
@@ -43,57 +43,62 @@ using namespace VcsBase;
namespace Cvs {
namespace Internal {
-class SettingsPageWidget final : public VcsBase::VcsClientOptionsPageWidget
+class CvsSettingsPageWidget final : public Core::IOptionsPageWidget
{
Q_DECLARE_TR_FUNCTIONS(Cvs::Internal::SettingsPageWidget)
public:
- SettingsPageWidget();
+ CvsSettingsPageWidget(Core::IVersionControl *control, CvsSettings *settings);
- VcsBase::VcsBaseClientSettings settings() const final;
- void setSettings(const VcsBase::VcsBaseClientSettings &) final;
+ void apply() final;
private:
Ui::SettingsPage m_ui;
+ Core::IVersionControl *m_control;
+ CvsSettings *m_settings;
};
-SettingsPageWidget::SettingsPageWidget()
+CvsSettingsPageWidget::CvsSettingsPageWidget(Core::IVersionControl *control, CvsSettings *settings)
+ : m_control(control), m_settings(settings)
{
m_ui.setupUi(this);
m_ui.commandPathChooser->setExpectedKind(PathChooser::ExistingCommand);
m_ui.commandPathChooser->setHistoryCompleter(QLatin1String("Cvs.Command.History"));
m_ui.commandPathChooser->setPromptDialogTitle(tr("CVS Command"));
+
+ const VcsBaseClientSettings &s = *settings;
+ m_ui.commandPathChooser->setFileName(s.binaryPath());
+ m_ui.rootLineEdit->setText(s.stringValue(CvsSettings::cvsRootKey));
+ m_ui.diffOptionsLineEdit->setText(s.stringValue(CvsSettings::diffOptionsKey));
+ m_ui.timeOutSpinBox->setValue(s.intValue(CvsSettings::timeoutKey));
+ m_ui.promptToSubmitCheckBox->setChecked(s.boolValue(CvsSettings::promptOnSubmitKey));
+ m_ui.describeByCommitIdCheckBox->setChecked(s.boolValue(CvsSettings::describeByCommitIdKey));
}
-VcsBaseClientSettings SettingsPageWidget::settings() const
+void CvsSettingsPageWidget::apply()
{
- CvsSettings rc;
+ CvsSettings rc = *m_settings;
rc.setValue(CvsSettings::binaryPathKey, m_ui.commandPathChooser->rawPath());
rc.setValue(CvsSettings::cvsRootKey, m_ui.rootLineEdit->text());
rc.setValue(CvsSettings::diffOptionsKey, m_ui.diffOptionsLineEdit->text());
rc.setValue(CvsSettings::timeoutKey, m_ui.timeOutSpinBox->value());
rc.setValue(CvsSettings::promptOnSubmitKey, m_ui.promptToSubmitCheckBox->isChecked());
rc.setValue(CvsSettings::describeByCommitIdKey, m_ui.describeByCommitIdCheckBox->isChecked());
- return rc;
-}
-void SettingsPageWidget::setSettings(const VcsBaseClientSettings &s)
-{
- m_ui.commandPathChooser->setFileName(s.binaryPath());
- m_ui.rootLineEdit->setText(s.stringValue(CvsSettings::cvsRootKey));
- m_ui.diffOptionsLineEdit->setText(s.stringValue(CvsSettings::diffOptionsKey));
- m_ui.timeOutSpinBox->setValue(s.intValue(CvsSettings::timeoutKey));
- m_ui.promptToSubmitCheckBox->setChecked(s.boolValue(CvsSettings::promptOnSubmitKey));
- m_ui.describeByCommitIdCheckBox->setChecked(s.boolValue(CvsSettings::describeByCommitIdKey));
+ if (rc == *m_settings)
+ return;
+
+ *m_settings = rc;
+ m_control->configurationChanged();
}
-SettingsPage::SettingsPage(Core::IVersionControl *control, CvsSettings *settings, QObject *parent) :
- VcsClientOptionsPage(control, settings, parent)
+CvsSettingsPage::CvsSettingsPage(Core::IVersionControl *control, CvsSettings *settings, QObject *parent) :
+ Core::IOptionsPage( parent)
{
setId(VcsBase::Constants::VCS_ID_CVS);
- setDisplayName(SettingsPageWidget::tr("CVS"));
+ setDisplayName(CvsSettingsPageWidget::tr("CVS"));
setCategory(VcsBase::Constants::VCS_SETTINGS_CATEGORY);
- setWidgetFactory([] { return new SettingsPageWidget; });
+ setWidgetCreator([control, settings] { return new CvsSettingsPageWidget(control, settings); });
}
} // Internal
diff --git a/src/plugins/cvs/settingspage.h b/src/plugins/cvs/settingspage.h
index 874762cb74..fe2077d6ec 100644
--- a/src/plugins/cvs/settingspage.h
+++ b/src/plugins/cvs/settingspage.h
@@ -25,17 +25,19 @@
#pragma once
-#include <vcsbase/vcsbaseoptionspage.h>
+#include <coreplugin/dialogs/ioptionspage.h>
+
+namespace Core { class IVersionControl; }
namespace Cvs {
namespace Internal {
class CvsSettings;
-class SettingsPage final : public VcsBase::VcsClientOptionsPage
+class CvsSettingsPage final : public Core::IOptionsPage
{
public:
- SettingsPage(Core::IVersionControl *control, CvsSettings *settings, QObject *parent);
+ CvsSettingsPage(Core::IVersionControl *control, CvsSettings *settings, QObject *parent);
};
} // namespace Cvs
diff --git a/src/plugins/git/gitplugin.cpp b/src/plugins/git/gitplugin.cpp
index 2ada220ae1..9f13dc082a 100644
--- a/src/plugins/git/gitplugin.cpp
+++ b/src/plugins/git/gitplugin.cpp
@@ -325,9 +325,16 @@ GitPluginPrivate::GitPluginPrivate()
initializeVcs(vc, context);
// Create the settings Page
- auto settingsPage = new SettingsPage(vc, &m_settings, this);
- connect(settingsPage, &SettingsPage::settingsChanged,
- this, &GitPluginPrivate::updateRepositoryBrowserAction);
+ auto onApply = [this, vc] {
+ vc->configurationChanged();
+ updateRepositoryBrowserAction();
+ bool gitFoundOk;
+ QString errorMessage;
+ m_settings.gitExecutable(&gitFoundOk, &errorMessage);
+ if (!gitFoundOk)
+ Core::AsynchronousMessageBox::warning(tr("Git Settings"), errorMessage);
+ };
+ new GitSettingsPage(&m_settings, onApply, this);
new GitGrep(this);
m_branchViewFactory = new BranchViewFactory;
diff --git a/src/plugins/git/gitsettings.cpp b/src/plugins/git/gitsettings.cpp
index ecc355fa50..097dd276f3 100644
--- a/src/plugins/git/gitsettings.cpp
+++ b/src/plugins/git/gitsettings.cpp
@@ -92,11 +92,5 @@ Utils::FilePath GitSettings::gitExecutable(bool *ok, QString *errorMessage) cons
return binPath;
}
-GitSettings &GitSettings::operator = (const GitSettings &s)
-{
- VcsBaseClientSettings::operator =(s);
- return *this;
-}
-
} // namespace Internal
} // namespace Git
diff --git a/src/plugins/git/gitsettings.h b/src/plugins/git/gitsettings.h
index 4bd088c852..73e42a3c72 100644
--- a/src/plugins/git/gitsettings.h
+++ b/src/plugins/git/gitsettings.h
@@ -61,7 +61,7 @@ public:
Utils::FilePath gitExecutable(bool *ok = nullptr, QString *errorMessage = nullptr) const;
- GitSettings &operator = (const GitSettings &s);
+ GitSettings &operator=(const GitSettings &s) = default;
};
} // namespace Internal
diff --git a/src/plugins/git/settingspage.cpp b/src/plugins/git/settingspage.cpp
index c5942149c7..f7b7657613 100644
--- a/src/plugins/git/settingspage.cpp
+++ b/src/plugins/git/settingspage.cpp
@@ -44,23 +44,25 @@ using namespace VcsBase;
namespace Git {
namespace Internal {
-class SettingsPageWidget final : public VcsBase::VcsClientOptionsPageWidget
+class GitSettingsPageWidget final : public Core::IOptionsPageWidget
{
Q_DECLARE_TR_FUNCTIONS(Git::Internal::SettingsPageWidget)
public:
- SettingsPageWidget();
+ GitSettingsPageWidget(GitSettings *settings, const std::function<void()> &onChange);
- VcsBase::VcsBaseClientSettings settings() const final;
- void setSettings(const VcsBase::VcsBaseClientSettings &s) final;
+ void apply() final;
private:
void updateNoteField();
+ std::function<void()> m_onChange;
+ GitSettings *m_settings;
Ui::SettingsPage m_ui;
};
-SettingsPageWidget::SettingsPageWidget()
+GitSettingsPageWidget::GitSettingsPageWidget(GitSettings *settings, const std::function<void()> &onChange)
+ : m_onChange(onChange), m_settings(settings)
{
m_ui.setupUi(this);
if (Utils::HostOsInfo::isWindowsHost()) {
@@ -82,12 +84,21 @@ SettingsPageWidget::SettingsPageWidget()
m_ui.repBrowserCommandPathChooser->setHistoryCompleter("Git.RepoCommand.History");
m_ui.repBrowserCommandPathChooser->setPromptDialogTitle(tr("Git Repository Browser Command"));
- connect(m_ui.pathLineEdit, &QLineEdit::textChanged, this, &SettingsPageWidget::updateNoteField);
+ connect(m_ui.pathLineEdit, &QLineEdit::textChanged, this, &GitSettingsPageWidget::updateNoteField);
+
+ GitSettings &s = *m_settings;
+ m_ui.pathLineEdit->setText(s.stringValue(GitSettings::pathKey));
+ m_ui.logCountSpinBox->setValue(s.intValue(GitSettings::logCountKey));
+ m_ui.timeoutSpinBox->setValue(s.intValue(GitSettings::timeoutKey));
+ m_ui.pullRebaseCheckBox->setChecked(s.boolValue(GitSettings::pullRebaseKey));
+ m_ui.winHomeCheckBox->setChecked(s.boolValue(GitSettings::winSetHomeEnvironmentKey));
+ m_ui.gitkOptionsLineEdit->setText(s.stringValue(GitSettings::gitkOptionsKey));
+ m_ui.repBrowserCommandPathChooser->setPath(s.stringValue(GitSettings::repositoryBrowserCmd));
}
-VcsBaseClientSettings SettingsPageWidget::settings() const
+void GitSettingsPageWidget::apply()
{
- GitSettings rc;
+ GitSettings rc = *m_settings;
rc.setValue(GitSettings::pathKey, m_ui.pathLineEdit->text());
rc.setValue(GitSettings::logCountKey, m_ui.logCountSpinBox->value());
rc.setValue(GitSettings::timeoutKey, m_ui.timeoutSpinBox->value());
@@ -96,21 +107,13 @@ VcsBaseClientSettings SettingsPageWidget::settings() const
rc.setValue(GitSettings::gitkOptionsKey, m_ui.gitkOptionsLineEdit->text().trimmed());
rc.setValue(GitSettings::repositoryBrowserCmd, m_ui.repBrowserCommandPathChooser->path().trimmed());
- return rc;
-}
-
-void SettingsPageWidget::setSettings(const VcsBaseClientSettings &s)
-{
- m_ui.pathLineEdit->setText(s.stringValue(GitSettings::pathKey));
- m_ui.logCountSpinBox->setValue(s.intValue(GitSettings::logCountKey));
- m_ui.timeoutSpinBox->setValue(s.intValue(GitSettings::timeoutKey));
- m_ui.pullRebaseCheckBox->setChecked(s.boolValue(GitSettings::pullRebaseKey));
- m_ui.winHomeCheckBox->setChecked(s.boolValue(GitSettings::winSetHomeEnvironmentKey));
- m_ui.gitkOptionsLineEdit->setText(s.stringValue(GitSettings::gitkOptionsKey));
- m_ui.repBrowserCommandPathChooser->setPath(s.stringValue(GitSettings::repositoryBrowserCmd));
+ if (rc != *m_settings) {
+ *m_settings = rc;
+ m_onChange();
+ }
}
-void SettingsPageWidget::updateNoteField()
+void GitSettingsPageWidget::updateNoteField()
{
Utils::Environment env = Utils::Environment::systemEnvironment();
env.prependOrSetPath(m_ui.pathLineEdit->text());
@@ -123,28 +126,13 @@ void SettingsPageWidget::updateNoteField()
// -------- SettingsPage
-SettingsPage::SettingsPage(Core::IVersionControl *control, GitSettings *settings, QObject *parent) :
- VcsClientOptionsPage(control, settings, parent)
+GitSettingsPage::GitSettingsPage(GitSettings *settings, const std::function<void()> &onChange, QObject *parent) :
+ Core::IOptionsPage(parent)
{
setId(VcsBase::Constants::VCS_ID_GIT);
- setDisplayName(SettingsPageWidget::tr("Git"));
+ setDisplayName(GitSettingsPageWidget::tr("Git"));
setCategory(VcsBase::Constants::VCS_SETTINGS_CATEGORY);
- setWidgetFactory([] { return new SettingsPageWidget; });
-}
-
-void SettingsPage::apply()
-{
- VcsClientOptionsPage::apply();
-
- if (widget()->isVisible()) {
- const VcsBaseClientSettings settings = widget()->settings();
- auto rc = static_cast<const GitSettings *>(&settings);
- bool gitFoundOk;
- QString errorMessage;
- rc->gitExecutable(&gitFoundOk, &errorMessage);
- if (!gitFoundOk)
- Core::AsynchronousMessageBox::warning(tr("Git Settings"), errorMessage);
- }
+ setWidgetCreator([settings, onChange] { return new GitSettingsPageWidget(settings, onChange); });
}
} // namespace Internal
diff --git a/src/plugins/git/settingspage.h b/src/plugins/git/settingspage.h
index 2a44f37fdb..c1b0e2a300 100644
--- a/src/plugins/git/settingspage.h
+++ b/src/plugins/git/settingspage.h
@@ -25,18 +25,17 @@
#pragma once
-#include <vcsbase/vcsbaseoptionspage.h>
+#include <coreplugin/dialogs/ioptionspage.h>
namespace Git {
namespace Internal {
class GitSettings;
-class SettingsPage final : public VcsBase::VcsClientOptionsPage
+class GitSettingsPage final : public Core::IOptionsPage
{
public:
- SettingsPage(Core::IVersionControl *control, GitSettings *settings, QObject *parent);
- void apply() final;
+ GitSettingsPage(GitSettings *settings, const std::function<void()> &onChange, QObject *parent);
};
} // namespace Internal
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);
diff --git a/src/plugins/vcsbase/CMakeLists.txt b/src/plugins/vcsbase/CMakeLists.txt
index 1cffe26be0..465cd5ee32 100644
--- a/src/plugins/vcsbase/CMakeLists.txt
+++ b/src/plugins/vcsbase/CMakeLists.txt
@@ -22,7 +22,6 @@ add_qtc_plugin(VcsBase
vcsbasediffeditorcontroller.cpp vcsbasediffeditorcontroller.h
vcsbaseeditor.cpp vcsbaseeditor.h
vcsbaseeditorconfig.cpp vcsbaseeditorconfig.h
- vcsbaseoptionspage.cpp vcsbaseoptionspage.h
vcsbaseplugin.cpp vcsbaseplugin.h
vcsbasesubmiteditor.cpp vcsbasesubmiteditor.h
vcscommand.cpp vcscommand.h
diff --git a/src/plugins/vcsbase/vcsbase.pro b/src/plugins/vcsbase/vcsbase.pro
index 23259021d8..2a1dd0a6bc 100644
--- a/src/plugins/vcsbase/vcsbase.pro
+++ b/src/plugins/vcsbase/vcsbase.pro
@@ -20,7 +20,6 @@ HEADERS += vcsbase_global.h \
nicknamedialog.h \
vcsoutputwindow.h \
cleandialog.h \
- vcsbaseoptionspage.h \
vcscommand.h \
vcsbaseclient.h \
vcsbaseclientsettings.h \
@@ -47,7 +46,6 @@ SOURCES += vcsplugin.cpp \
nicknamedialog.cpp \
vcsoutputwindow.cpp \
cleandialog.cpp \
- vcsbaseoptionspage.cpp \
vcscommand.cpp \
vcsbaseclient.cpp \
vcsbaseclientsettings.cpp \
diff --git a/src/plugins/vcsbase/vcsbase.qbs b/src/plugins/vcsbase/vcsbase.qbs
index df5686db5c..2ab9860447 100644
--- a/src/plugins/vcsbase/vcsbase.qbs
+++ b/src/plugins/vcsbase/vcsbase.qbs
@@ -60,8 +60,6 @@ QtcPlugin {
"vcsbaseeditor.h",
"vcsbaseeditorconfig.cpp",
"vcsbaseeditorconfig.h",
- "vcsbaseoptionspage.cpp",
- "vcsbaseoptionspage.h",
"vcsbaseplugin.cpp",
"vcsbaseplugin.h",
"vcsbasesubmiteditor.cpp",
diff --git a/src/plugins/vcsbase/vcsbaseoptionspage.cpp b/src/plugins/vcsbase/vcsbaseoptionspage.cpp
deleted file mode 100644
index 2d2ea962eb..0000000000
--- a/src/plugins/vcsbase/vcsbaseoptionspage.cpp
+++ /dev/null
@@ -1,91 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2016 The Qt Company Ltd.
-** Contact: https://www.qt.io/licensing/
-**
-** This file is part of Qt Creator.
-**
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see https://www.qt.io/terms-conditions. For further
-** information use the contact form at https://www.qt.io/contact-us.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 3 as published by the Free Software
-** Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT
-** included in the packaging of this file. Please review the following
-** information to ensure the GNU General Public License requirements will
-** be met: https://www.gnu.org/licenses/gpl-3.0.html.
-**
-****************************************************************************/
-
-#include "vcsbaseoptionspage.h"
-
-#include "vcsbaseclient.h"
-#include "vcsbaseconstants.h"
-
-#include <coreplugin/icore.h>
-#include <coreplugin/iversioncontrol.h>
-
-#include <utils/qtcassert.h>
-
-#include <QCoreApplication>
-
-/*!
- \class VcsBase::VcsBaseOptionsPage
-
- \brief The VcsBaseOptionsPage class is the base class for VCS options pages
- providing a common category and icon.
- */
-
-namespace VcsBase {
-
-VcsClientOptionsPageWidget::VcsClientOptionsPageWidget() = default;
-
-VcsClientOptionsPage::VcsClientOptionsPage(Core::IVersionControl *control, VcsBaseClientSettings *settings,
- QObject *parent) :
- Core::IOptionsPage(parent),
- m_settings(settings)
-{
- QTC_CHECK(m_settings);
- connect(this, &VcsClientOptionsPage::settingsChanged,
- control, &Core::IVersionControl::configurationChanged);
-}
-
-void VcsClientOptionsPage::setWidgetFactory(VcsClientOptionsPage::WidgetFactory factory)
-{
- QTC_ASSERT(!m_factory, return);
- m_factory = factory;
-}
-
-VcsClientOptionsPageWidget *VcsClientOptionsPage::widget()
-{
- QTC_ASSERT(m_factory, return nullptr);
- if (!m_widget)
- m_widget = m_factory();
- QTC_ASSERT(m_widget, return nullptr);
- m_widget->setSettings(*m_settings);
- return m_widget;
-}
-
-void VcsClientOptionsPage::apply()
-{
- QTC_ASSERT(m_widget, return);
- const VcsBaseClientSettings newSettings = m_widget->settings();
- if (*m_settings != newSettings) {
- *m_settings = newSettings;
- emit settingsChanged();
- }
-}
-
-void VcsClientOptionsPage::finish()
-{
- delete m_widget;
- m_widget = nullptr;
-}
-
-} // namespace VcsBase
diff --git a/src/plugins/vcsbase/vcsbaseoptionspage.h b/src/plugins/vcsbase/vcsbaseoptionspage.h
deleted file mode 100644
index c4f5567b6c..0000000000
--- a/src/plugins/vcsbase/vcsbaseoptionspage.h
+++ /dev/null
@@ -1,78 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2016 The Qt Company Ltd.
-** Contact: https://www.qt.io/licensing/
-**
-** This file is part of Qt Creator.
-**
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see https://www.qt.io/terms-conditions. For further
-** information use the contact form at https://www.qt.io/contact-us.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 3 as published by the Free Software
-** Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT
-** included in the packaging of this file. Please review the following
-** information to ensure the GNU General Public License requirements will
-** be met: https://www.gnu.org/licenses/gpl-3.0.html.
-**
-****************************************************************************/
-
-#pragma once
-
-#include "vcsbase_global.h"
-
-#include "vcsbaseclientsettings.h"
-
-#include <coreplugin/dialogs/ioptionspage.h>
-
-#include <functional>
-
-namespace Core { class IVersionControl; }
-
-namespace VcsBase {
-
-class VCSBASE_EXPORT VcsClientOptionsPageWidget : public Core::IOptionsPageWidget
-{
- Q_OBJECT
-
-public:
- VcsClientOptionsPageWidget();
-
- void apply() override {}
-
- virtual void setSettings(const VcsBaseClientSettings &s) = 0;
- virtual VcsBaseClientSettings settings() const = 0;
-};
-
-class VCSBASE_EXPORT VcsClientOptionsPage : public Core::IOptionsPage
-{
- Q_OBJECT
-
-public:
- using WidgetFactory = std::function<VcsClientOptionsPageWidget *()>;
-
- explicit VcsClientOptionsPage(Core::IVersionControl *control, VcsBaseClientSettings *settings, QObject *parent = nullptr);
-
- VcsClientOptionsPageWidget *widget() override;
- void apply() override;
- void finish() override;
-
-signals:
- void settingsChanged();
-
-protected:
- void setWidgetFactory(WidgetFactory factory);
-
-private:
- WidgetFactory m_factory;
- VcsClientOptionsPageWidget *m_widget = nullptr;
- VcsBaseClientSettings *const m_settings;
-};
-
-} // namespace VcsBase