diff options
author | Aqua-sama <aqua@iserlohn-fortress.net> | 2018-05-15 19:17:51 +0200 |
---|---|---|
committer | Aqua-sama <aqua@iserlohn-fortress.net> | 2018-05-15 19:17:51 +0200 |
commit | e43cf73d33d731b5d817d98c3dcb3d66eba1f718 (patch) | |
tree | 20a2d826c95761d8317104c92e66be085a977a5e /src/browser.cpp | |
parent | Profile editor plugin (diff) | |
download | smolbote-e43cf73d33d731b5d817d98c3dcb3d66eba1f718.tar.xz |
Move help and version functions to main (out of Configuration)
Make loading profiles a free function in Browser
Diffstat (limited to 'src/browser.cpp')
-rw-r--r-- | src/browser.cpp | 45 |
1 files changed, 30 insertions, 15 deletions
diff --git a/src/browser.cpp b/src/browser.cpp index 790abcb..09db2d1 100644 --- a/src/browser.cpp +++ b/src/browser.cpp @@ -20,6 +20,35 @@ #include <QDir> #include <QPluginLoader> +QVector<Plugin> loadPlugins(const QString &location) +{ + QDir pluginsDir(location); + QVector<Plugin> list; + + if(pluginsDir.exists()) { + const QStringList entries = pluginsDir.entryList(QDir::Files | QDir::Readable); + + for(const QString &name : entries) { + QPluginLoader loader(pluginsDir.absoluteFilePath(name)); + + if(loader.load()) { +#ifdef QT_DEBUG + qDebug("Loading plugin: %s [ok]", qUtf8Printable(name)); +#endif + Plugin p; + p.instance = std::shared_ptr<QObject>(loader.instance()); + list.append(p); + } else { +#ifdef QT_DEBUG + qDebug("Loading plugin: %s [failed]", qUtf8Printable(name)); +#endif + } + } + } + + return list; +} + Browser::Browser(int &argc, char *argv[]) : SingleApplication(argc, argv) { @@ -51,21 +80,7 @@ void Browser::setup(const QString &defaultProfile) Q_ASSERT_X(m_config, "Browser::setup", "Configuration not set"); // plugins - 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 p; - p.instance = std::shared_ptr<QObject>(loader.instance()); - m_plugins.append(p); - } - } - } + m_plugins.append(loadPlugins(QString::fromStdString(m_config->value<std::string>("plugins.path").value()))); // url request filter m_urlFilter = std::make_shared<UrlRequestInterceptor>(QString::fromStdString(m_config->value<std::string>("filter.path").value())); |