From e0072ec165fc12c45718b154512a3268ae66a818 Mon Sep 17 00:00:00 2001 From: hjk Date: Fri, 24 Jan 2020 10:13:02 +0100 Subject: [PATCH] Vcs: Move settings ownership from VcsBaseClientImpl to plugin Turns out CVS and Bazaar already had an unused copy there... Change-Id: I512c4d6322620e2b55d9008600ac676ce09032aa Reviewed-by: Orgad Shaneh --- src/plugins/bazaar/bazaarclient.cpp | 10 +++++----- src/plugins/bazaar/bazaarclient.h | 2 +- src/plugins/bazaar/bazaarplugin.cpp | 2 +- src/plugins/cvs/cvsclient.cpp | 6 +++--- src/plugins/cvs/cvsclient.h | 2 +- src/plugins/cvs/cvsplugin.cpp | 2 +- src/plugins/mercurial/mercurialclient.cpp | 2 +- src/plugins/mercurial/mercurialclient.h | 2 +- src/plugins/mercurial/mercurialplugin.cpp | 2 +- src/plugins/mercurial/mercurialplugin.h | 1 + src/plugins/subversion/subversionclient.cpp | 6 +++--- src/plugins/subversion/subversionclient.h | 3 ++- src/plugins/subversion/subversionplugin.cpp | 2 +- src/plugins/subversion/subversionplugin.h | 1 + src/plugins/vcsbase/vcsbaseclient.cpp | 5 ----- src/plugins/vcsbase/vcsbaseclient.h | 2 +- 16 files changed, 24 insertions(+), 26 deletions(-) diff --git a/src/plugins/bazaar/bazaarclient.cpp b/src/plugins/bazaar/bazaarclient.cpp index d56e39534f7..f3c2d35c000 100644 --- a/src/plugins/bazaar/bazaarclient.cpp +++ b/src/plugins/bazaar/bazaarclient.cpp @@ -101,13 +101,13 @@ public: } }; -BazaarClient::BazaarClient() : VcsBaseClient(new BazaarSettings) +BazaarClient::BazaarClient(BazaarSettings *settings) : VcsBaseClient(settings) { - setDiffConfigCreator([this](QToolBar *toolBar) { - return new BazaarDiffConfig(settings(), toolBar); + setDiffConfigCreator([settings](QToolBar *toolBar) { + return new BazaarDiffConfig(*settings, toolBar); }); - setLogConfigCreator([this](QToolBar *toolBar) { - return new BazaarLogConfig(settings(), toolBar); + setLogConfigCreator([settings](QToolBar *toolBar) { + return new BazaarLogConfig(*settings, toolBar); }); } diff --git a/src/plugins/bazaar/bazaarclient.h b/src/plugins/bazaar/bazaarclient.h index 78d1ca5b35b..5d45dd0c4c3 100644 --- a/src/plugins/bazaar/bazaarclient.h +++ b/src/plugins/bazaar/bazaarclient.h @@ -40,7 +40,7 @@ class BazaarClient : public VcsBase::VcsBaseClient Q_OBJECT public: - BazaarClient(); + explicit BazaarClient(BazaarSettings *settings); bool synchronousSetUserId(); BranchInfo synchronousBranchQuery(const QString &repositoryRoot) const; diff --git a/src/plugins/bazaar/bazaarplugin.cpp b/src/plugins/bazaar/bazaarplugin.cpp index 7db4b212d73..230269b38a0 100644 --- a/src/plugins/bazaar/bazaarplugin.cpp +++ b/src/plugins/bazaar/bazaarplugin.cpp @@ -162,7 +162,7 @@ BazaarPluginPrivate::BazaarPluginPrivate() Context context(Constants::BAZAAR_CONTEXT); - m_client = new BazaarClient; + m_client = new BazaarClient(&m_bazaarSettings); auto vcsCtrl = new BazaarControl(m_client); initializeVcs(vcsCtrl, context); diff --git a/src/plugins/cvs/cvsclient.cpp b/src/plugins/cvs/cvsclient.cpp index 95a5697e96d..a6fd2d09ff1 100644 --- a/src/plugins/cvs/cvsclient.cpp +++ b/src/plugins/cvs/cvsclient.cpp @@ -73,10 +73,10 @@ QStringList CvsDiffConfig::arguments() const return args; } -CvsClient::CvsClient() : VcsBaseClient(new CvsSettings) +CvsClient::CvsClient(CvsSettings *settings) : VcsBaseClient(settings) { - setDiffConfigCreator([this](QToolBar *toolBar) { - return new CvsDiffConfig(settings(), toolBar); + setDiffConfigCreator([settings](QToolBar *toolBar) { + return new CvsDiffConfig(*settings, toolBar); }); } diff --git a/src/plugins/cvs/cvsclient.h b/src/plugins/cvs/cvsclient.h index 5720847f81f..7c854749887 100644 --- a/src/plugins/cvs/cvsclient.h +++ b/src/plugins/cvs/cvsclient.h @@ -39,7 +39,7 @@ class CvsClient : public VcsBase::VcsBaseClient Q_OBJECT public: - CvsClient(); + explicit CvsClient(CvsSettings *settings); CvsSettings &settings() const; void diff(const QString &workingDir, const QStringList &files, diff --git a/src/plugins/cvs/cvsplugin.cpp b/src/plugins/cvs/cvsplugin.cpp index f9445e617ec..cb21788acb2 100644 --- a/src/plugins/cvs/cvsplugin.cpp +++ b/src/plugins/cvs/cvsplugin.cpp @@ -218,7 +218,7 @@ CvsPluginPrivate::CvsPluginPrivate() auto vcsCtrl = new CvsControl(this); initializeVcs(vcsCtrl, context); - m_client = new CvsClient; + m_client = new CvsClient(&m_settings); new SettingsPage(versionControl(), this); diff --git a/src/plugins/mercurial/mercurialclient.cpp b/src/plugins/mercurial/mercurialclient.cpp index 92037899f68..a9ecc54a005 100644 --- a/src/plugins/mercurial/mercurialclient.cpp +++ b/src/plugins/mercurial/mercurialclient.cpp @@ -141,7 +141,7 @@ public: ///////////////////////////////////////////////////////////// -MercurialClient::MercurialClient() : VcsBaseClient(new MercurialSettings) +MercurialClient::MercurialClient(MercurialSettings *settings) : VcsBaseClient(settings) { } diff --git a/src/plugins/mercurial/mercurialclient.h b/src/plugins/mercurial/mercurialclient.h index ce317dcfa91..4722a4f3b54 100644 --- a/src/plugins/mercurial/mercurialclient.h +++ b/src/plugins/mercurial/mercurialclient.h @@ -40,7 +40,7 @@ class MercurialClient : public VcsBase::VcsBaseClient { Q_OBJECT public: - MercurialClient(); + explicit MercurialClient(MercurialSettings *settings); bool synchronousClone(const QString &workingDir, const QString &srcLocation, diff --git a/src/plugins/mercurial/mercurialplugin.cpp b/src/plugins/mercurial/mercurialplugin.cpp index 4e6296228d7..062c3d79d8c 100644 --- a/src/plugins/mercurial/mercurialplugin.cpp +++ b/src/plugins/mercurial/mercurialplugin.cpp @@ -140,7 +140,7 @@ MercurialPluginPrivate::MercurialPluginPrivate() dd = this; Core::Context context(Constants::MERCURIAL_CONTEXT); - m_client = new MercurialClient; + m_client = new MercurialClient(&m_settings); auto vc = new MercurialControl(m_client); initializeVcs(vc, context); diff --git a/src/plugins/mercurial/mercurialplugin.h b/src/plugins/mercurial/mercurialplugin.h index 8964ba4e716..923fa6b842f 100644 --- a/src/plugins/mercurial/mercurialplugin.h +++ b/src/plugins/mercurial/mercurialplugin.h @@ -111,6 +111,7 @@ private: void createRepositoryActions(const Core::Context &context); // Variables + MercurialSettings m_settings; OptionsPage *optionsPage = nullptr; MercurialClient *m_client = nullptr; diff --git a/src/plugins/subversion/subversionclient.cpp b/src/plugins/subversion/subversionclient.cpp index c2d7744939f..c58b5ec779c 100644 --- a/src/plugins/subversion/subversionclient.cpp +++ b/src/plugins/subversion/subversionclient.cpp @@ -69,10 +69,10 @@ public: } }; -SubversionClient::SubversionClient() : VcsBaseClient(new SubversionSettings) +SubversionClient::SubversionClient(SubversionSettings *settings) : VcsBaseClient(settings) { - setLogConfigCreator([this](QToolBar *toolBar) { - return new SubversionLogConfig(settings(), toolBar); + setLogConfigCreator([settings](QToolBar *toolBar) { + return new SubversionLogConfig(*settings, toolBar); }); } diff --git a/src/plugins/subversion/subversionclient.h b/src/plugins/subversion/subversionclient.h index aa11695e9b9..b08f0de41f3 100644 --- a/src/plugins/subversion/subversionclient.h +++ b/src/plugins/subversion/subversionclient.h @@ -35,13 +35,14 @@ namespace Subversion { namespace Internal { class SubversionDiffEditorController; +class SubversionSettings; class SubversionClient : public VcsBase::VcsBaseClient { Q_OBJECT public: - SubversionClient(); + SubversionClient(SubversionSettings *settings); bool doCommit(const QString &repositoryRoot, const QStringList &files, diff --git a/src/plugins/subversion/subversionplugin.cpp b/src/plugins/subversion/subversionplugin.cpp index bd55af03c9f..4b83b602f1e 100644 --- a/src/plugins/subversion/subversionplugin.cpp +++ b/src/plugins/subversion/subversionplugin.cpp @@ -229,7 +229,7 @@ SubversionPluginPrivate::SubversionPluginPrivate() : auto vcsCtrl = new SubversionControl(this); initializeVcs(vcsCtrl, context); - m_client = new SubversionClient; + m_client = new SubversionClient(&m_settings); new SettingsPage(versionControl(), this); diff --git a/src/plugins/subversion/subversionplugin.h b/src/plugins/subversion/subversionplugin.h index 1988efb7aab..de8d19dbb49 100644 --- a/src/plugins/subversion/subversionplugin.h +++ b/src/plugins/subversion/subversionplugin.h @@ -138,6 +138,7 @@ private: const QStringList m_svnDirectories; + SubversionSettings m_settings; SubversionClient *m_client = nullptr; QString m_commitMessageFileName; QString m_commitRepository; diff --git a/src/plugins/vcsbase/vcsbaseclient.cpp b/src/plugins/vcsbase/vcsbaseclient.cpp index 25358a761ee..625009fb76a 100644 --- a/src/plugins/vcsbase/vcsbaseclient.cpp +++ b/src/plugins/vcsbase/vcsbaseclient.cpp @@ -81,11 +81,6 @@ VcsBaseClientImpl::VcsBaseClientImpl(VcsBaseClientSettings *settings) : this, &VcsBaseClientImpl::saveSettings); } -VcsBaseClientImpl::~VcsBaseClientImpl() -{ - delete m_clientSettings; -} - VcsBaseClientSettings &VcsBaseClientImpl::settings() const { return *m_clientSettings; diff --git a/src/plugins/vcsbase/vcsbaseclient.h b/src/plugins/vcsbase/vcsbaseclient.h index 463a4ee9394..5aecf564b6c 100644 --- a/src/plugins/vcsbase/vcsbaseclient.h +++ b/src/plugins/vcsbase/vcsbaseclient.h @@ -60,7 +60,7 @@ class VCSBASE_EXPORT VcsBaseClientImpl : public QObject public: explicit VcsBaseClientImpl(VcsBaseClientSettings *settings); - ~VcsBaseClientImpl() override; + ~VcsBaseClientImpl() override = default; VcsBaseClientSettings &settings() const;