diff options
| author | 2014-12-06 17:33:25 -0500 | |
|---|---|---|
| committer | 2014-12-06 17:33:25 -0500 | |
| commit | 7167ce41b61d2ba2cdb526777a4233eb84a3b66a (patch) | |
| tree | a35c14143716e1f2c98f808c81f89426045a946f /SQLiteStudio3/coreSQLiteStudio/pluginloader.cpp | |
Imported Upstream version 2.99.6upstream/2.99.6
Diffstat (limited to 'SQLiteStudio3/coreSQLiteStudio/pluginloader.cpp')
| -rw-r--r-- | SQLiteStudio3/coreSQLiteStudio/pluginloader.cpp | 35 |
1 files changed, 35 insertions, 0 deletions
diff --git a/SQLiteStudio3/coreSQLiteStudio/pluginloader.cpp b/SQLiteStudio3/coreSQLiteStudio/pluginloader.cpp new file mode 100644 index 0000000..007e54c --- /dev/null +++ b/SQLiteStudio3/coreSQLiteStudio/pluginloader.cpp @@ -0,0 +1,35 @@ +#include "plugin.h" +#include "pluginloader.h" +#include "unused.h" + +AbstractPluginLoader::~AbstractPluginLoader() +{ + foreach (Plugin* plugin, plugins.values()) + { + plugin->deinit(); + } + + foreach (QPluginLoader* loader, plugins.keys()) + { + if (!loader->unload()) + qDebug() << "Could not unload plugin" << loader->fileName() << ":" << loader->errorString(); + + delete loader; + } + plugins.clear(); +} + +bool AbstractPluginLoader::add(QPluginLoader* loader, Plugin* plugin) +{ + if (!plugin->init()) + return false; + + plugins[loader] = plugin; + return true; +} + + +QList<Plugin*> AbstractPluginLoader::getPlugins() const +{ + return plugins.values(); +} |
