diff options
| author | hjk <hjk@qt.io> | 2020-01-16 14:50:30 +0100 |
|---|---|---|
| committer | hjk <hjk@qt.io> | 2020-01-20 09:15:52 +0000 |
| commit | 1c99cc296f66f8cb9d4c9335eaf5600d50c8e28e (patch) | |
| tree | 384d4877a7b13b9dbfbb222825abcf642d71c476 /src | |
| parent | 96ac659e740f9671758918a44e3143c5a7d152af (diff) | |
| download | qt-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.cpp | 48 | ||||
| -rw-r--r-- | src/plugins/mercurial/optionspage.h | 6 |
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); |
