15#include <spdlog/spdlog.h>
20std::shared_ptr<Controller::ImageControllerBase> QmlContextSetup::m_controller_main_scene =
nullptr;
21std::unique_ptr<Serializer::SerializerController> QmlContextSetup::m_serializer_controller =
nullptr;
26 spdlog::error(
"QmlContextSetup::setupContext: QML Context is null!");
29 spdlog::info(
"QmlContextSetup: Starting QML context setup...");
31 if (!createControllerMainScene()) {
32 spdlog::error(
"QmlContextSetup::setupContext: Failed to create ImageController.");
36 if (!m_controller_main_scene) {
37 spdlog::error(
"QmlContextSetup::setupContext: m_controller_main_scene is null after createControllerMainScene!");
42 if (!m_serializer_controller) {
43 spdlog::warn(
"QmlContextSetup::setupContext: SerializerController is not set. Skipping registration.");
46 if (!registerCoreToQml(context)) {
47 spdlog::error(
"QmlContextSetup::setupContext: Failed to register core objects to QML.");
52 if (m_serializer_controller) {
54 spdlog::error(
"QmlContextSetup::setupContext: Failed to register SerializerController to QML.");
60 auto* op_model_manager = m_controller_main_scene->operationModelManager();
61 if (!op_model_manager) {
62 spdlog::error(
"QmlContextSetup::setupContext: OperationModelManager from ImageControllerBase is null.");
67 if (!op_model_manager->registerModelsToQml(context)) {
68 spdlog::error(
"QmlContextSetup::setupContext: Failed to register operation models to QML via OperationModelManager.");
72 spdlog::info(
"QmlContextSetup: QML context setup completed successfully.");
76bool QmlContextSetup::createControllerMainScene()
78 spdlog::debug(
"QmlContextSetup::createControllerMainScene: Creating ImageController...");
80 m_controller_main_scene = std::make_shared<Controller::ImageControllerRHI>();
82 if (!m_controller_main_scene) {
83 spdlog::error(
"QmlContextSetup::createControllerMainScene: Failed to create ImageController (out of memory or constructor threw).");
86 spdlog::debug(
"ImageControllerBase created.");
91bool QmlContextSetup::registerCoreToQml(QQmlContext* context)
93 spdlog::debug(
"QmlContextSetup::registerCoreToQml: Registering objects to QML...");
96 spdlog::error(
"QmlContextSetup::registerCoreToQml: QML Context is null!");
100 if (!m_controller_main_scene) {
101 spdlog::error(
"QmlContextSetup::registerCoreToQml: ImageController is null, cannot register.");
105 context->setContextProperty(
"controller", m_controller_main_scene.get());
106 spdlog::debug(
"Controller Base registered to QML context.");
108 spdlog::info(
"QmlContextSetup::registerCoreToQml: Objects registered to QML successfully.");
114 m_serializer_controller = std::move(serializer_controller);
115 spdlog::debug(
"QmlContextSetup::setSerializerController: SerializerController set.");
120 spdlog::debug(
"QmlContextSetup::registerSerializerToQml: Registering SerializerController to QML...");
123 spdlog::error(
"QmlContextSetup::registerSerializerToQml: QML Context is null!");
127 if (!m_serializer_controller) {
128 spdlog::error(
"QmlContextSetup::registerSerializerToQml: SerializerController is null, cannot register.");
132 context->setContextProperty(
"serializerController", m_serializer_controller.get());
133 spdlog::debug(
"SerializerController registered to QML context.");
135 spdlog::info(
"QmlContextSetup::registerUISerializerToQml: SerializerController registered to QML successfully.");
static void setSerializerController(std::unique_ptr< Serializer::SerializerController > ui_serializer_controller)
Sets the SerializerController instance to be registered with the QML context. This must be called bef...
static bool registerSerializerToQml(QQmlContext *context)
Registers the SerializerController (if set) to the QML context.
static bool setupContext(QQmlContext *context)
Setup complete QML context with all objects.
Head for ImageControllerPainted from main class ImageControllerBase.
Head for ImageControllerRHI from main class ImageControllerBase.
Head for ImageControllerSGS from main class ImageControllerBase.
Manages creation and setup of all C++ objects for QML.
UI manager for handling file-based serialization and deserialization of image operations.