diff options
Diffstat (limited to 'src/mainwindow/mainwindow.h')
-rw-r--r-- | src/mainwindow/mainwindow.h | 16 |
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: |