aboutsummaryrefslogtreecommitdiff
path: root/src/browser.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/browser.cpp')
-rw-r--r--src/browser.cpp17
1 files changed, 17 insertions, 0 deletions
diff --git a/src/browser.cpp b/src/browser.cpp
index 8b7f40f..542465b 100644
--- a/src/browser.cpp
+++ b/src/browser.cpp
@@ -13,6 +13,9 @@
#include <bookmarks/bookmarkswidget.h>
#include <downloads/downloadswidget.h>
+#include <QPluginLoader>
+#include <QtPlugin>
+
Browser::Browser(int &argc, char *argv[])
: SingleApplication(argc, argv)
{
@@ -34,12 +37,25 @@ Browser::~Browser()
}
qDebug("Waiting for threads to wind down: %s", QThreadPool::globalInstance()->waitForDone() ? "done" : "failed");
+
+ qDeleteAll(m_plugins);
}
void Browser::setConfiguration(std::shared_ptr<Configuration> &config)
{
m_config = config;
+ // plugin loader
+ QPluginLoader loader("plugins/ProfileEditor/libProfileEditorPlugin.so");
+ qDebug("Trying to load %s: %s", qUtf8Printable(loader.fileName()), loader.load() ? "ok" : "failed");
+ if(!loader.isLoaded()) {
+ qDebug("Error: %s", qUtf8Printable(loader.errorString()));
+ } else {
+ PluginInterface *plugin = qobject_cast<PluginInterface *>(loader.instance());
+ m_plugins.append(plugin);
+ //qDebug("author: %s", qUtf8Printable(loader.metaData()["MetaData"].toObject()["author"].toString()));
+ }
+
m_bookmarksManager = std::make_shared<BookmarksWidget>(QString::fromStdString(m_config->value<std::string>("bookmarks.path").value()));
m_downloadManager = std::make_shared<DownloadsWidget>(QString::fromStdString(m_config->value<std::string>("downloads.path").value()));
@@ -57,6 +73,7 @@ MainWindow *Browser::createWindow()
window->setBookmarksWidget(m_bookmarksManager);
window->setDownloadsWidget(m_downloadManager);
window->setProfile(m_defaultProfile);
+ window->addPlugins(m_plugins);
m_windows.append(window);