diff options
author | Aqua-sama <aqua@iserlohn-fortress.net> | 2018-06-28 10:21:47 +0200 |
---|---|---|
committer | Aqua-sama <aqua@iserlohn-fortress.net> | 2018-06-28 10:21:47 +0200 |
commit | 0d93cf6fea0a5bae6bdf4adc15d5d6fd3306d0e6 (patch) | |
tree | 8055cb02033892be64b16221bd7710f8012bdeed /src/mainwindow/mainwindow.cpp | |
parent | Socket messages are json formatted (diff) | |
download | smolbote-0d93cf6fea0a5bae6bdf4adc15d5d6fd3306d0e6.tar.xz |
Add --session parameter to load a session json
Add Session menu to main window
Diffstat (limited to 'src/mainwindow/mainwindow.cpp')
-rw-r--r-- | src/mainwindow/mainwindow.cpp | 25 |
1 files changed, 22 insertions, 3 deletions
diff --git a/src/mainwindow/mainwindow.cpp b/src/mainwindow/mainwindow.cpp index 9a9b8e8..7adc9db 100644 --- a/src/mainwindow/mainwindow.cpp +++ b/src/mainwindow/mainwindow.cpp @@ -29,10 +29,8 @@ #include <QUrl> #include <configuration/configuration.h> #include <webprofile.h> - -#ifdef QT_DEBUG #include "session.h" -#endif +#include <QFileDialog> #ifdef PLASMA_BLUR #include <KWindowEffects> @@ -175,6 +173,27 @@ void MainWindow::createMenuBar() auto *quitAction = smolboteMenu->addAction(tr("Quit"), qApp, &QApplication::quit); m_config->setShortcut(quitAction, "mainwindow.shortcuts.quit"); + // session menu + auto *sessionMenu = menuBar()->addMenu(tr("Session")); + + sessionMenu->addAction(tr("Save Session"), this, [this]() { + const QString filename = QFileDialog::getSaveFileName(this, tr("Save Session"), QDir::homePath(), tr("JSON (*.json)")); + QFile output(filename); + if(output.open(QIODevice::WriteOnly | QIODevice::Truncate | QIODevice::Text)) { + output.write(QJsonDocument(Session::toJsonObject(this)).toJson()); + output.close(); + } + }); + sessionMenu->addAction(tr("Load Session"), this, [this]() { + const QString filename = QFileDialog::getOpenFileName(this, tr("Load Session"), QDir::homePath(), tr("JSON (*.json)")); + QFile json(filename); + if(json.open(QIODevice::ReadOnly | QIODevice::Text)) { + auto *browser = qobject_cast<Browser *>(qApp); + browser->sendMessage(json.readAll()); + json.close(); + } + }); + // window menu auto *windowMenu = menuBar()->addMenu(tr("Window")); |