From 51574b7396bc9bb917a1d442c3b3f7ff1cd31c2c Mon Sep 17 00:00:00 2001 From: Aqua-sama Date: Mon, 27 Jan 2020 18:43:21 +0200 Subject: Refactor Browser::addPlugin to ::loadPlugins --- src/browser.cpp | 38 +++++++++++++++++--------------------- 1 file changed, 17 insertions(+), 21 deletions(-) (limited to 'src/browser.cpp') 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 &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("plugins.signature.checked").value(), conf.value("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 plugins) +void Browser::setup() { Configuration conf; - for(QPluginLoader *loader : plugins) { - m_plugins.append(new PluginInfo(loader)); - } - if(auto stylesheet = conf.value("browser.stylesheet")) { QFile f(stylesheet.value()); if(f.open(QIODevice::ReadOnly)) { -- cgit v1.2.1