summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorhjk <hjk@qt.io>2020-01-16 14:50:30 +0100
committerhjk <hjk@qt.io>2020-01-20 09:15:52 +0000
commit1c99cc296f66f8cb9d4c9335eaf5600d50c8e28e (patch)
tree384d4877a7b13b9dbfbb222825abcf642d71c476 /src
parent96ac659e740f9671758918a44e3143c5a7d152af (diff)
downloadqt-creator-1c99cc296f66f8cb9d4c9335eaf5600d50c8e28e.tar.gz
Mercurial: Remove VcsClientOptionsPage level in settings class hierarchy
Change-Id: Id248a9a9b1054a1b322b2d1cd8a75877323f2b84 Reviewed-by: Orgad Shaneh <orgads@gmail.com>
Diffstat (limited to 'src')
-rw-r--r--src/plugins/mercurial/optionspage.cpp48
-rw-r--r--src/plugins/mercurial/optionspage.h6
2 files changed, 30 insertions, 24 deletions
diff --git a/src/plugins/mercurial/optionspage.cpp b/src/plugins/mercurial/optionspage.cpp
index a08ca7d4dc..6611580ed6 100644
--- a/src/plugins/mercurial/optionspage.cpp
+++ b/src/plugins/mercurial/optionspage.cpp
@@ -40,41 +40,29 @@ using namespace VcsBase;
namespace Mercurial {
namespace Internal {
-class OptionsPageWidget final : public VcsBase::VcsClientOptionsPageWidget
+class OptionsPageWidget final : public Core::IOptionsPageWidget
{
Q_DECLARE_TR_FUNCTIONS(Mercurial::Internal::OptionsPageWidget)
public:
- OptionsPageWidget();
-
- VcsBase::VcsBaseClientSettings settings() const final;
- void setSettings(const VcsBase::VcsBaseClientSettings &s) final;
+ explicit OptionsPageWidget(Core::IVersionControl *control);
+ void apply() final;
private:
Ui::OptionsPage m_ui;
+ Core::IVersionControl *m_control;
};
-OptionsPageWidget::OptionsPageWidget()
+OptionsPageWidget::OptionsPageWidget(Core::IVersionControl *control)
+ : m_control(control)
{
m_ui.setupUi(this);
m_ui.commandChooser->setExpectedKind(Utils::PathChooser::ExistingCommand);
m_ui.commandChooser->setHistoryCompleter(QLatin1String("Mercurial.Command.History"));
m_ui.commandChooser->setPromptDialogTitle(tr("Mercurial Command"));
-}
-VcsBaseClientSettings OptionsPageWidget::settings() const
-{
- MercurialSettings s;
- s.setValue(MercurialSettings::binaryPathKey, m_ui.commandChooser->rawPath());
- s.setValue(MercurialSettings::userNameKey, m_ui.defaultUsernameLineEdit->text().trimmed());
- s.setValue(MercurialSettings::userEmailKey, m_ui.defaultEmailLineEdit->text().trimmed());
- s.setValue(MercurialSettings::logCountKey, m_ui.logEntriesCount->value());
- s.setValue(MercurialSettings::timeoutKey, m_ui.timeout->value());
- return s;
-}
+ const VcsBaseClientSettings &s = MercurialPlugin::client()->settings();
-void OptionsPageWidget::setSettings(const VcsBaseClientSettings &s)
-{
m_ui.commandChooser->setPath(s.stringValue(MercurialSettings::binaryPathKey));
m_ui.defaultUsernameLineEdit->setText(s.stringValue(MercurialSettings::userNameKey));
m_ui.defaultEmailLineEdit->setText(s.stringValue(MercurialSettings::userEmailKey));
@@ -82,13 +70,29 @@ void OptionsPageWidget::setSettings(const VcsBaseClientSettings &s)
m_ui.timeout->setValue(s.intValue(MercurialSettings::timeoutKey));
}
-OptionsPage::OptionsPage(Core::IVersionControl *control, QObject *parent) :
- VcsClientOptionsPage(control, MercurialPlugin::client(), parent)
+void OptionsPageWidget::apply()
+{
+ MercurialSettings ms;
+ ms.setValue(MercurialSettings::binaryPathKey, m_ui.commandChooser->rawPath());
+ ms.setValue(MercurialSettings::userNameKey, m_ui.defaultUsernameLineEdit->text().trimmed());
+ ms.setValue(MercurialSettings::userEmailKey, m_ui.defaultEmailLineEdit->text().trimmed());
+ ms.setValue(MercurialSettings::logCountKey, m_ui.logEntriesCount->value());
+ ms.setValue(MercurialSettings::timeoutKey, m_ui.timeout->value());
+
+ VcsBaseClientSettings &s = MercurialPlugin::client()->settings();
+ if (s != ms) {
+ s = ms;
+ m_control->configurationChanged();
+ }
+}
+
+OptionsPage::OptionsPage(Core::IVersionControl *control, QObject *parent)
+ : Core::IOptionsPage(parent)
{
setId(VcsBase::Constants::VCS_ID_MERCURIAL);
setDisplayName(OptionsPageWidget::tr("Mercurial"));
setCategory(VcsBase::Constants::VCS_SETTINGS_CATEGORY);
- setWidgetFactory([] { return new OptionsPageWidget; });
+ setWidgetCreator([control] { return new OptionsPageWidget(control); });
}
} // namespace Internal
diff --git a/src/plugins/mercurial/optionspage.h b/src/plugins/mercurial/optionspage.h
index 8c3fc42591..0c90f33720 100644
--- a/src/plugins/mercurial/optionspage.h
+++ b/src/plugins/mercurial/optionspage.h
@@ -25,12 +25,14 @@
#pragma once
-#include <vcsbase/vcsbaseoptionspage.h>
+#include <coreplugin/dialogs/ioptionspage.h>
+
+namespace Core { class IVersionControl; }
namespace Mercurial {
namespace Internal {
-class OptionsPage final : public VcsBase::VcsClientOptionsPage
+class OptionsPage final : public Core::IOptionsPage
{
public:
OptionsPage(Core::IVersionControl *control, QObject *parent);