/* * 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 WEBVIEW_H #define WEBVIEW_H #include "webpage.h" #include class QMenu; class MainWindow; class WebView : public QWebEngineView { Q_OBJECT public: explicit WebView(MainWindow *parentMainWindow, QWidget *parent = nullptr); ~WebView() override; QMenu *pageMenu(); void setPage(WebPage *page); bool isLoaded() const; int loadProgress() const; signals: // loadStarted is always emitted, be it page load or in-page request, // but loadFinished is only emitted when it's a page load // so emit loaded when a load is emitted (progress == 100) void loaded(); void newBookmark(const QString &title, const QUrl &url); protected: WebView *createWindow(QWebEnginePage::WebWindowType type) override; private slots: void handleLinkHovered(const QString &url); private: MainWindow *m_parent = nullptr; QMenu *m_pageMenu = nullptr; bool m_loaded; int m_loadProgress; }; #endif // WEBVIEW_H