// Copyright (C) 2016 Jochen Becher // SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0 #include "modeleditor_plugin.h" #include "jsextension.h" #include "modeleditorfactory.h" #include "modelsmanager.h" #include "uicontroller.h" #include "actionhandler.h" #include #include #include #include #include #include #include #include #include #include #include #include #include #include namespace ModelEditor { namespace Internal { ModelEditorPlugin *pluginInstance = nullptr; class ModelEditorPluginPrivate final { public: ModelsManager modelsManager; UiController uiController; ActionHandler actionHandler; ModelEditorFactory modelFactory{&uiController, &actionHandler}; }; ModelEditorPlugin::ModelEditorPlugin() { pluginInstance = this; qRegisterMetaType("QItemSelection"); qRegisterMetaType("qmt::Uid"); qRegisterMetaType(); qRegisterMetaType(); } ModelEditorPlugin::~ModelEditorPlugin() { delete d; } void ModelEditorPlugin::initialize() { d = new ModelEditorPluginPrivate; Core::JsExpander::registerGlobalObject("Modeling"); } void ModelEditorPlugin::extensionsInitialized() { d->actionHandler.createActions(); d->uiController.loadSettings(); } ExtensionSystem::IPlugin::ShutdownFlag ModelEditorPlugin::aboutToShutdown() { d->uiController.saveSettings(); return SynchronousShutdown; } ModelsManager *ModelEditorPlugin::modelsManager() { return &pluginInstance->d->modelsManager; } } // namespace Internal } // namespace ModelEditor