aboutsummaryrefslogtreecommitdiffstats
path: root/src/plugins/vcsbase
diff options
context:
space:
mode:
authorhjk <hjk@qt.io>2020-01-24 11:19:04 +0100
committerhjk <hjk@qt.io>2020-01-24 11:40:49 +0000
commit866f3aeb4ad20299e482b76bd94f062ef93c7e9e (patch)
treece5718a200156b988693a4fbc3252c9c63bcff42 /src/plugins/vcsbase
parentba5c0323fa14dfec7fa789f048e3d8d001819024 (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.cpp13
-rw-r--r--src/plugins/vcsbase/vcsbaseoptionspage.h8
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