aboutsummaryrefslogtreecommitdiff
path: root/src/browser.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/browser.cpp')
-rw-r--r--src/browser.cpp27
1 files changed, 18 insertions, 9 deletions
diff --git a/src/browser.cpp b/src/browser.cpp
index 56eed96..e266024 100644
--- a/src/browser.cpp
+++ b/src/browser.cpp
@@ -70,6 +70,13 @@ void Browser::registerPlugin(const Plugin &plugin)
});
}
+ if(plugin.instance->inherits("ConfigurationInterface")) {
+ auto *configEditor = qobject_cast<ConfigurationInterface *>(plugin.instance);
+ Q_CHECK_PTR(configEditor);
+
+ configEditor->setConfiguration(m_config.get());
+ }
+
m_plugins.append(plugin);
}
@@ -193,15 +200,17 @@ MainWindow *Browser::createWindow()
window->addAction(MainWindow::ToolsMenu, downloadsAction);
for(const Plugin &p : qAsConst(m_plugins)) {
- if(p.instance->inherits("ProfileInterface")) {
- auto *profileEditor = qobject_cast<ProfileInterface *>(p.instance);
- auto *profileAction = new QAction(tr("Profile"), window);
- profileAction->setShortcut(p.shortcut);
- connect(profileAction, &QAction::triggered, window, [profileEditor]() {
- profileEditor->createWidget(nullptr)->show();
- });
- window->addAction(MainWindow::ToolsMenu, profileAction);
- }
+ auto *plugin = qobject_cast<PluginInterface *>(p.instance);
+ Q_CHECK_PTR(plugin);
+
+ auto *pluginAction = new QAction(p.name, window);
+ pluginAction->setShortcut(p.shortcut);
+
+ connect(pluginAction, &QAction::triggered, window, [=]() {
+ plugin->createWidget(window)->exec();
+ });
+ window->addAction(MainWindow::ToolsMenu, pluginAction);
+
}
m_windows.append(window);