From 396bc0c1721af8d3ee970228e7df457f6b2c73d5 Mon Sep 17 00:00:00 2001 From: Aqua-sama Date: Mon, 13 Apr 2020 15:44:09 +0300 Subject: Rewrite Session backend Add session.hpp, containing structs that describe session data MainWindow, SubWindow and WebView can be created from Session::structs Opening new window will automatically open a default subwindow and tab if none were specified Add lib/session_formats Add JsonSession, to serialize/deserialize Session structs into JSON - add some tests clang-tidy: - fix various warnings - disable modernize-use-trailing-return-type check --- include/session.hpp | 41 +++++++++++++++++++++++++++++++++++++++++ 1 file changed, 41 insertions(+) create mode 100644 include/session.hpp (limited to 'include') diff --git a/include/session.hpp b/include/session.hpp new file mode 100644 index 0000000..0146802 --- /dev/null +++ b/include/session.hpp @@ -0,0 +1,41 @@ +/* + * 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://library.iserlohn-fortress.net/aqua/smolbote.git + * + * SPDX-License-Identifier: MIT + */ + +#ifndef SMOLBOTE_SESSION_HPP +#define SMOLBOTE_SESSION_HPP + +#include +#include +#include +#include + +class [[nodiscard]] Session +{ +public: + struct WebView { + QString profile; + QString url; + QByteArray history; + }; + + struct SubWindow { + QString profile; + QVector tabs; + }; + + struct MainWindow { + QVector subwindows; + }; + + virtual ~Session() = default; + + [[nodiscard]] virtual QByteArray serialize() const = 0; + [[nodiscard]] virtual QVector get() const = 0; +}; + +#endif // SMOLBOTE_SESSION_HPP -- cgit v1.2.1