aboutsummaryrefslogtreecommitdiff
path: root/src/browser.cpp
diff options
context:
space:
mode:
authorAqua-sama <aqua@iserlohn-fortress.net>2018-11-23 00:14:36 +0100
committerAqua-sama <aqua@iserlohn-fortress.net>2018-11-23 00:14:36 +0100
commit7a3b8bb16c90265b26907c90a04da79d3c694f0e (patch)
tree288d1684b404279cb86d208433e9167c78414b86 /src/browser.cpp
parentAdd library check for Plasma and Breakpad configuration toggles (diff)
downloadsmolbote-7a3b8bb16c90265b26907c90a04da79d3c694f0e.tar.xz
Add About and Run actions to plugin submenu
- Remove plugin list from About dialog
Diffstat (limited to 'src/browser.cpp')
-rw-r--r--src/browser.cpp44
1 files changed, 16 insertions, 28 deletions
diff --git a/src/browser.cpp b/src/browser.cpp
index 0bd3d06..cc5d565 100644
--- a/src/browser.cpp
+++ b/src/browser.cpp
@@ -54,10 +54,6 @@ Browser::~Browser()
void Browser::about()
{
auto *dlg = new AboutDialog;
- for(const QPluginLoader *loader : qAsConst(m_plugins)) {
- const auto meta = loader->metaData().value("MetaData").toObject();
- dlg->addPlugin(meta.value("name").toString(), meta.value("author").toString(), meta.value("shortcut").toString());
- }
dlg->exec();
}
@@ -224,21 +220,8 @@ MainWindow *Browser::createWindow()
connect(window->addressBar, &AddressBar::complete, m_bookmarks.get(), &BookmarksWidget::search);
connect(window, &MainWindow::createBookmark, m_bookmarks.get(), &BookmarksWidget::addBookmark);
- connect(window->ui->menuTools, &QMenu::aboutToShow, this, [this, window]() {
- window->ui->menuPlugins->clear();
-
- for(const QPluginLoader *l : m_plugins) {
- auto *action = window->ui->menuPlugins->addAction(l->metaData()[QLatin1String("MetaData")].toObject()[QLatin1String("name")].toString());
- connect(action, &QAction::triggered, this, [l, window]() {
- auto *dlg = new AboutPluginDialog(l, window);
- dlg->exec();
- });
- }
- });
-
- auto *bookmarksAction = new QAction(tr("Bookmarks"), window);
- m_config->setShortcut(bookmarksAction, "bookmarks.shortcut");
- connect(bookmarksAction, &QAction::triggered, window, [this, window]() {
+ m_config->setShortcut(window->ui->actionBookmarks, "bookmarks.shortcut");
+ connect(window->ui->actionBookmarks, &QAction::triggered, window, [this, window]() {
bool wasVisible = m_bookmarks->isVisible();
for(MainWindow *w : qAsConst(m_windows)) {
w->removeDockWidget(m_bookmarks.get());
@@ -247,11 +230,9 @@ MainWindow *Browser::createWindow()
window->addDockWidget(Qt::RightDockWidgetArea, m_bookmarks.get());
}
});
- window->addAction(MainWindow::ToolsMenu, bookmarksAction);
- auto *downloadsAction = new QAction(tr("Downloads"), window);
- m_config->setShortcut(downloadsAction, "downloads.shortcut");
- connect(downloadsAction, &QAction::triggered, window, [this, window]() {
+ m_config->setShortcut(window->ui->actionDownloads, "downloads.shortcut");
+ connect(window->ui->actionDownloads, &QAction::triggered, window, [this, window]() {
bool wasVisible = m_downloads->isVisible();
for(MainWindow *w : qAsConst(m_windows)) {
w->removeDockWidget(m_downloads.get());
@@ -260,18 +241,25 @@ MainWindow *Browser::createWindow()
window->addDockWidget(Qt::RightDockWidgetArea, m_downloads.get());
}
});
- window->addAction(MainWindow::ToolsMenu, downloadsAction);
for(QPluginLoader *loader : qAsConst(m_plugins)) {
const auto *plugin = qobject_cast<PluginInterface *>(loader->instance());
Q_CHECK_PTR(plugin);
- auto *pluginAction = new QAction(loader->metaData().value("MetaData").toObject().value("name").toString(), window);
- pluginAction->setShortcut(QKeySequence::fromString(loader->metaData().value("MetaData").toObject().value("shortcut").toString()));
- connect(pluginAction, &QAction::triggered, window, [=]() {
+ auto *pluginMenu = window->ui->menuTools->addMenu(loader->metaData().value("MetaData").toObject().value("name").toString());
+
+ auto *aboutAction = pluginMenu->addAction(tr("About"));
+ connect(aboutAction, &QAction::triggered, this, [loader, window]() {
+ auto *dlg = new AboutPluginDialog(loader, window);
+ dlg->exec();
+ });
+
+ auto *runAction = pluginMenu->addAction(tr("Run"));
+ runAction->setShortcut(QKeySequence::fromString(loader->metaData().value("MetaData").toObject().value("shortcut").toString()));
+
+ connect(runAction, &QAction::triggered, window, [=]() {
plugin->createWidget(window)->exec();
});
- window->addAction(MainWindow::ToolsMenu, pluginAction);
}
m_windows.append(window);