aboutsummaryrefslogtreecommitdiff
path: root/src/mainwindow/menubar.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/mainwindow/menubar.cpp')
-rw-r--r--src/mainwindow/menubar.cpp102
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());