diff options
author | Aqua-sama <aqua@iserlohn-fortress.net> | 2020-04-13 15:44:09 +0300 |
---|---|---|
committer | Aqua-sama <aqua@iserlohn-fortress.net> | 2020-04-13 15:44:09 +0300 |
commit | 396bc0c1721af8d3ee970228e7df457f6b2c73d5 (patch) | |
tree | 5aee4f0faec3fdfe616e1684dcb1736be9126bc1 /src/mainwindow/menubar.cpp | |
parent | Add singleapplication.wrap (diff) | |
download | smolbote-396bc0c1721af8d3ee970228e7df457f6b2c73d5.tar.xz |
Rewrite Session backend
Add session.hpp, containing structs that describe session data
MainWindow, SubWindow and WebView can be created from
Session::structs
Opening new window will automatically open a default subwindow and tab
if none were specified
Add lib/session_formats
Add JsonSession, to serialize/deserialize Session structs into JSON
- add some tests
clang-tidy:
- fix various warnings
- disable modernize-use-trailing-return-type check
Diffstat (limited to 'src/mainwindow/menubar.cpp')
-rw-r--r-- | src/mainwindow/menubar.cpp | 17 |
1 files changed, 12 insertions, 5 deletions
diff --git a/src/mainwindow/menubar.cpp b/src/mainwindow/menubar.cpp index c0bda61..83cafee 100644 --- a/src/mainwindow/menubar.cpp +++ b/src/mainwindow/menubar.cpp @@ -33,14 +33,16 @@ inline void run_if(SubWindow *_subwindow, const std::function<void(SubWindow *, int)> &f) { - if(_subwindow != nullptr) + if(_subwindow != nullptr) { f(_subwindow, _subwindow->currentTabIndex()); + } } inline void trigger_if(WebView *_view, QWebEnginePage::WebAction action) { - if(_view != nullptr) + if(_view != nullptr) { _view->triggerPageAction(action); + } } inline QDialog *createDevToolsDialog(QWebEnginePage *page) @@ -88,8 +90,9 @@ MenuBar::MenuBar(MainWindow *parent) connect(findMenu, &QMenu::aboutToShow, [findMenu, find_lineEdit]() { find_lineEdit->clear(); const auto actions = findMenu->actions(); - for(int i = 1; i < actions.length(); i++) + for(int i = 1; i < actions.length(); i++) { findMenu->removeAction(actions.at(i)); + } find_lineEdit->setFocus(); }); @@ -155,11 +158,15 @@ MenuBar::MenuBar(MainWindow *parent) window = this->addMenu(tr("&Window")); { - auto *actionNewWindow = window->addAction(tr("New Window"), browser, &Browser::createWindow); + auto *actionNewWindow = window->addAction(tr("New Window"), browser, [browser]() { + const Session::MainWindow window; + browser->open({ window }, false); + }); conf.shortcut<QAction>(*actionNewWindow, "shortcuts.window.newwindow"); auto *actionNewSubwindow = window->addAction(tr("New Subwindow"), parent, [parent]() { - parent->createSubWindow(nullptr, true); + const Session::SubWindow session; + parent->createSubWindow(session); }); conf.shortcut<QAction>(*actionNewSubwindow, "shortcuts.window.newgroup"); |