Commit 67ab49eb authored by jan.koester's avatar jan.koester
Browse files

tetst

parent d0e522f9
Loading
Loading
Loading
Loading
+8 −2
Original line number Diff line number Diff line
@@ -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();
        }

+11 −2
Original line number Diff line number Diff line
@@ -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;
@@ -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(
+10 −0
Original line number Diff line number Diff line
@@ -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));
@@ -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){