aboutsummaryrefslogtreecommitdiff
path: root/src/browser.cpp
diff options
context:
space:
mode:
authorAqua-sama <aqua@iserlohn-fortress.net>2018-05-16 18:20:25 +0200
committerAqua-sama <aqua@iserlohn-fortress.net>2018-05-16 18:20:25 +0200
commit6d095aca7f59dff26df0e2b5283d926feff5b477 (patch)
treeda26b56719aefee7eec5b81a47b6b6ad49125437 /src/browser.cpp
parentMove help and version functions to main (out of Configuration) (diff)
downloadsmolbote-6d095aca7f59dff26df0e2b5283d926feff5b477.tar.xz
Plugin command-line parameters
Diffstat (limited to 'src/browser.cpp')
-rw-r--r--src/browser.cpp17
1 files changed, 17 insertions, 0 deletions
diff --git a/src/browser.cpp b/src/browser.cpp
index 09db2d1..91ba4f8 100644
--- a/src/browser.cpp
+++ b/src/browser.cpp
@@ -82,6 +82,14 @@ void Browser::setup(const QString &defaultProfile)
// plugins
m_plugins.append(loadPlugins(QString::fromStdString(m_config->value<std::string>("plugins.path").value())));
+ // register commands
+ for(Plugin p : m_plugins) {
+ auto *plugin = qobject_cast<PluginInterface *>(p.instance.get());
+ if(plugin) {
+ m_commands.unite(plugin->commands());
+ }
+ }
+
// url request filter
m_urlFilter = std::make_shared<UrlRequestInterceptor>(QString::fromStdString(m_config->value<std::string>("filter.path").value()));
@@ -113,6 +121,15 @@ void Browser::setup(const QString &defaultProfile)
}
}
+void Browser::command(const QString &command)
+{
+ if(m_commands.contains(command)) {
+ m_commands.value(command)();
+ } else {
+ qWarning("No such command: %s", qUtf8Printable(command));
+ }
+}
+
void Browser::createSession(const QString &profileName, bool newWindow, const QStringList &urls)
{
if(m_windows.isEmpty()) {