aboutsummaryrefslogtreecommitdiff
path: root/src/session.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/session.cpp')
-rw-r--r--src/session.cpp30
1 files changed, 30 insertions, 0 deletions
diff --git a/src/session.cpp b/src/session.cpp
new file mode 100644
index 0000000..8e4f9a8
--- /dev/null
+++ b/src/session.cpp
@@ -0,0 +1,30 @@
+/*
+ * This file is part of smolbote. It's copyrighted by the contributors recorded
+ * in the version control history of the file, available from its original
+ * location: https://neueland.iserlohn-fortress.net/smolbote.hg
+ *
+ * SPDX-License-Identifier: GPL-3.0
+ */
+
+#include "session.h"
+#include "mainwindow/mainwindow.h"
+#include "mainwindow/subwindow.h"
+#include <QJsonObject>
+#include <QJsonArray>
+
+Session::Session(QObject *parent) : QObject(parent)
+{
+}
+
+QJsonDocument Session::toJson(MainWindow *window)
+{
+ QJsonObject session;
+
+ QJsonArray subwindows;
+ for(const SubWindow *subwindow : window->subWindows()) {
+ subwindows.append(subwindow->session());
+ }
+ session.insert("subwindows", subwindows);
+
+ return QJsonDocument(session);
+}