/* * 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 */ #ifndef SMOLBOTE_WINDOW_H #define SMOLBOTE_WINDOW_H #include #include class TabWidget; class WebView; class Window : public QMdiSubWindow { Q_OBJECT public: explicit Window(const QHash &config, QWidget *parent = nullptr, Qt::WindowFlags flags = Qt::WindowFlags()); ~Window() override; WebView *currentView(); QJsonObject session() const; void restoreSession(const QJsonObject &sessionData); signals: void currentViewChanged(WebView *view); void showStatusMessage(const QString &message, int timeout = 0); public slots: int addTab(WebView *view); int addTab(const QUrl &url); void swapToTab(int index); private: TabWidget *tabWidget; QMetaObject::Connection titleConnection; QMetaObject::Connection linkHoveredConnection; }; #endif // SMOLBOTE_WINDOW_H