diff options
author | hjk <hjk@qt.io> | 2020-01-24 11:19:04 +0100 |
---|---|---|
committer | hjk <hjk@qt.io> | 2020-01-24 11:40:49 +0000 |
commit | 866f3aeb4ad20299e482b76bd94f062ef93c7e9e (patch) | |
tree | ce5718a200156b988693a4fbc3252c9c63bcff42 /src/plugins/vcsbase | |
parent | ba5c0323fa14dfec7fa789f048e3d8d001819024 (diff) |
Vcs: Pass settings handles to settings pages more directly
Change-Id: I5fdec80de5678dd544713fc18335cbd805d7b9f4
Reviewed-by: Orgad Shaneh <orgads@gmail.com>
Diffstat (limited to 'src/plugins/vcsbase')
-rw-r--r-- | src/plugins/vcsbase/vcsbaseoptionspage.cpp | 13 | ||||
-rw-r--r-- | src/plugins/vcsbase/vcsbaseoptionspage.h | 8 |
2 files changed, 8 insertions, 13 deletions
diff --git a/src/plugins/vcsbase/vcsbaseoptionspage.cpp b/src/plugins/vcsbase/vcsbaseoptionspage.cpp index 73c9ebb232..2d2ea962eb 100644 --- a/src/plugins/vcsbase/vcsbaseoptionspage.cpp +++ b/src/plugins/vcsbase/vcsbaseoptionspage.cpp @@ -46,12 +46,12 @@ namespace VcsBase { VcsClientOptionsPageWidget::VcsClientOptionsPageWidget() = default; -VcsClientOptionsPage::VcsClientOptionsPage(Core::IVersionControl *control, VcsBaseClientImpl *client, +VcsClientOptionsPage::VcsClientOptionsPage(Core::IVersionControl *control, VcsBaseClientSettings *settings, QObject *parent) : Core::IOptionsPage(parent), - m_client(client) + m_settings(settings) { - QTC_CHECK(m_client); + QTC_CHECK(m_settings); connect(this, &VcsClientOptionsPage::settingsChanged, control, &Core::IVersionControl::configurationChanged); } @@ -68,7 +68,7 @@ VcsClientOptionsPageWidget *VcsClientOptionsPage::widget() if (!m_widget) m_widget = m_factory(); QTC_ASSERT(m_widget, return nullptr); - m_widget->setSettings(m_client->settings()); + m_widget->setSettings(*m_settings); return m_widget; } @@ -76,9 +76,8 @@ void VcsClientOptionsPage::apply() { QTC_ASSERT(m_widget, return); const VcsBaseClientSettings newSettings = m_widget->settings(); - VcsBaseClientSettings &s = m_client->settings(); - if (s != newSettings) { - s = newSettings; + if (*m_settings != newSettings) { + *m_settings = newSettings; emit settingsChanged(); } } diff --git a/src/plugins/vcsbase/vcsbaseoptionspage.h b/src/plugins/vcsbase/vcsbaseoptionspage.h index 53c11a8946..c4f5567b6c 100644 --- a/src/plugins/vcsbase/vcsbaseoptionspage.h +++ b/src/plugins/vcsbase/vcsbaseoptionspage.h @@ -31,16 +31,12 @@ #include <coreplugin/dialogs/ioptionspage.h> -#include <QWidget> - #include <functional> namespace Core { class IVersionControl; } namespace VcsBase { -class VcsBaseClientImpl; - class VCSBASE_EXPORT VcsClientOptionsPageWidget : public Core::IOptionsPageWidget { Q_OBJECT @@ -61,7 +57,7 @@ class VCSBASE_EXPORT VcsClientOptionsPage : public Core::IOptionsPage public: using WidgetFactory = std::function<VcsClientOptionsPageWidget *()>; - explicit VcsClientOptionsPage(Core::IVersionControl *control, VcsBaseClientImpl *client, QObject *parent = nullptr); + explicit VcsClientOptionsPage(Core::IVersionControl *control, VcsBaseClientSettings *settings, QObject *parent = nullptr); VcsClientOptionsPageWidget *widget() override; void apply() override; @@ -76,7 +72,7 @@ protected: private: WidgetFactory m_factory; VcsClientOptionsPageWidget *m_widget = nullptr; - VcsBaseClientImpl *const m_client; + VcsBaseClientSettings *const m_settings; }; } // namespace VcsBase |