diff options
Diffstat (limited to 'src/mainwindow/menubar.cpp')
-rw-r--r-- | src/mainwindow/menubar.cpp | 102 |
1 files changed, 13 insertions, 89 deletions
diff --git a/src/mainwindow/menubar.cpp b/src/mainwindow/menubar.cpp index 83cafee..f8979de 100644 --- a/src/mainwindow/menubar.cpp +++ b/src/mainwindow/menubar.cpp @@ -12,23 +12,17 @@ #include "configuration.h" #include "downloadswidget.h" #include "mainwindow.h" -#include "session/savesessiondialog.h" -#include "session/sessiondialog.h" #include "subwindow/subwindow.h" #include "webengine/webprofilemanager.h" #include "webengine/webview.h" #include "widgets/menusearch.h" -#include <QApplication> #include <QDir> #include <QFileDialog> -#include <QLineEdit> -#include <QMdiArea> #include <QPrintDialog> #include <QPrinter> #include <QPrinterInfo> #include <QToolBar> #include <QVBoxLayout> -#include <QWidgetAction> #include <functional> inline void run_if(SubWindow *_subwindow, const std::function<void(SubWindow *, int)> &f) @@ -70,7 +64,7 @@ inline QDialog *createDevToolsDialog(QWebEnginePage *page) return popup; } -MenuBar::MenuBar(MainWindow *parent) +MenuBar::MenuBar(QMenu *appMenu, MainWindow *parent) : QMenuBar(parent) { m_parent = parent; @@ -78,86 +72,21 @@ MenuBar::MenuBar(MainWindow *parent) Q_CHECK_PTR(browser); Configuration conf; - smolbote = this->addMenu(qApp->applicationName()); - { - auto *findMenu = smolbote->addMenu(tr("Find in menus")); - - auto *findWidget = new QWidgetAction(this); - auto *find_lineEdit = new MenuSearch(this); - findWidget->setDefaultWidget(find_lineEdit); - findMenu->addAction(findWidget); - - connect(findMenu, &QMenu::aboutToShow, [findMenu, find_lineEdit]() { - find_lineEdit->clear(); - const auto actions = findMenu->actions(); - for(int i = 1; i < actions.length(); i++) { - findMenu->removeAction(actions.at(i)); - } - find_lineEdit->setFocus(); - }); - - connect(find_lineEdit, &QLineEdit::textEdited, [this, findMenu](const QString &text) { - // clear menu - const auto actions = findMenu->actions(); - for(int i = 1; i < actions.length(); i++) - findMenu->removeAction(actions.at(i)); - - if(text.isEmpty()) - return; - - // findChildren - for(QAction *a : findChildren<QAction *>()) { - if(a->text().contains(text)) - findMenu->addAction(a); - } - }); - - smolbote->addSeparator(); - - const QString sessionPath = conf.value<QString>("session.path").value(); - auto *actionSaveSession = smolbote->addAction(tr("Save Session"), parent, [sessionPath]() { - auto *sessionDialog = new SaveSessionDialog(nullptr); - if(sessionDialog->exec() == QDialog::Accepted) - sessionDialog->save(sessionPath); - }); - conf.shortcut<QAction>(*actionSaveSession, "shortcuts.session.save"); - - auto *actionOpenSession = smolbote->addAction(tr("Open Session"), parent, [parent]() { - auto *sessionDialog = new SessionDialog(parent); - sessionDialog->exec(); - }); - conf.shortcut<QAction>(*actionOpenSession, "shortcuts.session.open"); - - smolbote->addSeparator(); - auto *actionBookmarks = smolbote->addAction(tr("Bookmarks"), browser, [browser, parent]() { - browser->showWidget(browser->bookmarks(), parent); - }); - conf.shortcut<QAction>(*actionBookmarks, "shortcuts.window.bookmarks.show"); - - auto *actionDownloads = smolbote->addAction(tr("Downloads"), browser, [browser, parent]() { - browser->showWidget(browser->downloads(), parent); - }); - conf.shortcut<QAction>(*actionDownloads, "shortcuts.window.downloads.show"); - - smolbote->addSeparator(); - smolbote->addAction(tr("Load Plugin"), browser, [browser]() { - const QString path = QFileDialog::getOpenFileName(nullptr, tr("Select Plugin"), QDir::homePath(), tr("Plugins (*.so)")); - browser->loadPlugins(QStringList(path)); - }); - - pluginInsertLocation = smolbote->addSeparator(); - - auto *actionAbout = smolbote->addAction(tr("About"), browser, &Browser::about); - conf.shortcut<QAction>(*actionAbout, "shortcuts.window.about"); - - smolbote->addSeparator(); - - auto *actionQuit = smolbote->addAction(tr("Quit"), qApp, &QApplication::quit); - conf.shortcut<QAction>(*actionQuit, "shortcuts.window.quit"); - } + addMenu(appMenu); window = this->addMenu(tr("&Window")); { + auto *actionBookmarks = window->addAction(tr("Bookmarks"), browser, [browser, parent]() { + browser->showWidget(browser->bookmarks(), parent); + }); + conf.shortcut<QAction>(*actionBookmarks, "shortcuts.window.bookmarks.show"); + + auto *actionDownloads = window->addAction(tr("Downloads"), browser, [browser, parent]() { + browser->showWidget(browser->downloads(), parent); + }); + conf.shortcut<QAction>(*actionDownloads, "shortcuts.window.downloads.show"); + window->addSeparator(); + auto *actionNewWindow = window->addAction(tr("New Window"), browser, [browser]() { const Session::MainWindow window; browser->open({ window }, false); @@ -532,11 +461,6 @@ MenuBar::MenuBar(MainWindow *parent) } } -QAction *MenuBar::insertPlugin(QMenu *menu) -{ - return smolbote->insertMenu(pluginInsertLocation, menu); -} - void MenuBar::insertSubWindow(SubWindow *subwindow) { auto *action = window->addAction(subwindow->windowTitle()); |