summaryrefslogtreecommitdiff
path: root/Source/WebKit2/UIProcess/API/qt/qquickwebpage.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'Source/WebKit2/UIProcess/API/qt/qquickwebpage.cpp')
-rw-r--r--Source/WebKit2/UIProcess/API/qt/qquickwebpage.cpp168
1 files changed, 67 insertions, 101 deletions
diff --git a/Source/WebKit2/UIProcess/API/qt/qquickwebpage.cpp b/Source/WebKit2/UIProcess/API/qt/qquickwebpage.cpp
index 7d3b2d6a6..b5db3938f 100644
--- a/Source/WebKit2/UIProcess/API/qt/qquickwebpage.cpp
+++ b/Source/WebKit2/UIProcess/API/qt/qquickwebpage.cpp
@@ -25,6 +25,7 @@
#include "QtWebPageEventHandler.h"
#include "TransformationMatrix.h"
#include "qquickwebpage_p_p.h"
+#include "qquickwebview_p.h"
#include <QtQuick/QQuickCanvas>
#include <QtQuick/QSGGeometryNode>
#include <QtQuick/QSGMaterial>
@@ -50,112 +51,15 @@ QtSGUpdateQueue *QQuickWebPage::sceneGraphUpdateQueue() const
return &d->sgUpdateQueue;
}
-void QQuickWebPage::keyPressEvent(QKeyEvent* event)
-{
- this->event(event);
-}
-
-void QQuickWebPage::keyReleaseEvent(QKeyEvent* event)
-{
- this->event(event);
-}
-
-void QQuickWebPage::inputMethodEvent(QInputMethodEvent* event)
-{
- this->event(event);
-}
-
-void QQuickWebPage::focusInEvent(QFocusEvent* event)
-{
- this->event(event);
-}
-
-void QQuickWebPage::focusOutEvent(QFocusEvent* event)
-{
- this->event(event);
-}
-
-void QQuickWebPage::mousePressEvent(QMouseEvent* event)
-{
- forceActiveFocus();
- this->event(event);
-}
-
-void QQuickWebPage::mouseMoveEvent(QMouseEvent* event)
-{
- this->event(event);
-}
-
-void QQuickWebPage::mouseReleaseEvent(QMouseEvent* event)
-{
- this->event(event);
-}
-
-void QQuickWebPage::mouseDoubleClickEvent(QMouseEvent* event)
-{
- this->event(event);
-}
-
-void QQuickWebPage::wheelEvent(QWheelEvent* event)
-{
- this->event(event);
-}
-
-void QQuickWebPage::hoverEnterEvent(QHoverEvent* event)
-{
- this->event(event);
-}
-
-void QQuickWebPage::hoverMoveEvent(QHoverEvent* event)
-{
- this->event(event);
-}
-
-void QQuickWebPage::hoverLeaveEvent(QHoverEvent* event)
-{
- this->event(event);
-}
-
-void QQuickWebPage::dragMoveEvent(QDragMoveEvent* event)
-{
- this->event(event);
-}
-
-void QQuickWebPage::dragEnterEvent(QDragEnterEvent* event)
-{
- this->event(event);
-}
-
-void QQuickWebPage::dragLeaveEvent(QDragLeaveEvent* event)
-{
- this->event(event);
-}
-
-void QQuickWebPage::dropEvent(QDropEvent* event)
-{
- this->event(event);
-}
-
void QQuickWebPage::geometryChanged(const QRectF& newGeometry, const QRectF& oldGeometry)
{
QQuickItem::geometryChanged(newGeometry, oldGeometry);
- if (newGeometry.size() != oldGeometry.size())
- d->setDrawingAreaSize(newGeometry.size().toSize());
-}
-bool QQuickWebPage::event(QEvent* ev)
-{
- if (d->eventHandler.data()->handleEvent(ev))
- return true;
- if (ev->type() == QEvent::InputMethod)
- return false; // This is necessary to avoid an endless loop in connection with QQuickItem::event().
- return QQuickItem::event(ev);
-}
+ if (!d->useTraditionalDesktopBehaviour)
+ return;
-void QQuickWebPage::touchEvent(QTouchEvent* event)
-{
- forceActiveFocus();
- this->event(event);
+ if (newGeometry.size() != oldGeometry.size())
+ d->setDrawingAreaSize(newGeometry.size().toSize());
}
QQuickWebPagePrivate::QQuickWebPagePrivate(QQuickWebPage* q)
@@ -164,6 +68,8 @@ QQuickWebPagePrivate::QQuickWebPagePrivate(QQuickWebPage* q)
, sgUpdateQueue(q)
, paintingIsInitialized(false)
, m_paintNode(0)
+ , contentScale(1)
+ , useTraditionalDesktopBehaviour(false)
{
}
@@ -199,6 +105,7 @@ void QQuickWebPagePrivate::paintToCurrentGLContext()
return;
QTransform transform = q->itemTransform(0, 0);
+ transform.scale(contentScale, contentScale);
float opacity = computeEffectiveOpacity(q);
QRectF clipRect = q->parentItem()->mapRectToScene(q->parentItem()->boundingRect());
@@ -322,6 +229,65 @@ QSGNode* QQuickWebPage::updatePaintNode(QSGNode* oldNode, UpdatePaintNodeData*)
return proxyNode;
}
+bool QQuickWebPage::usesTraditionalDesktopBehaviour() const
+{
+ return d->useTraditionalDesktopBehaviour;
+}
+
+void QQuickWebPage::setUsesTraditionalDesktopBehaviour(bool enable)
+{
+ d->useTraditionalDesktopBehaviour = enable;
+}
+
+QtWebPageEventHandler* QQuickWebPage::eventHandler() const
+{
+ return d->eventHandler.data();
+}
+
+void QQuickWebPage::setContentSize(const QSizeF& size)
+{
+ if (size.isEmpty() || d->contentSize == size)
+ return;
+
+ d->contentSize = size;
+ d->updateSize();
+ d->setDrawingAreaSize(d->contentSize.toSize());
+}
+
+const QSizeF& QQuickWebPage::contentSize() const
+{
+ return d->contentSize;
+}
+
+void QQuickWebPage::setContentScale(qreal scale)
+{
+ ASSERT(scale > 0);
+ d->contentScale = scale;
+ d->updateSize();
+}
+
+qreal QQuickWebPage::contentScale() const
+{
+ ASSERT(d->contentScale > 0);
+ return d->contentScale;
+}
+
+QTransform QQuickWebPage::transformFromItem() const
+{
+ return transformToItem().inverted();
+}
+
+QTransform QQuickWebPage::transformToItem() const
+{
+ return QTransform(d->contentScale, 0, 0, 0, d->contentScale, 0, x(), y(), 1);
+}
+
+void QQuickWebPagePrivate::updateSize()
+{
+ QSizeF scaledSize = contentSize * contentScale;
+ q->setSize(scaledSize);
+}
+
void QQuickWebPagePrivate::resetPaintNode()
{
m_paintNode = 0;