aboutsummaryrefslogtreecommitdiff
path: root/src/browser.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/browser.cpp')
-rw-r--r--src/browser.cpp38
1 files changed, 17 insertions, 21 deletions
diff --git a/src/browser.cpp b/src/browser.cpp
index 86d8f13..20367aa 100644
--- a/src/browser.cpp
+++ b/src/browser.cpp
@@ -125,10 +125,10 @@ void Browser::loadProfiles(const QStringList &profilePaths)
}
}
-QPluginLoader *Browser::addPlugin(const QString &path)
+void Browser::loadPlugins(const QStringList &paths, const std::function<void(const QPluginLoader *)> &callback)
{
- if(path.isEmpty())
- return nullptr;
+ if(paths.isEmpty())
+ return;
Configuration conf;
const PluginLoader::SignatureState state(
@@ -136,33 +136,29 @@ QPluginLoader *Browser::addPlugin(const QString &path)
conf.value<bool>("plugins.signature.checked").value(),
conf.value<bool>("plugins.signature.enforced").value());
- auto *loader = new PluginLoader(path, state, this);
- const bool loaded = loader->load();
- spdlog::info("Loading plugin [{}]: {}", qUtf8Printable(path), loaded ? "passed" : "failed");
+ for(const auto &path : paths) {
+ auto *loader = new PluginLoader(path, state, this);
+ const bool loaded = loader->load();
- if(!loaded) {
- delete loader;
- return nullptr;
- }
+ callback(loader);
- auto *info = new PluginInfo(loader);
- m_plugins.append(info);
+ if(!loaded) {
+ delete loader;
+ } else {
+ auto *info = new PluginInfo(loader);
+ m_plugins.append(info);
- for(MainWindow *window : qAsConst(m_windows)) {
- addPluginTo(info, window);
+ for(MainWindow *window : qAsConst(m_windows)) {
+ addPluginTo(info, window);
+ }
+ }
}
-
- return loader;
}
-void Browser::setup(QVector<QPluginLoader *> plugins)
+void Browser::setup()
{
Configuration conf;
- for(QPluginLoader *loader : plugins) {
- m_plugins.append(new PluginInfo(loader));
- }
-
if(auto stylesheet = conf.value<QString>("browser.stylesheet")) {
QFile f(stylesheet.value());
if(f.open(QIODevice::ReadOnly)) {