From 396bc0c1721af8d3ee970228e7df457f6b2c73d5 Mon Sep 17 00:00:00 2001 From: Aqua-sama Date: Mon, 13 Apr 2020 15:44:09 +0300 Subject: 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 --- src/mainwindow/menubar.cpp | 17 ++++++++++++----- 1 file changed, 12 insertions(+), 5 deletions(-) (limited to 'src/mainwindow/menubar.cpp') 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 &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(*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(*actionNewSubwindow, "shortcuts.window.newgroup"); -- cgit v1.2.1