From 3873947c003d9c9789ee76c305a29380241a12af Mon Sep 17 00:00:00 2001 From: hjk Date: Tue, 9 Jan 2024 17:53:12 +0100 Subject: [PATCH] ClassView: Use new setup pattern for navigationwidget factory Change-Id: I4e519d068c1ce85b6aee6e8743104703f6ddda8a Reviewed-by: Jarek Kobus --- .../classviewnavigationwidgetfactory.cpp | 25 ++++++++++++++----- .../classviewnavigationwidgetfactory.h | 12 +-------- src/plugins/classview/classviewplugin.cpp | 2 +- 3 files changed, 21 insertions(+), 18 deletions(-) diff --git a/src/plugins/classview/classviewnavigationwidgetfactory.cpp b/src/plugins/classview/classviewnavigationwidgetfactory.cpp index aa1429fc4b7..827515c7381 100644 --- a/src/plugins/classview/classviewnavigationwidgetfactory.cpp +++ b/src/plugins/classview/classviewnavigationwidgetfactory.cpp @@ -6,16 +6,15 @@ #include "classviewnavigationwidget.h" #include "classviewtr.h" +#include + #include #include #include using namespace Utils; -namespace ClassView { -namespace Internal { - -///////////////////////////////// NavigationWidgetFactory ////////////////////////////////// +namespace ClassView::Internal { /*! \class NavigationWidgetFactory @@ -26,6 +25,16 @@ namespace Internal { removing it from \c ExtensionSystem::PluginManager. */ +class NavigationWidgetFactory final : public Core::INavigationWidgetFactory +{ +public: + NavigationWidgetFactory(); + + Core::NavigationView createWidget() final; + void saveSettings(Utils::QtcSettings *settings, int position, QWidget *widget) final; + void restoreSettings(Utils::QtcSettings *settings, int position, QWidget *widget) final; +}; + NavigationWidgetFactory::NavigationWidgetFactory() { setDisplayName(Tr::tr("Class View")); @@ -70,5 +79,9 @@ void NavigationWidgetFactory::restoreSettings(QtcSettings *settings, int positio pw->setFlatMode(settings->value(settingsGroup, false).toBool()); } -} // namespace Internal -} // namespace ClassView +void setupClassViewNavigationWidgetFactory() +{ + static NavigationWidgetFactory theNavigationWidgetFactory; +} + +} // ClassView::Internal diff --git a/src/plugins/classview/classviewnavigationwidgetfactory.h b/src/plugins/classview/classviewnavigationwidgetfactory.h index 0ec38a4eeeb..c5666860bff 100644 --- a/src/plugins/classview/classviewnavigationwidgetfactory.h +++ b/src/plugins/classview/classviewnavigationwidgetfactory.h @@ -3,18 +3,8 @@ #pragma once -#include - namespace ClassView::Internal { -class NavigationWidgetFactory : public Core::INavigationWidgetFactory -{ -public: - NavigationWidgetFactory(); - - Core::NavigationView createWidget() override; - void saveSettings(Utils::QtcSettings *settings, int position, QWidget *widget) override; - void restoreSettings(Utils::QtcSettings *settings, int position, QWidget *widget) override; -}; +void setupClassViewNavigationWidgetFactory(); } // ClassView::Internal diff --git a/src/plugins/classview/classviewplugin.cpp b/src/plugins/classview/classviewplugin.cpp index e65e6c1e9ea..24b4cdea62e 100644 --- a/src/plugins/classview/classviewplugin.cpp +++ b/src/plugins/classview/classviewplugin.cpp @@ -22,7 +22,6 @@ namespace Internal { class ClassViewPluginPrivate { public: - NavigationWidgetFactory navigationWidgetFactory; Manager manager; }; @@ -36,6 +35,7 @@ ClassViewPlugin::~ClassViewPlugin() void ClassViewPlugin::initialize() { + setupClassViewNavigationWidgetFactory(); dd = new ClassViewPluginPrivate; }