From 4eedf60d76a047f63b0991eee0b623e9be854c76 Mon Sep 17 00:00:00 2001 From: Aqua-sama Date: Thu, 13 Dec 2018 12:49:28 +0100 Subject: MainWindow: rework menu bar Split off menu bar into its own class out of MainWindow Menu bar now has a 'Find in menus' function --- src/browser.cpp | 42 +++++++++++++----------------------------- 1 file changed, 13 insertions(+), 29 deletions(-) (limited to 'src/browser.cpp') 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 #include #include +#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 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")); -- cgit v1.2.1