From 43113470a45094d664a8580597d6e04c44a89e13 Mon Sep 17 00:00:00 2001 From: hjk Date: Wed, 15 Jan 2020 14:32:19 +0100 Subject: [PATCH] Vcs: Dissolve VcsBaseOptionsPage intermediate hierarchy level It's effectively setting only three properties nowadays, not enough to justify a case of reuse-by-inheritance anymore. Change-Id: Ia0aedbd0dc460a70bed580a3402cf928c7221a77 Reviewed-by: Orgad Shaneh --- src/plugins/clearcase/settingspage.cpp | 5 ++++- src/plugins/clearcase/settingspage.h | 4 ++-- src/plugins/cvs/settingspage.cpp | 1 + src/plugins/git/gerrit/gerritoptionspage.cpp | 5 ++++- src/plugins/git/gerrit/gerritoptionspage.h | 5 ++--- src/plugins/git/settingspage.cpp | 1 + src/plugins/mercurial/optionspage.cpp | 1 + src/plugins/perforce/settingspage.cpp | 3 ++- src/plugins/perforce/settingspage.h | 6 ++---- src/plugins/subversion/settingspage.cpp | 1 + src/plugins/vcsbase/commonsettingspage.cpp | 6 +++++- src/plugins/vcsbase/commonsettingspage.h | 5 ++--- src/plugins/vcsbase/vcsbaseoptionspage.cpp | 11 +---------- src/plugins/vcsbase/vcsbaseoptionspage.h | 9 +-------- 14 files changed, 29 insertions(+), 34 deletions(-) diff --git a/src/plugins/clearcase/settingspage.cpp b/src/plugins/clearcase/settingspage.cpp index 66808b8d583..723aa2a8e4b 100644 --- a/src/plugins/clearcase/settingspage.cpp +++ b/src/plugins/clearcase/settingspage.cpp @@ -32,6 +32,8 @@ #include +#include + #include #include #include @@ -119,10 +121,11 @@ void SettingsPageWidget::apply() } ClearCaseSettingsPage::ClearCaseSettingsPage(QObject *parent) - : VcsBaseOptionsPage(parent) + : Core::IOptionsPage(parent) { setId(ClearCase::Constants::VCS_ID_CLEARCASE); setDisplayName(tr("ClearCase")); + setCategory(VcsBase::Constants::VCS_SETTINGS_CATEGORY); setWidgetCreator([] { return new SettingsPageWidget; }); } diff --git a/src/plugins/clearcase/settingspage.h b/src/plugins/clearcase/settingspage.h index 726798c5e62..ee1c3596d2b 100644 --- a/src/plugins/clearcase/settingspage.h +++ b/src/plugins/clearcase/settingspage.h @@ -26,12 +26,12 @@ #pragma once -#include +#include namespace ClearCase { namespace Internal { -class ClearCaseSettingsPage : public VcsBase::VcsBaseOptionsPage +class ClearCaseSettingsPage final : public Core::IOptionsPage { public: explicit ClearCaseSettingsPage(QObject *parent); diff --git a/src/plugins/cvs/settingspage.cpp b/src/plugins/cvs/settingspage.cpp index 4914e53d82d..ec89dbd9cf9 100644 --- a/src/plugins/cvs/settingspage.cpp +++ b/src/plugins/cvs/settingspage.cpp @@ -92,6 +92,7 @@ SettingsPage::SettingsPage(Core::IVersionControl *control, QObject *parent) : { setId(VcsBase::Constants::VCS_ID_CVS); setDisplayName(SettingsPageWidget::tr("CVS")); + setCategory(VcsBase::Constants::VCS_SETTINGS_CATEGORY); setWidgetFactory([] { return new SettingsPageWidget; }); } diff --git a/src/plugins/git/gerrit/gerritoptionspage.cpp b/src/plugins/git/gerrit/gerritoptionspage.cpp index 730080d66f5..21d273312c1 100644 --- a/src/plugins/git/gerrit/gerritoptionspage.cpp +++ b/src/plugins/git/gerrit/gerritoptionspage.cpp @@ -30,6 +30,8 @@ #include #include +#include + #include #include #include @@ -40,11 +42,12 @@ namespace Internal { GerritOptionsPage::GerritOptionsPage(const QSharedPointer &p, QObject *parent) - : VcsBase::VcsBaseOptionsPage(parent) + : Core::IOptionsPage(parent) , m_parameters(p) { setId("Gerrit"); setDisplayName(tr("Gerrit")); + setCategory(VcsBase::Constants::VCS_SETTINGS_CATEGORY); } GerritOptionsPage::~GerritOptionsPage() diff --git a/src/plugins/git/gerrit/gerritoptionspage.h b/src/plugins/git/gerrit/gerritoptionspage.h index ae2b4776cfc..9388354ab14 100644 --- a/src/plugins/git/gerrit/gerritoptionspage.h +++ b/src/plugins/git/gerrit/gerritoptionspage.h @@ -25,9 +25,8 @@ #pragma once -#include +#include -#include #include #include @@ -61,7 +60,7 @@ private: QCheckBox *m_httpsCheckBox; }; -class GerritOptionsPage : public VcsBase::VcsBaseOptionsPage +class GerritOptionsPage : public Core::IOptionsPage { Q_OBJECT diff --git a/src/plugins/git/settingspage.cpp b/src/plugins/git/settingspage.cpp index 6fbc3df22ab..2e54beb2b95 100644 --- a/src/plugins/git/settingspage.cpp +++ b/src/plugins/git/settingspage.cpp @@ -128,6 +128,7 @@ SettingsPage::SettingsPage(Core::IVersionControl *control, QObject *parent) : { setId(VcsBase::Constants::VCS_ID_GIT); setDisplayName(SettingsPageWidget::tr("Git")); + setCategory(VcsBase::Constants::VCS_SETTINGS_CATEGORY); setWidgetFactory([] { return new SettingsPageWidget; }); } diff --git a/src/plugins/mercurial/optionspage.cpp b/src/plugins/mercurial/optionspage.cpp index 592e2596362..a08ca7d4dc4 100644 --- a/src/plugins/mercurial/optionspage.cpp +++ b/src/plugins/mercurial/optionspage.cpp @@ -87,6 +87,7 @@ OptionsPage::OptionsPage(Core::IVersionControl *control, QObject *parent) : { setId(VcsBase::Constants::VCS_ID_MERCURIAL); setDisplayName(OptionsPageWidget::tr("Mercurial")); + setCategory(VcsBase::Constants::VCS_SETTINGS_CATEGORY); setWidgetFactory([] { return new OptionsPageWidget; }); } diff --git a/src/plugins/perforce/settingspage.cpp b/src/plugins/perforce/settingspage.cpp index 933ea07b80c..d8f15930f4d 100644 --- a/src/plugins/perforce/settingspage.cpp +++ b/src/plugins/perforce/settingspage.cpp @@ -118,10 +118,11 @@ void SettingsPageWidget::setStatusError(const QString &t) } SettingsPage::SettingsPage(QObject *parent) - : VcsBaseOptionsPage(parent) + : Core::IOptionsPage(parent) { setId(VcsBase::Constants::VCS_ID_PERFORCE); setDisplayName(tr("Perforce")); + setCategory(VcsBase::Constants::VCS_SETTINGS_CATEGORY); } SettingsPage::~SettingsPage() diff --git a/src/plugins/perforce/settingspage.h b/src/plugins/perforce/settingspage.h index dbd5b64d7e7..c3b5c6bb414 100644 --- a/src/plugins/perforce/settingspage.h +++ b/src/plugins/perforce/settingspage.h @@ -25,9 +25,7 @@ #pragma once -#include - -#include +#include #include "ui_settingspage.h" @@ -59,7 +57,7 @@ private: PerforceChecker *m_checker = nullptr; }; -class SettingsPage : public VcsBase::VcsBaseOptionsPage +class SettingsPage : public Core::IOptionsPage { Q_OBJECT diff --git a/src/plugins/subversion/settingspage.cpp b/src/plugins/subversion/settingspage.cpp index 225181f13ac..1718e54182e 100644 --- a/src/plugins/subversion/settingspage.cpp +++ b/src/plugins/subversion/settingspage.cpp @@ -101,6 +101,7 @@ SettingsPage::SettingsPage(Core::IVersionControl *control, QObject *parent) : { setId(VcsBase::Constants::VCS_ID_SUBVERSION); setDisplayName(SettingsPageWidget::tr("Subversion")); + setCategory(VcsBase::Constants::VCS_SETTINGS_CATEGORY); setWidgetFactory([] { return new SettingsPageWidget; }); } diff --git a/src/plugins/vcsbase/commonsettingspage.cpp b/src/plugins/vcsbase/commonsettingspage.cpp index ab907437bd9..ebfd1fa008a 100644 --- a/src/plugins/vcsbase/commonsettingspage.cpp +++ b/src/plugins/vcsbase/commonsettingspage.cpp @@ -103,12 +103,16 @@ void CommonSettingsWidget::updatePath() // --------------- VcsBaseSettingsPage CommonOptionsPage::CommonOptionsPage(QObject *parent) : - VcsBaseOptionsPage(parent) + Core::IOptionsPage(parent) { m_settings.fromSettings(Core::ICore::settings()); setId(Constants::VCS_COMMON_SETTINGS_ID); setDisplayName(QCoreApplication::translate("VcsBase", Constants::VCS_COMMON_SETTINGS_NAME)); + setCategory(Constants::VCS_SETTINGS_CATEGORY); + // The following act as blueprint for other pages in the same category: + setDisplayCategory(QCoreApplication::translate("VcsBase", "Version Control")); + setCategoryIconPath(":/vcsbase/images/settingscategory_vcs.png"); } QWidget *CommonOptionsPage::widget() diff --git a/src/plugins/vcsbase/commonsettingspage.h b/src/plugins/vcsbase/commonsettingspage.h index 5504856dc44..ffb859ed611 100644 --- a/src/plugins/vcsbase/commonsettingspage.h +++ b/src/plugins/vcsbase/commonsettingspage.h @@ -27,10 +27,9 @@ #include "commonvcssettings.h" -#include "vcsbaseoptionspage.h" +#include #include -#include namespace VcsBase { namespace Internal { @@ -54,7 +53,7 @@ private: Ui::CommonSettingsPage *m_ui; }; -class CommonOptionsPage : public VcsBaseOptionsPage +class CommonOptionsPage final : public Core::IOptionsPage { Q_OBJECT diff --git a/src/plugins/vcsbase/vcsbaseoptionspage.cpp b/src/plugins/vcsbase/vcsbaseoptionspage.cpp index a1c825e5d74..73c9ebb232c 100644 --- a/src/plugins/vcsbase/vcsbaseoptionspage.cpp +++ b/src/plugins/vcsbase/vcsbaseoptionspage.cpp @@ -44,20 +44,11 @@ namespace VcsBase { -VcsBaseOptionsPage::VcsBaseOptionsPage(QObject *parent) : Core::IOptionsPage(parent) -{ - setCategory(Constants::VCS_SETTINGS_CATEGORY); - setDisplayCategory(QCoreApplication::translate("VcsBase", "Version Control")); - setCategoryIconPath(":/vcsbase/images/settingscategory_vcs.png"); -} - -VcsBaseOptionsPage::~VcsBaseOptionsPage() = default; - VcsClientOptionsPageWidget::VcsClientOptionsPageWidget() = default; VcsClientOptionsPage::VcsClientOptionsPage(Core::IVersionControl *control, VcsBaseClientImpl *client, QObject *parent) : - VcsBaseOptionsPage(parent), + Core::IOptionsPage(parent), m_client(client) { QTC_CHECK(m_client); diff --git a/src/plugins/vcsbase/vcsbaseoptionspage.h b/src/plugins/vcsbase/vcsbaseoptionspage.h index d03037b8e5a..53c11a89463 100644 --- a/src/plugins/vcsbase/vcsbaseoptionspage.h +++ b/src/plugins/vcsbase/vcsbaseoptionspage.h @@ -39,13 +39,6 @@ namespace Core { class IVersionControl; } namespace VcsBase { -class VCSBASE_EXPORT VcsBaseOptionsPage : public Core::IOptionsPage -{ -public: - explicit VcsBaseOptionsPage(QObject *parent = nullptr); - ~VcsBaseOptionsPage() override; -}; - class VcsBaseClientImpl; class VCSBASE_EXPORT VcsClientOptionsPageWidget : public Core::IOptionsPageWidget @@ -61,7 +54,7 @@ public: virtual VcsBaseClientSettings settings() const = 0; }; -class VCSBASE_EXPORT VcsClientOptionsPage : public VcsBaseOptionsPage +class VCSBASE_EXPORT VcsClientOptionsPage : public Core::IOptionsPage { Q_OBJECT