aboutsummaryrefslogtreecommitdiff
path: root/src/browser.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/browser.cpp')
-rw-r--r--src/browser.cpp41
1 files changed, 19 insertions, 22 deletions
diff --git a/src/browser.cpp b/src/browser.cpp
index 542465b..43cee5f 100644
--- a/src/browser.cpp
+++ b/src/browser.cpp
@@ -13,9 +13,6 @@
#include <bookmarks/bookmarkswidget.h>
#include <downloads/downloadswidget.h>
-#include <QPluginLoader>
-#include <QtPlugin>
-
Browser::Browser(int &argc, char *argv[])
: SingleApplication(argc, argv)
{
@@ -29,33 +26,38 @@ Browser::~Browser()
{
if(m_config) {
QtConcurrent::run(QThreadPool::globalInstance(), m_config.get(), &Configuration::writeIfNeeded);
- //m_config->writeIfNeeded();
}
if(m_bookmarksManager) {
QtConcurrent::run(QThreadPool::globalInstance(), m_bookmarksManager.get(), &BookmarksWidget::save);
- //m_bookmarksManager->save();
}
- qDebug("Waiting for threads to wind down: %s", QThreadPool::globalInstance()->waitForDone() ? "done" : "failed");
-
- qDeleteAll(m_plugins);
+ qDebug("Waiting for threads to wind down...");
+ qDebug("Thread pool is done: %s", QThreadPool::globalInstance()->waitForDone() ? "okay" : "failed");
}
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()));
+ QDir pluginsDir(QString::fromStdString(m_config->value<std::string>("plugins.path").value()));
+ if(pluginsDir.exists()) {
+ const QStringList entries = pluginsDir.entryList(QDir::Files | QDir::Readable);
+ for (const QString &name : entries) {
+ QPluginLoader loader(pluginsDir.absoluteFilePath(name));
+ qDebug("Loading plugin %s: %s", qUtf8Printable(name), loader.load() ? "ok" : "failed");
+ if (!loader.isLoaded()) {
+ qDebug("Error: %s", qUtf8Printable(loader.errorString()));
+ } else {
+ Plugin d;
+ d.meta = loader.metaData()["MetaData"].toObject();
+ d.pointer = loader.instance();
+ d.pointer->setParent(this);
+ m_plugins.append(d);
+ }
+ }
}
+
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()));
@@ -141,8 +143,3 @@ std::shared_ptr<WebEngineProfile> Browser::profile(const QString storageName)
return _profile;
}
-
-QStringList Browser::profiles() const
-{
- return m_profiles.keys();
-}