From 15e960f4882632b9fcfe4c69631f10c2f2ef3061 Mon Sep 17 00:00:00 2001 From: Iuri Matias Date: Wed, 11 Feb 2026 13:57:52 -0500 Subject: [PATCH] set modulePath property when loading a module --- src/logos_core/plugin_manager.cpp | 2 ++ src/logos_host/plugin_initializer.cpp | 7 +++++-- src/logos_host/plugin_initializer.h | 3 ++- 3 files changed, 9 insertions(+), 3 deletions(-) diff --git a/src/logos_core/plugin_manager.cpp b/src/logos_core/plugin_manager.cpp index cad7f9b..95fcd22 100644 --- a/src/logos_core/plugin_manager.cpp +++ b/src/logos_core/plugin_manager.cpp @@ -3,6 +3,7 @@ #include #include #include +#include #include #include #include @@ -112,6 +113,7 @@ namespace PluginManager { // Initialize LogosAPI for this plugin LogosAPI* logos_api = new LogosAPI(pluginName, plugin); + logos_api->setProperty("modulePath", QFileInfo(pluginPath).absolutePath()); qDebug() << "LogosAPI initialized for plugin (Local mode):" << pluginName; // Register the plugin for access using LogosAPI Provider diff --git a/src/logos_host/plugin_initializer.cpp b/src/logos_host/plugin_initializer.cpp index be1003a..cb1c466 100644 --- a/src/logos_host/plugin_initializer.cpp +++ b/src/logos_host/plugin_initializer.cpp @@ -3,6 +3,7 @@ #include #include #include +#include #include "../common/interface.h" #include "logos_api.h" #include "logos_api_provider.h" @@ -86,10 +87,12 @@ LogosModule loadPlugin(const QString& pluginPath, const QString& expectedName) } LogosAPI* initializeLogosAPI(const QString& pluginName, QObject* plugin, - PluginInterface* basePlugin, const QString& authToken) + PluginInterface* basePlugin, const QString& authToken, + const QString& pluginPath) { // Initialize LogosAPI for this plugin LogosAPI* logos_api = new LogosAPI(pluginName, plugin); + logos_api->setProperty("modulePath", QFileInfo(pluginPath).absolutePath()); if (!logos_api) { qCritical() << "Failed to create LogosAPI instance"; @@ -134,7 +137,7 @@ LogosAPI* setupPlugin(const QString& pluginName, const QString& pluginPath) // 3. Initialize LogosAPI and register plugin PluginInterface* basePlugin = module.as(); LogosAPI* logos_api = initializeLogosAPI(pluginName, module.instance(), - basePlugin, authToken); + basePlugin, authToken, pluginPath); // Release module ownership so the plugin stays loaded module.release(); diff --git a/src/logos_host/plugin_initializer.h b/src/logos_host/plugin_initializer.h index cacf5d4..7f0ef02 100644 --- a/src/logos_host/plugin_initializer.h +++ b/src/logos_host/plugin_initializer.h @@ -13,7 +13,8 @@ QString receiveAuthToken(const QString& pluginName); ModuleLib::LogosModule loadPlugin(const QString& pluginPath, const QString& expectedName); LogosAPI* initializeLogosAPI(const QString& pluginName, QObject* plugin, - PluginInterface* basePlugin, const QString& authToken); + PluginInterface* basePlugin, const QString& authToken, + const QString& pluginPath); LogosAPI* setupPlugin(const QString& pluginName, const QString& pluginPath);