aboutsummaryrefslogtreecommitdiff
path: root/src/browser.cpp
diff options
context:
space:
mode:
authorAqua-sama <aqua@iserlohn-fortress.net>2018-05-15 19:17:51 +0200
committerAqua-sama <aqua@iserlohn-fortress.net>2018-05-15 19:17:51 +0200
commite43cf73d33d731b5d817d98c3dcb3d66eba1f718 (patch)
tree20a2d826c95761d8317104c92e66be085a977a5e /src/browser.cpp
parentProfile editor plugin (diff)
downloadsmolbote-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.cpp45
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()));