aboutsummaryrefslogtreecommitdiff
path: root/src/browser.cpp
diff options
context:
space:
mode:
authorAqua-sama <aqua@iserlohn-fortress.net>2018-12-13 12:49:28 +0100
committerAqua-sama <aqua@iserlohn-fortress.net>2018-12-13 13:41:50 +0100
commit4eedf60d76a047f63b0991eee0b623e9be854c76 (patch)
treec8b335c8909a309c2bc2765e823bec5da74aa5aa /src/browser.cpp
parentFix crash creating ConfigurationEditorPlugin widget (diff)
downloadsmolbote-4eedf60d76a047f63b0991eee0b623e9be854c76.tar.xz
MainWindow: rework menu bar
Split off menu bar into its own class out of MainWindow Menu bar now has a 'Find in menus' function
Diffstat (limited to 'src/browser.cpp')
-rw-r--r--src/browser.cpp42
1 files changed, 13 insertions, 29 deletions
diff --git a/src/browser.cpp b/src/browser.cpp
index 18ccc92..0422a4e 100644
--- a/src/browser.cpp
+++ b/src/browser.cpp
@@ -17,7 +17,6 @@
#include "mainwindow/mainwindow.h"
#include "profilemanager.h"
#include "subwindow/subwindow.h"
-#include "ui_mainwindow.h"
#include "util.h"
#include "webengine/filter.h"
#include "webengine/urlinterceptor.h"
@@ -34,6 +33,7 @@
#include <QVersionNumber>
#include <plugininterface.h>
#include <version.h>
+#include "mainwindow/menubar.h"
Browser::Browser(int &argc, char *argv[], bool allowSecondary)
: SingleApplication(argc, argv, allowSecondary, SingleApplication::User | SingleApplication::SecondaryNotification | SingleApplication::ExcludeAppVersion)
@@ -195,38 +195,21 @@ void Browser::setup(QVector<QPluginLoader *> plugins)
timer->start(5 * 60 * 1000);
}
+void Browser::showWidget(QWidget *widget, MainWindow *where) const
+{
+ bool wasVisible = widget->isVisible();
+ for(MainWindow *w : qAsConst(m_windows))
+ w->removeDockWidget(widget);
+
+ if(!wasVisible)
+ where->addDockWidget(Qt::RightDockWidgetArea, widget);
+}
+
MainWindow *Browser::createWindow()
{
// the window will delete itself when it closes, so we don't need to delete it
auto *window = new MainWindow(m_config);
connect(window->addressBar, &AddressBar::complete, m_bookmarks.get(), &BookmarksWidget::search);
- connect(window, &MainWindow::createBookmark, m_bookmarks.get(), &BookmarksWidget::addBookmark);
-
- 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());
- }
- if(!wasVisible) {
- window->addDockWidget(Qt::RightDockWidgetArea, m_bookmarks.get());
- }
- });
-
- 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());
- }
- if(!wasVisible) {
- window->addDockWidget(Qt::RightDockWidgetArea, m_downloads.get());
- }
- });
-
- connect(window->ui->actionAddPlugin, &QAction::triggered, this, [this]() {
- this->addPlugin(QFileDialog::getOpenFileName(nullptr, tr("Add Plugin"), QDir::homePath(), tr("Plugins (*.so)")));
- });
for(auto *info : m_plugins) {
addPluginTo(info, window);
@@ -243,7 +226,8 @@ MainWindow *Browser::createWindow()
void Browser::addPluginTo(PluginInfo *info, MainWindow *window)
{
QPluginLoader *loader = info->loader;
- auto *pluginMenu = window->ui->menuTools->addMenu(loader->metaData().value("MetaData").toObject().value("name").toString());
+ auto *pluginMenu = new QMenu(loader->metaData().value("MetaData").toObject().value("name").toString());
+ window->m_menuBar->insertPlugin(pluginMenu);
info->menus.append(pluginMenu);
auto *aboutAction = pluginMenu->addAction(tr("About"));