// 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 "modeleditor_constants.h" #include "modeleditorfactory.h" #include "modeleditor_global.h" #include "modelsmanager.h" #include "settingscontroller.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}; SettingsController settingsController; }; 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"); connect(&d->settingsController, &SettingsController::saveSettings, &d->uiController, &UiController::saveSettings); connect(&d->settingsController, &SettingsController::loadSettings, &d->uiController, &UiController::loadSettings); } void ModelEditorPlugin::extensionsInitialized() { d->actionHandler.createActions(); d->settingsController.load(Core::ICore::settings()); } ExtensionSystem::IPlugin::ShutdownFlag ModelEditorPlugin::aboutToShutdown() { d->settingsController.save(Core::ICore::settings()); return SynchronousShutdown; } ModelsManager *ModelEditorPlugin::modelsManager() { return &pluginInstance->d->modelsManager; } } // namespace Internal } // namespace ModelEditor