123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336 |
- #ifndef QWEBENGINEPAGE_H
- #define QWEBENGINEPAGE_H
- #include <QtWebEngineWidgets/qtwebenginewidgetsglobal.h>
- #include <QtWebEngineWidgets/qwebenginecertificateerror.h>
- #include <QtWebEngineCore/qwebenginecallback.h>
- #include <QtCore/qobject.h>
- #include <QtCore/qurl.h>
- #include <QtCore/qvariant.h>
- #include <QtGui/qpagelayout.h>
- #include <QtNetwork/qnetworkaccessmanager.h>
- #include <QtWidgets/qwidget.h>
- QT_BEGIN_NAMESPACE
- class QMenu;
- class QWebChannel;
- class QWebEngineContextMenuData;
- class QWebEngineFullScreenRequest;
- class QWebEngineHistory;
- class QWebEnginePage;
- class QWebEnginePagePrivate;
- class QWebEngineProfile;
- class QWebEngineScriptCollection;
- class QWebEngineSettings;
- class QWEBENGINEWIDGETS_EXPORT QWebEnginePage : public QObject {
- Q_OBJECT
- Q_PROPERTY(QString selectedText READ selectedText)
- Q_PROPERTY(bool hasSelection READ hasSelection)
-
- Q_PROPERTY(QUrl requestedUrl READ requestedUrl)
- Q_PROPERTY(qreal zoomFactor READ zoomFactor WRITE setZoomFactor)
- Q_PROPERTY(QString title READ title)
- Q_PROPERTY(QUrl url READ url WRITE setUrl)
- Q_PROPERTY(QUrl iconUrl READ iconUrl NOTIFY iconUrlChanged)
- Q_PROPERTY(QIcon icon READ icon NOTIFY iconChanged)
- Q_PROPERTY(QColor backgroundColor READ backgroundColor WRITE setBackgroundColor)
- Q_PROPERTY(QSizeF contentsSize READ contentsSize NOTIFY contentsSizeChanged)
- Q_PROPERTY(QPointF scrollPosition READ scrollPosition NOTIFY scrollPositionChanged)
- Q_PROPERTY(bool audioMuted READ isAudioMuted WRITE setAudioMuted NOTIFY audioMutedChanged)
- Q_PROPERTY(bool recentlyAudible READ recentlyAudible NOTIFY recentlyAudibleChanged)
- public:
- enum WebAction {
- NoWebAction = - 1,
- Back,
- Forward,
- Stop,
- Reload,
- Cut,
- Copy,
- Paste,
- Undo,
- Redo,
- SelectAll,
- ReloadAndBypassCache,
- PasteAndMatchStyle,
- OpenLinkInThisWindow,
- OpenLinkInNewWindow,
- OpenLinkInNewTab,
- CopyLinkToClipboard,
- DownloadLinkToDisk,
- CopyImageToClipboard,
- CopyImageUrlToClipboard,
- DownloadImageToDisk,
- CopyMediaUrlToClipboard,
- ToggleMediaControls,
- ToggleMediaLoop,
- ToggleMediaPlayPause,
- ToggleMediaMute,
- DownloadMediaToDisk,
- InspectElement,
- ExitFullScreen,
- RequestClose,
- Unselect,
- SavePage,
- OpenLinkInNewBackgroundTab,
- WebActionCount
- };
- enum FindFlag {
- FindBackward = 1,
- FindCaseSensitively = 2,
- };
- Q_DECLARE_FLAGS(FindFlags, FindFlag)
- enum WebWindowType {
- WebBrowserWindow,
- WebBrowserTab,
- WebDialog,
- WebBrowserBackgroundTab
- };
- enum PermissionPolicy {
- PermissionUnknown,
- PermissionGrantedByUser,
- PermissionDeniedByUser
- };
-
- enum NavigationType {
- NavigationTypeLinkClicked,
- NavigationTypeTyped,
- NavigationTypeFormSubmitted,
- NavigationTypeBackForward,
- NavigationTypeReload,
- NavigationTypeOther
- };
- enum Feature {
- #ifndef Q_QDOC
- Notifications = 0,
- #endif
- Geolocation = 1,
- MediaAudioCapture = 2,
- MediaVideoCapture,
- MediaAudioVideoCapture,
- MouseLock
- };
-
- enum FileSelectionMode {
- FileSelectOpen,
- FileSelectOpenMultiple,
- };
-
- enum JavaScriptConsoleMessageLevel {
- InfoMessageLevel = 0,
- WarningMessageLevel,
- ErrorMessageLevel
- };
-
- enum RenderProcessTerminationStatus {
- NormalTerminationStatus = 0,
- AbnormalTerminationStatus,
- CrashedTerminationStatus,
- KilledTerminationStatus
- };
- explicit QWebEnginePage(QObject *parent = Q_NULLPTR);
- QWebEnginePage(QWebEngineProfile *profile, QObject *parent = Q_NULLPTR);
- ~QWebEnginePage();
- QWebEngineHistory *history() const;
- void setView(QWidget *view);
- QWidget *view() const;
- bool hasSelection() const;
- QString selectedText() const;
- QWebEngineProfile *profile() const;
- #ifndef QT_NO_ACTION
- QAction *action(WebAction action) const;
- #endif
- virtual void triggerAction(WebAction action, bool checked = false);
- virtual bool event(QEvent*);
- #ifdef Q_QDOC
- void findText(const QString &subString, FindFlags options = FindFlags());
- void findText(const QString &subString, FindFlags options, FunctorOrLambda resultCallback);
- #else
- void findText(const QString &subString, FindFlags options = FindFlags(), const QWebEngineCallback<bool> &resultCallback = QWebEngineCallback<bool>());
- #endif
- QMenu *createStandardContextMenu();
- void setFeaturePermission(const QUrl &securityOrigin, Feature feature, PermissionPolicy policy);
-
- void load(const QUrl &url);
- void setHtml(const QString &html, const QUrl &baseUrl = QUrl());
- void setContent(const QByteArray &data, const QString &mimeType = QString(), const QUrl &baseUrl = QUrl());
- #ifdef Q_QDOC
- void toHtml(FunctorOrLambda resultCallback) const;
- void toPlainText(FunctorOrLambda resultCallback) const;
- #else
- void toHtml(const QWebEngineCallback<const QString &> &resultCallback) const;
- void toPlainText(const QWebEngineCallback<const QString &> &resultCallback) const;
- #endif
- QString title() const;
- void setUrl(const QUrl &url);
- QUrl url() const;
- QUrl requestedUrl() const;
- QUrl iconUrl() const;
- QIcon icon() const;
- qreal zoomFactor() const;
- void setZoomFactor(qreal factor);
- QPointF scrollPosition() const;
- QSizeF contentsSize() const;
- void runJavaScript(const QString& scriptSource);
- void runJavaScript(const QString& scriptSource, quint32 worldId);
- #ifdef Q_QDOC
- void runJavaScript(const QString& scriptSource, FunctorOrLambda resultCallback);
- void runJavaScript(const QString& scriptSource, quint32 worldId, FunctorOrLambda resultCallback);
- #else
- void runJavaScript(const QString& scriptSource, const QWebEngineCallback<const QVariant &> &resultCallback);
- void runJavaScript(const QString& scriptSource, quint32 worldId, const QWebEngineCallback<const QVariant &> &resultCallback);
- #endif
- QWebEngineScriptCollection &scripts();
- QWebEngineSettings *settings() const;
- QWebChannel *webChannel() const;
- void setWebChannel(QWebChannel *);
- void setWebChannel(QWebChannel *, uint worldId);
- QColor backgroundColor() const;
- void setBackgroundColor(const QColor &color);
- bool isAudioMuted() const;
- void setAudioMuted(bool muted);
- bool recentlyAudible() const;
- void printToPdf(const QString &filePath, const QPageLayout &layout = QPageLayout(QPageSize(QPageSize::A4), QPageLayout::Portrait, QMarginsF()));
- #ifdef Q_QDOC
- void printToPdf(FunctorOrLambda resultCallback, const QPageLayout &layout = QPageLayout(QPageSize(QPageSize::A4), QPageLayout::Portrait, QMarginsF()));
- #else
- void printToPdf(const QWebEngineCallback<const QByteArray&> &resultCallback, const QPageLayout &layout = QPageLayout(QPageSize(QPageSize::A4), QPageLayout::Portrait, QMarginsF()));
- #endif
- const QWebEngineContextMenuData &contextMenuData() const;
- Q_SIGNALS:
- void loadStarted();
- void loadProgress(int progress);
- void loadFinished(bool ok);
- void linkHovered(const QString &url);
- void selectionChanged();
- void geometryChangeRequested(const QRect& geom);
- void windowCloseRequested();
- void featurePermissionRequested(const QUrl &securityOrigin, QWebEnginePage::Feature feature);
- void featurePermissionRequestCanceled(const QUrl &securityOrigin, QWebEnginePage::Feature feature);
- void fullScreenRequested(QWebEngineFullScreenRequest fullScreenRequest);
- void authenticationRequired(const QUrl &requestUrl, QAuthenticator *authenticator);
- void proxyAuthenticationRequired(const QUrl &requestUrl, QAuthenticator *authenticator, const QString &proxyHost);
- void renderProcessTerminated(RenderProcessTerminationStatus terminationStatus, int exitCode);
-
- void titleChanged(const QString &title);
- void urlChanged(const QUrl &url);
- void iconUrlChanged(const QUrl &url);
- void iconChanged(const QIcon &icon);
- void scrollPositionChanged(const QPointF &position);
- void contentsSizeChanged(const QSizeF &size);
- void audioMutedChanged(bool muted);
- void recentlyAudibleChanged(bool recentlyAudible);
- protected:
- virtual QWebEnginePage *createWindow(WebWindowType type);
- virtual QStringList chooseFiles(FileSelectionMode mode, const QStringList &oldFiles, const QStringList &acceptedMimeTypes);
- virtual void javaScriptAlert(const QUrl &securityOrigin, const QString& msg);
- virtual bool javaScriptConfirm(const QUrl &securityOrigin, const QString& msg);
- virtual bool javaScriptPrompt(const QUrl &securityOrigin, const QString& msg, const QString& defaultValue, QString* result);
- virtual void javaScriptConsoleMessage(JavaScriptConsoleMessageLevel level, const QString& message, int lineNumber, const QString& sourceID);
- virtual bool certificateError(const QWebEngineCertificateError &certificateError);
- virtual bool acceptNavigationRequest(const QUrl &url, NavigationType type, bool isMainFrame);
- private:
- Q_DISABLE_COPY(QWebEnginePage)
- Q_DECLARE_PRIVATE(QWebEnginePage)
- QScopedPointer<QWebEnginePagePrivate> d_ptr;
- #ifndef QT_NO_ACTION
- Q_PRIVATE_SLOT(d_func(), void _q_webActionTriggered(bool checked))
- #endif
- friend class QWebEngineFullScreenRequest;
- friend class QWebEngineView;
- friend class QWebEngineViewPrivate;
- #ifndef QT_NO_ACCESSIBILITY
- friend class QWebEngineViewAccessible;
- #endif
- };
- QT_END_NAMESPACE
- #endif
|