diff options
author | hjk <hjk@qt.io> | 2020-01-23 09:39:52 +0100 |
---|---|---|
committer | hjk <hjk@qt.io> | 2020-01-27 06:45:09 +0000 |
commit | 5ea999402c1bade6a1959e661d5b2967db142dcb (patch) | |
tree | 51385111761767662d549662b87c3c5c4ff05338 /src/plugins/modeleditor | |
parent | b0939414354589ae569f12a14e6fe55abb4ab575 (diff) |
ModelEditor: Move closer to standard plugin setup
The private structure was already there, just delay initialization
and make the members direct.
Change-Id: Ic0d71fe27f15a5c270544469d046b3298e6b2c65
Reviewed-by: Jochen Becher <jochen_becher@gmx.de>
Reviewed-by: Christian Stenger <christian.stenger@qt.io>
Diffstat (limited to 'src/plugins/modeleditor')
-rw-r--r-- | src/plugins/modeleditor/modeleditor_plugin.cpp | 45 | ||||
-rw-r--r-- | src/plugins/modeleditor/modeleditor_plugin.h | 8 | ||||
-rw-r--r-- | src/plugins/modeleditor/modeleditorfactory.cpp | 5 | ||||
-rw-r--r-- | src/plugins/modeleditor/modeleditorfactory.h | 2 | ||||
-rw-r--r-- | src/plugins/modeleditor/settingscontroller.cpp | 3 | ||||
-rw-r--r-- | src/plugins/modeleditor/settingscontroller.h | 2 | ||||
-rw-r--r-- | src/plugins/modeleditor/uicontroller.cpp | 5 | ||||
-rw-r--r-- | src/plugins/modeleditor/uicontroller.h | 2 |
8 files changed, 27 insertions, 45 deletions
diff --git a/src/plugins/modeleditor/modeleditor_plugin.cpp b/src/plugins/modeleditor/modeleditor_plugin.cpp index de80992032..2b34be2b33 100644 --- a/src/plugins/modeleditor/modeleditor_plugin.cpp +++ b/src/plugins/modeleditor/modeleditor_plugin.cpp @@ -25,12 +25,13 @@ #include "modeleditor_plugin.h" +#include "jsextension.h" +#include "modeleditor_constants.h" #include "modeleditorfactory.h" +#include "modeleditor_global.h" #include "modelsmanager.h" #include "settingscontroller.h" -#include "modeleditor_constants.h" #include "uicontroller.h" -#include "jsextension.h" #include "qmt/infrastructure/uid.h" @@ -45,32 +46,24 @@ #include <QAction> #include <QApplication> -#include <QMessageBox> -#include <QMainWindow> -#include <QMenu> #include <QItemSelection> #include <QClipboard> -#include <QFontDatabase> - -#include <QtPlugin> namespace ModelEditor { namespace Internal { ModelEditorPlugin *pluginInstance = nullptr; -class ModelEditorPlugin::ModelEditorPluginPrivate +class ModelEditorPluginPrivate final { public: - ModelsManager *modelsManager = nullptr; - UiController *uiController = nullptr; - ModelEditorFactory *modelFactory = nullptr; - SettingsController *settingsController = nullptr; + ModelsManager modelsManager; + UiController uiController; + ModelEditorFactory modelFactory{&uiController}; + SettingsController settingsController; }; ModelEditorPlugin::ModelEditorPlugin() - : ExtensionSystem::IPlugin(), - d(new ModelEditorPluginPrivate) { pluginInstance = this; qRegisterMetaType<QItemSelection>("QItemSelection"); @@ -86,18 +79,14 @@ bool ModelEditorPlugin::initialize(const QStringList &arguments, QString *errorS { Q_UNUSED(arguments) Q_UNUSED(errorString) - - d->modelsManager = new ModelsManager(this); - d->uiController = new UiController(this); - d->modelFactory = new ModelEditorFactory(d->uiController, this); - d->settingsController = new SettingsController(this); + d = new ModelEditorPluginPrivate; Core::JsExpander::registerGlobalObject<JsExtension>("Modeling"); - connect(d->settingsController, &SettingsController::saveSettings, - d->uiController, &UiController::saveSettings); - connect(d->settingsController, &SettingsController::loadSettings, - d->uiController, &UiController::loadSettings); + connect(&d->settingsController, &SettingsController::saveSettings, + &d->uiController, &UiController::saveSettings); + connect(&d->settingsController, &SettingsController::loadSettings, + &d->uiController, &UiController::loadSettings); return true; } @@ -107,20 +96,20 @@ void ModelEditorPlugin::extensionsInitialized() // Retrieve objects from the plugin manager's object pool // In the extensionsInitialized method, a plugin can be sure that all // plugins that depend on it are completely initialized. - d->modelFactory->extensionsInitialized(); - d->settingsController->load(Core::ICore::settings()); + d->modelFactory.extensionsInitialized(); + d->settingsController.load(Core::ICore::settings()); } ExtensionSystem::IPlugin::ShutdownFlag ModelEditorPlugin::aboutToShutdown() { - d->settingsController->save(Core::ICore::settings()); + d->settingsController.save(Core::ICore::settings()); QApplication::clipboard()->clear(); return SynchronousShutdown; } ModelsManager *ModelEditorPlugin::modelsManager() { - return pluginInstance->d->modelsManager; + return &pluginInstance->d->modelsManager; } } // namespace Internal diff --git a/src/plugins/modeleditor/modeleditor_plugin.h b/src/plugins/modeleditor/modeleditor_plugin.h index 5ab927361d..838ee41ac2 100644 --- a/src/plugins/modeleditor/modeleditor_plugin.h +++ b/src/plugins/modeleditor/modeleditor_plugin.h @@ -25,8 +25,6 @@ #pragma once -#include "modeleditor_global.h" - #include <extensionsystem/iplugin.h> namespace ModelEditor { @@ -34,12 +32,10 @@ namespace Internal { class ModelsManager; -class ModelEditorPlugin : - public ExtensionSystem::IPlugin +class ModelEditorPlugin : public ExtensionSystem::IPlugin { Q_OBJECT Q_PLUGIN_METADATA(IID "org.qt-project.Qt.QtCreatorPlugin" FILE "ModelEditor.json") - class ModelEditorPluginPrivate; public: ModelEditorPlugin(); @@ -52,7 +48,7 @@ public: static ModelsManager *modelsManager(); private: - ModelEditorPluginPrivate *d; + class ModelEditorPluginPrivate *d = nullptr; }; } // namespace Internal diff --git a/src/plugins/modeleditor/modeleditorfactory.cpp b/src/plugins/modeleditor/modeleditorfactory.cpp index da20bd8679..355f4e2be1 100644 --- a/src/plugins/modeleditor/modeleditorfactory.cpp +++ b/src/plugins/modeleditor/modeleditorfactory.cpp @@ -41,9 +41,8 @@ public: ActionHandler *actionHandler = nullptr; }; -ModelEditorFactory::ModelEditorFactory(UiController *uiController, QObject *parent) - : Core::IEditorFactory(parent), - d(new ModelEditorFactoryPrivate()) +ModelEditorFactory::ModelEditorFactory(UiController *uiController) + : d(new ModelEditorFactoryPrivate()) { setId(Constants::MODEL_EDITOR_ID); setDisplayName(QCoreApplication::translate("OpenWith::Editors", Constants::MODEL_EDITOR_DISPLAY_NAME)); diff --git a/src/plugins/modeleditor/modeleditorfactory.h b/src/plugins/modeleditor/modeleditorfactory.h index ca06f7da40..a14479cc3f 100644 --- a/src/plugins/modeleditor/modeleditorfactory.h +++ b/src/plugins/modeleditor/modeleditorfactory.h @@ -40,7 +40,7 @@ class ModelEditorFactory : class ModelEditorFactoryPrivate; public: - explicit ModelEditorFactory(UiController *uiController, QObject *parent = nullptr); + explicit ModelEditorFactory(UiController *uiController); ~ModelEditorFactory(); Core::IEditor *createEditor() override; diff --git a/src/plugins/modeleditor/settingscontroller.cpp b/src/plugins/modeleditor/settingscontroller.cpp index 20e808ac59..666e40ea24 100644 --- a/src/plugins/modeleditor/settingscontroller.cpp +++ b/src/plugins/modeleditor/settingscontroller.cpp @@ -32,8 +32,7 @@ namespace ModelEditor { namespace Internal { -SettingsController::SettingsController(QObject *parent) - : QObject(parent) +SettingsController::SettingsController() { } diff --git a/src/plugins/modeleditor/settingscontroller.h b/src/plugins/modeleditor/settingscontroller.h index 90371b66a7..df7ee1c76b 100644 --- a/src/plugins/modeleditor/settingscontroller.h +++ b/src/plugins/modeleditor/settingscontroller.h @@ -40,7 +40,7 @@ class SettingsController : Q_OBJECT public: - explicit SettingsController(QObject *parent = nullptr); + SettingsController(); signals: void resetSettings(); diff --git a/src/plugins/modeleditor/uicontroller.cpp b/src/plugins/modeleditor/uicontroller.cpp index 706e208904..feb7cd5d44 100644 --- a/src/plugins/modeleditor/uicontroller.cpp +++ b/src/plugins/modeleditor/uicontroller.cpp @@ -39,9 +39,8 @@ public: QByteArray rightHorizSplitterState; }; -UiController::UiController(QObject *parent) - : QObject(parent), - d(new UiControllerPrivate) +UiController::UiController() + : d(new UiControllerPrivate) { } diff --git a/src/plugins/modeleditor/uicontroller.h b/src/plugins/modeleditor/uicontroller.h index 9dacf6d069..e8b29511d9 100644 --- a/src/plugins/modeleditor/uicontroller.h +++ b/src/plugins/modeleditor/uicontroller.h @@ -41,7 +41,7 @@ class UiController : class UiControllerPrivate; public: - explicit UiController(QObject *parent = nullptr); + UiController(); ~UiController(); signals: |