diff options
author | Aqua-sama <aqua@iserlohn-fortress.net> | 2018-01-15 00:35:58 +0100 |
---|---|---|
committer | Aqua-sama <aqua@iserlohn-fortress.net> | 2018-01-15 00:35:58 +0100 |
commit | 2660fff9e6191808aa83197639a663b73a27bbfa (patch) | |
tree | e01930c4202d87c5b74f701938a0004a952425a1 /src/browser.cpp | |
parent | Initial plugins testing (diff) | |
download | smolbote-2660fff9e6191808aa83197639a663b73a27bbfa.tar.xz |
Moved ProfileView to ProfileEditorPlugin
Diffstat (limited to 'src/browser.cpp')
-rw-r--r-- | src/browser.cpp | 41 |
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(); -} |