ClassView: Use new setup pattern for navigationwidget factory

Change-Id: I4e519d068c1ce85b6aee6e8743104703f6ddda8a
Reviewed-by: Jarek Kobus <jaroslaw.kobus@qt.io>
This commit is contained in:
hjk
2024-01-09 17:53:12 +01:00
parent 31702189be
commit 3873947c00
3 changed files with 21 additions and 18 deletions

View File

@@ -6,16 +6,15 @@
#include "classviewnavigationwidget.h"
#include "classviewtr.h"
#include <coreplugin/inavigationwidgetfactory.h>
#include <utils/qtcassert.h>
#include <utils/qtcsettings.h>
#include <utils/store.h>
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

View File

@@ -3,18 +3,8 @@
#pragma once
#include <coreplugin/inavigationwidgetfactory.h>
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

View File

@@ -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;
}