Loading editor/src/main.cpp +8 −2 Original line number Diff line number Diff line Loading @@ -128,8 +128,14 @@ int main(int argc, char *argv[]) { auto *plg = plugins.getFirstPlugin(); while (plg) { std::cout << " Loaded widget: " << plg->getInstace()->getName() << " v" << plg->getInstace()->getVersion() << std::endl; auto *inst = plg->getInstace(); if (!inst) { std::cerr << " Skipping invalid widget plugin instance" << std::endl; plg = plg->getNextPlg(); continue; } std::cout << " Loaded widget: " << inst->getName() << " v" << inst->getVersion() << std::endl; plg = plg->getNextPlg(); } Loading editor/src/webedit_api.cpp +11 −2 Original line number Diff line number Diff line Loading @@ -529,6 +529,10 @@ void webedit::Api::handleGetPlugins(libhttppp::HttpRequest &curreq) { auto *plg = _plugins.getFirstPlugin(); while (plg) { auto *inst = plg->getInstace(); if (!inst) { plg = plg->getNextPlg(); continue; } ++pluginCount; if (isNodeWidgetPluginName(inst->getName())) { ++nodePluginCount; Loading Loading @@ -2854,10 +2858,15 @@ blogi::webedit::EditPlugin *webedit::Api::createPluginByName( blogi::webedit::EditPluginLoad::PluginData *nodeWidgetPlugin = nullptr; auto *plg = _plugins.getFirstPlugin(); while (plg) { if (isNodeWidgetPluginName(plg->getInstace()->getName())) { auto *inst = plg->getInstace(); if (!inst) { plg = plg->getNextPlg(); continue; } if (isNodeWidgetPluginName(inst->getName())) { nodeWidgetPlugin = const_cast<blogi::webedit::EditPluginLoad::PluginData*>(plg); } if (plg->getInstace()->getName() == name) { if (inst->getName() == name) { auto *newEl = plg->createNewInstance(); if (newEl) { doc.ownedElements.push_back( Loading src/plugin.cpp +10 −0 Original line number Diff line number Diff line Loading @@ -257,6 +257,11 @@ void blogi::Plugin::loadPlugins(const std::string &path, PluginArgs *args){ destroy_t* destroy_plugin = (destroy_t*) dlsym(ldplg->pldata, "destroy"); #endif PluginApi *plg=create_plugin(); if (!plg) { std::cerr << "Failed to initialize: create() returned nullptr for " << entry.path().filename().string() << std::endl; continue; } plg->setArgs(args); plg->initPlugin(); ldplg->ins=std::unique_ptr<PluginApi, PluginApiDeleter>(plg, PluginApiDeleter(destroy_plugin,ldplg->pldata)); Loading Loading @@ -385,6 +390,11 @@ blogi::webedit::EditPluginLoad::EditPluginLoad(const std::vector<std::string> &p if (ldplg->create_func && ldplg->destroy_func) { try { EditPlugin *plg = ldplg->create_func(); if (!plg) { std::cerr << "Failed to initialize: create() returned nullptr for " << entry.path().filename().string() << std::endl; continue; } ldplg->ins=std::unique_ptr<EditPlugin, EditPluginDeleter>(plg, EditPluginDeleter(ldplg->destroy_func,ldplg->pldata)); if(_lastPlugin){ Loading Loading
editor/src/main.cpp +8 −2 Original line number Diff line number Diff line Loading @@ -128,8 +128,14 @@ int main(int argc, char *argv[]) { auto *plg = plugins.getFirstPlugin(); while (plg) { std::cout << " Loaded widget: " << plg->getInstace()->getName() << " v" << plg->getInstace()->getVersion() << std::endl; auto *inst = plg->getInstace(); if (!inst) { std::cerr << " Skipping invalid widget plugin instance" << std::endl; plg = plg->getNextPlg(); continue; } std::cout << " Loaded widget: " << inst->getName() << " v" << inst->getVersion() << std::endl; plg = plg->getNextPlg(); } Loading
editor/src/webedit_api.cpp +11 −2 Original line number Diff line number Diff line Loading @@ -529,6 +529,10 @@ void webedit::Api::handleGetPlugins(libhttppp::HttpRequest &curreq) { auto *plg = _plugins.getFirstPlugin(); while (plg) { auto *inst = plg->getInstace(); if (!inst) { plg = plg->getNextPlg(); continue; } ++pluginCount; if (isNodeWidgetPluginName(inst->getName())) { ++nodePluginCount; Loading Loading @@ -2854,10 +2858,15 @@ blogi::webedit::EditPlugin *webedit::Api::createPluginByName( blogi::webedit::EditPluginLoad::PluginData *nodeWidgetPlugin = nullptr; auto *plg = _plugins.getFirstPlugin(); while (plg) { if (isNodeWidgetPluginName(plg->getInstace()->getName())) { auto *inst = plg->getInstace(); if (!inst) { plg = plg->getNextPlg(); continue; } if (isNodeWidgetPluginName(inst->getName())) { nodeWidgetPlugin = const_cast<blogi::webedit::EditPluginLoad::PluginData*>(plg); } if (plg->getInstace()->getName() == name) { if (inst->getName() == name) { auto *newEl = plg->createNewInstance(); if (newEl) { doc.ownedElements.push_back( Loading
src/plugin.cpp +10 −0 Original line number Diff line number Diff line Loading @@ -257,6 +257,11 @@ void blogi::Plugin::loadPlugins(const std::string &path, PluginArgs *args){ destroy_t* destroy_plugin = (destroy_t*) dlsym(ldplg->pldata, "destroy"); #endif PluginApi *plg=create_plugin(); if (!plg) { std::cerr << "Failed to initialize: create() returned nullptr for " << entry.path().filename().string() << std::endl; continue; } plg->setArgs(args); plg->initPlugin(); ldplg->ins=std::unique_ptr<PluginApi, PluginApiDeleter>(plg, PluginApiDeleter(destroy_plugin,ldplg->pldata)); Loading Loading @@ -385,6 +390,11 @@ blogi::webedit::EditPluginLoad::EditPluginLoad(const std::vector<std::string> &p if (ldplg->create_func && ldplg->destroy_func) { try { EditPlugin *plg = ldplg->create_func(); if (!plg) { std::cerr << "Failed to initialize: create() returned nullptr for " << entry.path().filename().string() << std::endl; continue; } ldplg->ins=std::unique_ptr<EditPlugin, EditPluginDeleter>(plg, EditPluginDeleter(ldplg->destroy_func,ldplg->pldata)); if(_lastPlugin){ Loading