From e9673e7ea583effa9a4221cd3bb73eff79ba329b Mon Sep 17 00:00:00 2001 From: hjk Date: Thu, 1 Feb 2024 17:38:49 +0100 Subject: [PATCH] Squish: Use setup function for ObjectsMapEditor Change-Id: I355567a863b718f7a058421d2fafb81837208254 Reviewed-by: Christian Stenger --- src/plugins/squish/objectsmapeditor.cpp | 39 +++++++++++++++---------- src/plugins/squish/objectsmapeditor.h | 8 +---- src/plugins/squish/squishplugin.cpp | 3 +- 3 files changed, 27 insertions(+), 23 deletions(-) diff --git a/src/plugins/squish/objectsmapeditor.cpp b/src/plugins/squish/objectsmapeditor.cpp index 994d57f5325..bb62e910c2b 100644 --- a/src/plugins/squish/objectsmapeditor.cpp +++ b/src/plugins/squish/objectsmapeditor.cpp @@ -9,10 +9,13 @@ #include "squishtr.h" #include +#include + +using namespace Core; namespace Squish::Internal { -class ObjectsMapEditor : public Core::IEditor +class ObjectsMapEditor final : public IEditor { public: ObjectsMapEditor(std::shared_ptr document) @@ -21,26 +24,32 @@ public: setWidget(new ObjectsMapEditorWidget(m_document.get())); setDuplicateSupported(true); } - ~ObjectsMapEditor() override { delete m_widget; } + ~ObjectsMapEditor() final { delete m_widget; } private: - Core::IDocument *document() const override { return m_document.get(); } - QWidget *toolBar() override { return nullptr; } - Core::IEditor *duplicate() override { return new ObjectsMapEditor(m_document); } + IDocument *document() const override { return m_document.get(); } + QWidget *toolBar() final { return nullptr; } + IEditor *duplicate() final { return new ObjectsMapEditor(m_document); } std::shared_ptr m_document; }; - -// Factory - -ObjectsMapEditorFactory::ObjectsMapEditorFactory() +class ObjectsMapEditorFactory final : public IEditorFactory { - setId(Constants::OBJECTSMAP_EDITOR_ID); - setDisplayName(Tr::tr("Squish Object Map Editor")); - addMimeType(Constants::SQUISH_OBJECTSMAP_MIMETYPE); - setEditorCreator([] { - return new ObjectsMapEditor(std::shared_ptr(new ObjectsMapDocument)); - }); +public: + ObjectsMapEditorFactory() + { + setId(Constants::OBJECTSMAP_EDITOR_ID); + setDisplayName(Tr::tr("Squish Object Map Editor")); + addMimeType(Constants::SQUISH_OBJECTSMAP_MIMETYPE); + setEditorCreator([] { + return new ObjectsMapEditor(std::shared_ptr(new ObjectsMapDocument)); + }); + } +}; + +void setupObjectsMapEditor() +{ + static ObjectsMapEditorFactory theObjectsMapEditorFactory; } } // Squish::Internal diff --git a/src/plugins/squish/objectsmapeditor.h b/src/plugins/squish/objectsmapeditor.h index 672e1016373..1c76df4e9e9 100644 --- a/src/plugins/squish/objectsmapeditor.h +++ b/src/plugins/squish/objectsmapeditor.h @@ -3,14 +3,8 @@ #pragma once -#include - namespace Squish::Internal { -class ObjectsMapEditorFactory : public Core::IEditorFactory -{ -public: - ObjectsMapEditorFactory(); -}; +void setupObjectsMapEditor(); } // Squish::Internal diff --git a/src/plugins/squish/squishplugin.cpp b/src/plugins/squish/squishplugin.cpp index 75707657b44..ada95786e7d 100644 --- a/src/plugins/squish/squishplugin.cpp +++ b/src/plugins/squish/squishplugin.cpp @@ -39,7 +39,6 @@ public: bool initializeGlobalScripts(); - ObjectsMapEditorFactory m_objectsMapEditorFactory; SquishOutputPane m_outputPane; SquishTools m_squishTools; }; @@ -105,6 +104,8 @@ class SquishPlugin final : public ExtensionSystem::IPlugin private: void initialize() final { + setupObjectsMapEditor(); + d.reset(new SquishPluginPrivate); setupSquishWizardPages();