aboutsummaryrefslogtreecommitdiff
path: root/src/mainwindow/mainwindow.h
diff options
context:
space:
mode:
Diffstat (limited to 'src/mainwindow/mainwindow.h')
-rw-r--r--src/mainwindow/mainwindow.h16
1 files changed, 14 insertions, 2 deletions
diff --git a/src/mainwindow/mainwindow.h b/src/mainwindow/mainwindow.h
index 98bd6ee..2b9f82b 100644
--- a/src/mainwindow/mainwindow.h
+++ b/src/mainwindow/mainwindow.h
@@ -9,7 +9,10 @@
#ifndef SMOLBOTE_MAINWINDOW_H
#define SMOLBOTE_MAINWINDOW_H
+#include "session.hpp"
#include "subwindow/subwindow.h"
+#include <QJsonArray>
+#include <QJsonObject>
#include <QMainWindow>
#include <QUrl>
@@ -31,9 +34,17 @@ public:
ToolsMenu
};
- explicit MainWindow(QWidget *parent = nullptr);
+ explicit MainWindow(const Session::MainWindow &data, QWidget *parent = nullptr);
MainWindow(const MainWindow &) = delete;
~MainWindow() = default;
+ [[nodiscard]] Session::MainWindow serialize() const
+ {
+ QVector<Session::SubWindow> subwindows(m_subwindows.size());
+ for(int i = 0; i < m_subwindows.size(); ++i) {
+ subwindows[i] = m_subwindows.at(i)->serialize();
+ }
+ return { subwindows };
+ }
void addDockWidget(Qt::DockWidgetArea area, QWidget *widget);
void removeDockWidget(QWidget *widget);
@@ -53,7 +64,8 @@ public:
public slots:
void createTab(const QUrl &url);
- SubWindow *createSubWindow(WebProfile *profile = nullptr, bool openProfileNewtab = false);
+ void createTab(const Session::WebView &data);
+ SubWindow *createSubWindow(const Session::SubWindow &data);
void setCurrentSubWindow(SubWindow *subwindow);
private slots: