1#ifndef _CLASS_WEVBIEW_H_
2#define _CLASS_WEVBIEW_H_
29#if defined(COMPILE_WEBENGINE_SUPPORT)
32#include <QNetworkAccessManager>
33#include <QWebEngineView>
34#include <QWebEnginePage>
36#include <QContextMenuEvent>
38#if QT_VERSION < QT_VERSION_CHECK(6, 0, 0)
39#define DOWNLOAD_CLASS_NAME QWebEngineDownloadItem
41#define DOWNLOAD_CLASS_NAME QWebEngineDownloadRequest
44class DOWNLOAD_CLASS_NAME;
46class KvsObject_webView;
48class KviKvsWebView :
public QWebEngineView
52 KviKvsWebView(QWidget * par,
const char * name, KvsObject_webView *);
58 KvsObject_webView * m_pParentScript;
61 void mouseMoveEvent(QMouseEvent * ev)
override;
62 void contextMenuEvent(QContextMenuEvent *)
override;
63 bool event(QEvent *
e)
override;
70class KviKvsWebViewPage :
public QWebEnginePage
74 enum LinkDelegationPolicy
80 KviKvsWebViewPage(QObject* parent = 0) : QWebEnginePage(parent){}
82 bool acceptNavigationRequest(
const QUrl & url, QWebEnginePage::NavigationType type,
bool)
84 if (type == QWebEnginePage::NavigationTypeLinkClicked)
86 emit linkClicked(url);
89 case DelegateAllLinks:
91 case DontDelegateLinks:
99 void setLinkDelegationPolicy(LinkDelegationPolicy policy)
105 LinkDelegationPolicy m_ePolicy = DontDelegateLinks;
107 void linkClicked(
const QUrl&);
117 KviKvsRunTimeContext * m_pContext =
nullptr;
118 KviPointerList<QNetworkReply> * m_pReplyList =
nullptr;
119 QNetworkAccessManager * m_pNetworkManager =
nullptr;
122 QWidget * widget() {
return (QWidget *)
object(); }
124 bool init(KviKvsRunTimeContext * pContext, KviKvsVariantList * pParams)
override;
125 bool makePreview(KviKvsObjectFunctionCall * c);
126 bool load(KviKvsObjectFunctionCall * c);
127 bool setHtml(KviKvsObjectFunctionCall * c);
128 bool findText(KviKvsObjectFunctionCall * c);
129 bool setLinkDelegationPolicy(KviKvsObjectFunctionCall * c);
130 bool setWebSetting(KviKvsObjectFunctionCall * c);
131 bool appendWebViewActionToMenu(KviKvsObjectFunctionCall * c);
133 bool loadStartedEvent(KviKvsObjectFunctionCall * c);
134 bool linkClickedEvent(KviKvsObjectFunctionCall * c);
135 bool loadFinishedEvent(KviKvsObjectFunctionCall * c);
136 bool loadProgressEvent(KviKvsObjectFunctionCall * c);
137 bool downloadCompletedEvent(KviKvsObjectFunctionCall * c);
138 bool downloadProgressEvent(KviKvsObjectFunctionCall * c);
139 bool downloadRequestEvent(KviKvsObjectFunctionCall * c);
140 bool addToJavaScriptWindowObject(KviKvsObjectFunctionCall * c);
141 bool evaluateJavaScript(KviKvsObjectFunctionCall * c);
144 bool jsChangeEvent(KviKvsObjectFunctionCall * c);
145 bool jsSubmitEvent(KviKvsObjectFunctionCall * c);
146 bool jsClickEvent(KviKvsObjectFunctionCall * c);
147 bool jsMouseOverEvent(KviKvsObjectFunctionCall * c);
148 bool jsMouseOutEvent(KviKvsObjectFunctionCall * c);
150 void slotLoadFinished(
bool);
151 void slotLoadProgress(
int);
152 void slotLoadStarted();
153 void slotDownloadRequest(DOWNLOAD_CLASS_NAME *);
154 void slotLinkClicked(
const QUrl &);
156 void slotOnChange(QString);
157 void slotOnSubmit(QString);
158 void slotOnClick(QString);
159 void slotOnMouseOver(QString);
160 void slotOnMouseOut(QString);
163class KviKvsDownloadHandler :
public QObject
167 KviKvsDownloadHandler(KvsObject_webView * pParent, QString &szFilePath, DOWNLOAD_CLASS_NAME * pDownload,
int iId);
169 ~KviKvsDownloadHandler();
172 KvsObject_webView * m_pParentScript;
173 DOWNLOAD_CLASS_NAME * m_pDownload;
176 void slotDownloadProgress(qint64 bytesReceived, qint64 bytesTotal);
Definition KviKvsObject.h:51
QObject * object() const
Definition KviKvsObject.h:94
#define e
Definition detector.cpp:70
This file contains compile time settings.
#define KVSO_DECLARE_OBJECT(__className)
Definition object_macros.h:33
int init()
Definition winamp.cpp:118