summaryrefslogtreecommitdiff
path: root/lib/widgets/Api/qwebenginepage.h
diff options
context:
space:
mode:
Diffstat (limited to 'lib/widgets/Api/qwebenginepage.h')
-rw-r--r--lib/widgets/Api/qwebenginepage.h162
1 files changed, 157 insertions, 5 deletions
diff --git a/lib/widgets/Api/qwebenginepage.h b/lib/widgets/Api/qwebenginepage.h
index 5d94abb27..322ed5ba5 100644
--- a/lib/widgets/Api/qwebenginepage.h
+++ b/lib/widgets/Api/qwebenginepage.h
@@ -27,24 +27,62 @@
#include <QtCore/qobject.h>
#include <QtCore/qurl.h>
+#include <QtCore/qvariant.h>
+#include <QtNetwork/qnetworkaccessmanager.h>
#include <QtWidgets/qwidget.h>
QT_BEGIN_NAMESPACE
class QUndoStack;
class QMenu;
-class QNetworkRequest;
-class QNetworkReply;
-class QNetworkAccessManager;
+class QPrinter;
QT_END_NAMESPACE
+// FIXME: Just forward-declare the to-be-removed frame and element classes for now.
+// Referencing calls should be ported to be page-friendly or removed individually.
class QWebEngineFrame;
-class QWebEngineHistory;
+class QWebEngineElement;
+class QWebEngineElementCollection;
+class QWebEngineHistory;
class QWebEngineHistoryItem;
class QWebEnginePagePrivate;
class QWebEnginePluginFactory;
class QWebEngineSecurityOrigin;
class QtViewportAttributesPrivate;
+class QWebEngineHitTestResultPrivate;
+
+class QWEBENGINEWIDGETS_EXPORT QWebEngineHitTestResult {
+public:
+ QWebEngineHitTestResult();
+ QWebEngineHitTestResult(const QWebEngineHitTestResult &other);
+ QWebEngineHitTestResult &operator=(const QWebEngineHitTestResult &other);
+ ~QWebEngineHitTestResult();
+
+ bool isNull() const;
+
+ QPoint pos() const;
+ QRect boundingRect() const;
+ QWebEngineElement enclosingBlockElement() const;
+ QString title() const;
+
+ QString linkText() const;
+ QUrl linkUrl() const;
+ QUrl linkTitle() const;
+ QWebEngineFrame *linkTargetFrame() const;
+ QWebEngineElement linkElement() const;
+
+ QString alternateText() const; // for img, area, input and applet
+
+ QUrl imageUrl() const;
+ QPixmap pixmap() const;
+
+ bool isContentEditable() const;
+ bool isContentSelected() const;
+
+ QWebEngineElement element() const;
+
+ QWebEngineFrame *frame() const;
+};
class QWEBENGINEWIDGETS_EXPORT QWebEnginePage : public QObject {
Q_OBJECT
@@ -61,6 +99,18 @@ class QWEBENGINEWIDGETS_EXPORT QWebEnginePage : public QObject {
Q_PROPERTY(QPalette palette READ palette WRITE setPalette)
Q_PROPERTY(bool contentEditable READ isContentEditable WRITE setContentEditable)
Q_ENUMS(LinkDelegationPolicy NavigationType WebAction)
+
+ // Ex-QWebFrame properties
+ Q_PROPERTY(qreal textSizeMultiplier READ textSizeMultiplier WRITE setTextSizeMultiplier DESIGNABLE false)
+ 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 requestedUrl READ requestedUrl)
+ Q_PROPERTY(QUrl baseUrl READ baseUrl)
+ Q_PROPERTY(QIcon icon READ icon)
+ Q_PROPERTY(QSize contentsSize READ contentsSize)
+ Q_PROPERTY(QPoint scrollPosition READ scrollPosition WRITE setScrollPosition)
+ Q_PROPERTY(bool focus READ hasFocus)
#endif
public:
@@ -197,6 +247,13 @@ public:
Geolocation
};
+ // Ex-QWebFrame enum
+ enum ValueOwnership {
+ QtOwnership,
+ ScriptOwnership,
+ AutoOwnership
+ };
+
class QWEBENGINEWIDGETS_EXPORT ViewportAttributes {
public:
ViewportAttributes();
@@ -347,6 +404,85 @@ public:
virtual bool shouldInterruptJavaScript() { Q_UNREACHABLE(); return false; }
+ // Ex-QWebFrame methods
+ void load(const QUrl &url);
+ void load(const QNetworkRequest &request, QNetworkAccessManager::Operation operation = QNetworkAccessManager::GetOperation, const QByteArray &body = QByteArray());
+ void setHtml(const QString &html, const QUrl &baseUrl = QUrl());
+ void setContent(const QByteArray &data, const QString &mimeType = QString(), const QUrl &baseUrl = QUrl());
+
+ void addToJavaScriptWindowObject(const QString &name, QObject *object, ValueOwnership ownership = QtOwnership);
+ QString toHtml() const;
+ QString toPlainText() const;
+
+ QString title() const;
+ void setUrl(const QUrl &url);
+ QUrl url() const;
+ QUrl requestedUrl() const;
+ QUrl baseUrl() const;
+ QIcon icon() const;
+ QMultiMap<QString, QString> metaData() const;
+
+ QString frameName() const;
+
+ QWebEngineFrame *parentFrame() const;
+ QList<QWebEngineFrame*> childFrames() const;
+
+ Qt::ScrollBarPolicy scrollBarPolicy(Qt::Orientation orientation) const;
+ void setScrollBarPolicy(Qt::Orientation orientation, Qt::ScrollBarPolicy policy);
+
+ void setScrollBarValue(Qt::Orientation orientation, int value);
+ int scrollBarValue(Qt::Orientation orientation) const;
+ int scrollBarMinimum(Qt::Orientation orientation) const;
+ int scrollBarMaximum(Qt::Orientation orientation) const;
+ QRect scrollBarGeometry(Qt::Orientation orientation) const;
+
+ void scroll(int, int);
+ QPoint scrollPosition() const;
+ void setScrollPosition(const QPoint &pos);
+
+ void scrollToAnchor(const QString& anchor);
+
+ enum RenderLayer {
+ ContentsLayer = 0x10,
+ ScrollBarLayer = 0x20,
+ PanIconLayer = 0x40,
+
+ AllLayers = 0xff
+ };
+ Q_DECLARE_FLAGS(RenderLayers, RenderLayer)
+
+ void render(QPainter*, const QRegion& clip = QRegion());
+ void render(QPainter*, RenderLayers layer, const QRegion& clip = QRegion());
+
+ void setTextSizeMultiplier(qreal factor);
+ qreal textSizeMultiplier() const;
+
+ qreal zoomFactor() const;
+ void setZoomFactor(qreal factor);
+
+ bool hasFocus() const;
+ void setFocus();
+
+ QPoint pos() const;
+ QRect geometry() const;
+ QSize contentsSize() const;
+
+ QWebEngineElement documentElement() const;
+ QWebEngineElementCollection findAllElements(const QString &selectorQuery) const;
+ QWebEngineElement findFirstElement(const QString &selectorQuery) const;
+
+ QWebEngineHitTestResult hitTestContent(const QPoint &pos) const;
+
+ QWebEngineSecurityOrigin securityOrigin() const;
+
+public Q_SLOTS:
+ // Ex-QWebFrame slots
+ QVariant evaluateJavaScript(const QString& scriptSource) { Q_UNUSED(scriptSource); Q_UNREACHABLE(); return QVariant(); };
+#ifndef QT_NO_PRINTER
+ void print(QPrinter *printer) const { Q_UNUSED(printer); Q_UNREACHABLE(); };
+#endif
+
+
Q_SIGNALS:
void loadStarted();
void loadProgress(int progress);
@@ -383,6 +519,21 @@ Q_SIGNALS:
void featurePermissionRequested(QWebEngineFrame* frame, QWebEnginePage::Feature feature);
void featurePermissionRequestCanceled(QWebEngineFrame* frame, QWebEnginePage::Feature feature);
+ // Ex-QWebFrame signals
+ void javaScriptWindowObjectCleared();
+
+ void provisionalLoad();
+ void titleChanged(const QString &title);
+ void urlChanged(const QUrl &url);
+
+ void initialLayoutCompleted();
+
+ void iconChanged();
+
+ void contentsSizeChanged(const QSize &size);
+
+ void pageChanged();
+
protected:
virtual QWebEnginePage *createWindow(WebWindowType type) { Q_UNUSED(type); Q_UNREACHABLE(); return 0; };
virtual QObject *createPlugin(const QString &classid, const QUrl &url, const QStringList &paramNames, const QStringList &paramValues) { Q_UNUSED(classid); Q_UNUSED(url); Q_UNUSED(paramNames); Q_UNUSED(paramValues); Q_UNREACHABLE(); return 0; }
@@ -402,6 +553,7 @@ private:
friend class QWebEngineViewPrivate;
};
-Q_DECLARE_OPERATORS_FOR_FLAGS(QWebEnginePage::FindFlags)
+Q_DECLARE_OPERATORS_FOR_FLAGS(QWebEnginePage::FindFlags);
+Q_DECLARE_OPERATORS_FOR_FLAGS(QWebEnginePage::RenderLayers);
#endif // QWEBENGINEPAGE_H