diff options
author | Aqua-sama <aqua@iserlohn-fortress.net> | 2018-05-29 17:13:13 +0200 |
---|---|---|
committer | Aqua-sama <aqua@iserlohn-fortress.net> | 2018-05-29 17:13:13 +0200 |
commit | c2557c6cd825dd881137c576db867f7f311ec791 (patch) | |
tree | 8eba50c91fde7645b0cdd56b95590f8233012979 /src/mainwindow/subwindow.h | |
parent | Update quickstart (diff) | |
download | smolbote-c2557c6cd825dd881137c576db867f7f311ec791.tar.xz |
Refactor Subwindow
Diffstat (limited to 'src/mainwindow/subwindow.h')
-rw-r--r-- | src/mainwindow/subwindow.h | 51 |
1 files changed, 51 insertions, 0 deletions
diff --git a/src/mainwindow/subwindow.h b/src/mainwindow/subwindow.h new file mode 100644 index 0000000..ac1610a --- /dev/null +++ b/src/mainwindow/subwindow.h @@ -0,0 +1,51 @@ +/* + * 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_SUBWINDOW_H +#define SMOLBOTE_SUBWINDOW_H + +#include <QMdiSubWindow> +#include <QUrl> +#include <memory> + +class TabWidget; +class WebView; +class WebProfile; +class SubWindow : public QMdiSubWindow +{ + Q_OBJECT + +public: + explicit SubWindow(const QHash<QString, QString> &config, QWidget *parent = nullptr, Qt::WindowFlags flags = Qt::WindowFlags()); + ~SubWindow() override; + + WebView *currentView(); + WebView *view(int index) const; + + void setProfile(WebProfile *profile); + + 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(const QUrl &url = QUrl()); + void setCurrentTab(int index); + +private: + WebProfile *profile; + TabWidget *tabWidget; + + QMetaObject::Connection titleConnection; + QMetaObject::Connection linkHoveredConnection; +}; + +#endif // SMOLBOTE_SUBWINDOW_H |