/* * 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_WEBVIEW_H #define SMOLBOTE_WEBVIEW_H #include "webpage.h" #include class QMenu; class WebProfile; class Window; class WebView : public QWebEngineView { Q_OBJECT public: enum ViewAction { GoHome, BookmarkPage }; explicit WebView(WebProfile *profile = nullptr, QWidget *parent = nullptr); ~WebView() override; QMenu *pageMenu() { Q_CHECK_PTR(m_pageMenu); return m_pageMenu; } QMenu *toolsMenu() { Q_CHECK_PTR(m_toolsMenu); return m_toolsMenu; } WebProfile *profile() { return m_profile; } bool isLoaded() const; void triggerViewAction(ViewAction action); public slots: void search(const QString &term); signals: void newBookmark(const QString &title, const QUrl &url); protected: WebView *createWindow(QWebEnginePage::WebWindowType type) override; private: Window *m_parentWindow = nullptr; WebProfile *m_profile = nullptr; QMenu *m_pageMenu = nullptr; QMenu *m_toolsMenu = nullptr; bool m_loaded; }; #endif // SMOLBOTE_WEBVIEW_H