diff options
-rw-r--r-- | src/plugins/cvs/cvsplugin.cpp | 2 | ||||
-rw-r--r-- | src/plugins/cvs/settingspage.cpp | 4 | ||||
-rw-r--r-- | src/plugins/cvs/settingspage.h | 4 | ||||
-rw-r--r-- | src/plugins/git/gitclient.cpp | 2 | ||||
-rw-r--r-- | src/plugins/git/gitclient.h | 2 | ||||
-rw-r--r-- | src/plugins/git/gitplugin.cpp | 4 | ||||
-rw-r--r-- | src/plugins/git/gitplugin.h | 1 | ||||
-rw-r--r-- | src/plugins/git/settingspage.cpp | 4 | ||||
-rw-r--r-- | src/plugins/git/settingspage.h | 4 | ||||
-rw-r--r-- | src/plugins/subversion/settingspage.cpp | 4 | ||||
-rw-r--r-- | src/plugins/subversion/settingspage.h | 4 | ||||
-rw-r--r-- | src/plugins/subversion/subversionplugin.cpp | 2 | ||||
-rw-r--r-- | src/plugins/vcsbase/vcsbaseoptionspage.cpp | 13 | ||||
-rw-r--r-- | src/plugins/vcsbase/vcsbaseoptionspage.h | 8 |
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 |