aboutsummaryrefslogtreecommitdiff
path: root/src/mainwindow/mainwindow.cpp
diff options
context:
space:
mode:
authorAqua-sama <aqua@iserlohn-fortress.net>2018-06-28 10:21:47 +0200
committerAqua-sama <aqua@iserlohn-fortress.net>2018-06-28 10:21:47 +0200
commit0d93cf6fea0a5bae6bdf4adc15d5d6fd3306d0e6 (patch)
tree8055cb02033892be64b16221bd7710f8012bdeed /src/mainwindow/mainwindow.cpp
parentSocket messages are json formatted (diff)
downloadsmolbote-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.cpp25
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"));