presentation
andreas 7 years ago
parent 96bbc9cfdd
commit e79f059b1d
  1. 5
      src/plugin/Plugin.cpp
  2. 7
      src/plugin/Plugin.h
  3. 18
      src/plugin/PluginController.cpp
  4. 6
      src/plugin/PluginController.h

@ -4,9 +4,12 @@
#ifdef ENABLE_PLUGINS
Plugin::Plugin()
Plugin::Plugin(string path)
: path(path)
{
XOJ_INIT_TYPE(Plugin);
}
Plugin::~Plugin()

@ -16,9 +16,14 @@
class Plugin
{
public:
Plugin();
Plugin(string path);
virtual ~Plugin();
private:
XOJ_TYPE_ATTRIB;
/**
* Plugin root path
*/
string path;
};

@ -1,4 +1,5 @@
#include "PluginController.h"
#include "Plugin.h"
#include "control/Control.h"
#include "gui/GladeSearchpath.h"
@ -19,6 +20,14 @@ PluginController::PluginController(Control* control)
PluginController::~PluginController()
{
XOJ_CHECK_TYPE(PluginController);
for (Plugin* p : this->plugins)
{
delete p;
}
this->plugins.clear();
XOJ_RELEASE_TYPE(PluginController);
}
@ -48,7 +57,14 @@ void PluginController::loadPluginsFrom(string path)
pluginFolder += "/";
pluginFolder += file;
printf("->%s\n", pluginFolder.c_str());
Plugin* p = new Plugin(pluginFolder);
if (!p->isValid())
{
delete p;
continue;
}
this->plugins.push_back(p);
}
g_dir_close(dir);
#endif

@ -14,6 +14,7 @@
#include <XournalType.h>
class Control;
class Plugin;
class PluginController
{
@ -36,4 +37,9 @@ private:
* The main controller
*/
Control* control;
/**
* All loaded Plugins
*/
vector<Plugin*> plugins;
};

Loading…
Cancel
Save