aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--src/plugins/cvs/cvsplugin.cpp2
-rw-r--r--src/plugins/cvs/settingspage.cpp4
-rw-r--r--src/plugins/cvs/settingspage.h4
-rw-r--r--src/plugins/git/gitclient.cpp2
-rw-r--r--src/plugins/git/gitclient.h2
-rw-r--r--src/plugins/git/gitplugin.cpp4
-rw-r--r--src/plugins/git/gitplugin.h1
-rw-r--r--src/plugins/git/settingspage.cpp4
-rw-r--r--src/plugins/git/settingspage.h4
-rw-r--r--src/plugins/subversion/settingspage.cpp4
-rw-r--r--src/plugins/subversion/settingspage.h4
-rw-r--r--src/plugins/subversion/subversionplugin.cpp2
-rw-r--r--src/plugins/vcsbase/vcsbaseoptionspage.cpp13
-rw-r--r--src/plugins/vcsbase/vcsbaseoptionspage.h8
14 files changed, 30 insertions, 28 deletions
diff --git a/src/plugins/cvs/cvsplugin.cpp b/src/plugins/cvs/cvsplugin.cpp
index cb21788acb2..849e252d5ae 100644
--- a/src/plugins/cvs/cvsplugin.cpp
+++ b/src/plugins/cvs/cvsplugin.cpp
@@ -220,7 +220,7 @@ CvsPluginPrivate::CvsPluginPrivate()
m_client = new CvsClient(&m_settings);
- new SettingsPage(versionControl(), this);
+ new SettingsPage(versionControl(), &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 d6a4325f50a..c6419d7e6fe 100644
--- a/src/plugins/cvs/settingspage.cpp
+++ b/src/plugins/cvs/settingspage.cpp
@@ -87,8 +87,8 @@ void SettingsPageWidget::setSettings(const VcsBaseClientSettings &s)
m_ui.describeByCommitIdCheckBox->setChecked(s.boolValue(CvsSettings::describeByCommitIdKey));
}
-SettingsPage::SettingsPage(Core::IVersionControl *control, QObject *parent) :
- VcsClientOptionsPage(control, CvsPluginPrivate::instance()->client(), parent)
+SettingsPage::SettingsPage(Core::IVersionControl *control, CvsSettings *settings, QObject *parent) :
+ VcsClientOptionsPage(control, settings, parent)
{
setId(VcsBase::Constants::VCS_ID_CVS);
setDisplayName(SettingsPageWidget::tr("CVS"));
diff --git a/src/plugins/cvs/settingspage.h b/src/plugins/cvs/settingspage.h
index 6967abad6b9..874762cb741 100644
--- a/src/plugins/cvs/settingspage.h
+++ b/src/plugins/cvs/settingspage.h
@@ -30,10 +30,12 @@
namespace Cvs {
namespace Internal {
+class CvsSettings;
+
class SettingsPage final : public VcsBase::VcsClientOptionsPage
{
public:
- SettingsPage(Core::IVersionControl *control, QObject *parent);
+ SettingsPage(Core::IVersionControl *control, CvsSettings *settings, QObject *parent);
};
} // namespace Cvs
diff --git a/src/plugins/git/gitclient.cpp b/src/plugins/git/gitclient.cpp
index a680b46fc7f..c115ff2afda 100644
--- a/src/plugins/git/gitclient.cpp
+++ b/src/plugins/git/gitclient.cpp
@@ -772,7 +772,7 @@ static inline void msgCannotRun(const QStringList &args, const QString &workingD
// ---------------- GitClient
-GitClient::GitClient() : VcsBase::VcsBaseClientImpl(new GitSettings),
+GitClient::GitClient(GitSettings *settings) : VcsBase::VcsBaseClientImpl(settings),
m_cachedGitVersion(0),
m_disableEditor(false)
{
diff --git a/src/plugins/git/gitclient.h b/src/plugins/git/gitclient.h
index 1d53972f874..6bcdda4d751 100644
--- a/src/plugins/git/gitclient.h
+++ b/src/plugins/git/gitclient.h
@@ -136,7 +136,7 @@ public:
PushAction m_pushAction = NoPush;
};
- explicit GitClient();
+ explicit GitClient(GitSettings *settings);
Utils::FilePath vcsBinary() const override;
unsigned gitVersion(QString *errorMessage = nullptr) const;
diff --git a/src/plugins/git/gitplugin.cpp b/src/plugins/git/gitplugin.cpp
index 9779a5cb458..2ada220ae15 100644
--- a/src/plugins/git/gitplugin.cpp
+++ b/src/plugins/git/gitplugin.cpp
@@ -319,13 +319,13 @@ GitPluginPrivate::GitPluginPrivate()
Context context(Constants::GIT_CONTEXT);
- m_gitClient = new GitClient;
+ m_gitClient = new GitClient(&m_settings);
auto vc = new GitVersionControl(m_gitClient);
initializeVcs(vc, context);
// Create the settings Page
- auto settingsPage = new SettingsPage(vc, this);
+ auto settingsPage = new SettingsPage(vc, &m_settings, this);
connect(settingsPage, &SettingsPage::settingsChanged,
this, &GitPluginPrivate::updateRepositoryBrowserAction);
diff --git a/src/plugins/git/gitplugin.h b/src/plugins/git/gitplugin.h
index 7ea9b34e56e..2d0a92e2fd9 100644
--- a/src/plugins/git/gitplugin.h
+++ b/src/plugins/git/gitplugin.h
@@ -197,6 +197,7 @@ private:
Utils::ParameterAction *m_applyCurrentFilePatchAction = nullptr;
Gerrit::Internal::GerritPlugin *m_gerritPlugin = nullptr;
+ GitSettings m_settings;
GitClient *m_gitClient = nullptr;
QPointer<StashDialog> m_stashDialog;
QPointer<BranchViewFactory> m_branchViewFactory;
diff --git a/src/plugins/git/settingspage.cpp b/src/plugins/git/settingspage.cpp
index 3e2ec951c6a..c5942149c70 100644
--- a/src/plugins/git/settingspage.cpp
+++ b/src/plugins/git/settingspage.cpp
@@ -123,8 +123,8 @@ void SettingsPageWidget::updateNoteField()
// -------- SettingsPage
-SettingsPage::SettingsPage(Core::IVersionControl *control, QObject *parent) :
- VcsClientOptionsPage(control, GitPluginPrivate::client(), parent)
+SettingsPage::SettingsPage(Core::IVersionControl *control, GitSettings *settings, QObject *parent) :
+ VcsClientOptionsPage(control, settings, parent)
{
setId(VcsBase::Constants::VCS_ID_GIT);
setDisplayName(SettingsPageWidget::tr("Git"));
diff --git a/src/plugins/git/settingspage.h b/src/plugins/git/settingspage.h
index f1999ba80a7..2a44f37fdbc 100644
--- a/src/plugins/git/settingspage.h
+++ b/src/plugins/git/settingspage.h
@@ -30,10 +30,12 @@
namespace Git {
namespace Internal {
+class GitSettings;
+
class SettingsPage final : public VcsBase::VcsClientOptionsPage
{
public:
- SettingsPage(Core::IVersionControl *control, QObject *parent);
+ SettingsPage(Core::IVersionControl *control, GitSettings *settings, QObject *parent);
void apply() final;
};
diff --git a/src/plugins/subversion/settingspage.cpp b/src/plugins/subversion/settingspage.cpp
index 8b72b5ae7a0..94b5830ced3 100644
--- a/src/plugins/subversion/settingspage.cpp
+++ b/src/plugins/subversion/settingspage.cpp
@@ -96,8 +96,8 @@ void SettingsPageWidget::setSettings(const VcsBaseClientSettings &s)
m_ui.logCountSpinBox->setValue(s.intValue(SubversionSettings::logCountKey));
}
-SettingsPage::SettingsPage(Core::IVersionControl *control, QObject *parent) :
- VcsClientOptionsPage(control, SubversionPluginPrivate::instance()->client(), parent)
+SettingsPage::SettingsPage(Core::IVersionControl *control, SubversionSettings *settings, QObject *parent) :
+ VcsClientOptionsPage(control, settings, parent)
{
setId(VcsBase::Constants::VCS_ID_SUBVERSION);
setDisplayName(SettingsPageWidget::tr("Subversion"));
diff --git a/src/plugins/subversion/settingspage.h b/src/plugins/subversion/settingspage.h
index 60e1976c246..c8dc438d125 100644
--- a/src/plugins/subversion/settingspage.h
+++ b/src/plugins/subversion/settingspage.h
@@ -30,10 +30,12 @@
namespace Subversion {
namespace Internal {
+class SubversionSettings;
+
class SettingsPage final : public VcsBase::VcsClientOptionsPage
{
public:
- SettingsPage(Core::IVersionControl *control, QObject *parent);
+ SettingsPage(Core::IVersionControl *control, SubversionSettings *settings, QObject *parent);
};
} // namespace Subversion
diff --git a/src/plugins/subversion/subversionplugin.cpp b/src/plugins/subversion/subversionplugin.cpp
index 4b83b602f1e..733f36e21cb 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(), this);
+ new SettingsPage(versionControl(), &m_settings, this);
new VcsSubmitEditorFactory(&submitParameters,
[]() { return new SubversionSubmitEditor(&submitParameters); }, this);
diff --git a/src/plugins/vcsbase/vcsbaseoptionspage.cpp b/src/plugins/vcsbase/vcsbaseoptionspage.cpp
index 73c9ebb232c..2d2ea962eb7 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 53c11a89463..c4f5567b6cd 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