From e87cd355d388f6734e50c4ff7e62c48c1511fee0 Mon Sep 17 00:00:00 2001 From: hjk Date: Tue, 9 Jan 2024 17:57:30 +0100 Subject: [PATCH] ClassView: Move setup of Manager class closer to new pattern Change-Id: I2b836b839b1b082bdb6507082f689e2ef114eb9c Reviewed-by: Jarek Kobus --- src/plugins/classview/classviewmanager.cpp | 5 +++++ src/plugins/classview/classviewmanager.h | 9 ++++++--- src/plugins/classview/classviewplugin.cpp | 16 ++-------------- 3 files changed, 13 insertions(+), 17 deletions(-) diff --git a/src/plugins/classview/classviewmanager.cpp b/src/plugins/classview/classviewmanager.cpp index ad2f75cf697..522b039a5bd 100644 --- a/src/plugins/classview/classviewmanager.cpp +++ b/src/plugins/classview/classviewmanager.cpp @@ -404,4 +404,9 @@ void Manager::setFlatMode(bool flat) }, Qt::QueuedConnection); } +void setupClassViewManager(QObject *guard) +{ + (void) new Manager(guard); +} + } // ClassView::Internal diff --git a/src/plugins/classview/classviewmanager.h b/src/plugins/classview/classviewmanager.h index 68a76e94556..a9bebc7a342 100644 --- a/src/plugins/classview/classviewmanager.h +++ b/src/plugins/classview/classviewmanager.h @@ -13,12 +13,13 @@ namespace ClassView::Internal { class ManagerPrivate; -class Manager : public QObject +class Manager final : public QObject { Q_OBJECT public: - explicit Manager(QObject *parent = nullptr); - ~Manager() override; + explicit Manager(QObject *parent); + ~Manager() final; + static Manager *instance(); bool canFetchMore(QStandardItem *item, bool skipRoot = false) const; @@ -42,4 +43,6 @@ private: ManagerPrivate *d; }; +void setupClassViewManager(QObject *guard); + } // ClassView::Internal diff --git a/src/plugins/classview/classviewplugin.cpp b/src/plugins/classview/classviewplugin.cpp index 24b4cdea62e..d137d606b21 100644 --- a/src/plugins/classview/classviewplugin.cpp +++ b/src/plugins/classview/classviewplugin.cpp @@ -19,24 +19,12 @@ namespace Internal { projects in the sidebar. */ -class ClassViewPluginPrivate -{ -public: - Manager manager; -}; - -static ClassViewPluginPrivate *dd = nullptr; - -ClassViewPlugin::~ClassViewPlugin() -{ - delete dd; - dd = nullptr; -} +ClassViewPlugin::~ClassViewPlugin() = default; void ClassViewPlugin::initialize() { setupClassViewNavigationWidgetFactory(); - dd = new ClassViewPluginPrivate; + setupClassViewManager(this); } } // namespace Internal