Title: [117943] trunk/Source/WebKit2
Revision
117943
Author
[email protected]
Date
2012-05-22 03:49:20 -0700 (Tue, 22 May 2012)

Log Message

[Qt] Make the resizing code more straight forward
https://bugs.webkit.org/show_bug.cgi?id=87015

Reviewed by Simon Hausmann.

* UIProcess/API/qt/qquickwebpage.cpp:
(QQuickWebPage::transformToItem):
(QQuickWebPagePrivate::updateSize):
* UIProcess/API/qt/qquickwebview.cpp:
* UIProcess/API/qt/qquickwebview_p.h:
* UIProcess/API/qt/qquickwebview_p_p.h:
(QQuickWebViewFlickablePrivate):

Modified Paths

Diff

Modified: trunk/Source/WebKit2/ChangeLog (117942 => 117943)


--- trunk/Source/WebKit2/ChangeLog	2012-05-22 10:45:24 UTC (rev 117942)
+++ trunk/Source/WebKit2/ChangeLog	2012-05-22 10:49:20 UTC (rev 117943)
@@ -1,5 +1,20 @@
 2012-05-22  Kenneth Rohde Christiansen  <[email protected]>
 
+        [Qt] Make the resizing code more straight forward
+        https://bugs.webkit.org/show_bug.cgi?id=87015
+
+        Reviewed by Simon Hausmann.
+
+        * UIProcess/API/qt/qquickwebpage.cpp:
+        (QQuickWebPage::transformToItem):
+        (QQuickWebPagePrivate::updateSize):
+        * UIProcess/API/qt/qquickwebview.cpp:
+        * UIProcess/API/qt/qquickwebview_p.h:
+        * UIProcess/API/qt/qquickwebview_p_p.h:
+        (QQuickWebViewFlickablePrivate):
+
+2012-05-22  Kenneth Rohde Christiansen  <[email protected]>
+
         [Qt] Add UI tests for fit-to-view
         https://bugs.webkit.org/show_bug.cgi?id=86857
 

Modified: trunk/Source/WebKit2/UIProcess/API/qt/qquickwebpage.cpp (117942 => 117943)


--- trunk/Source/WebKit2/UIProcess/API/qt/qquickwebpage.cpp	2012-05-22 10:45:24 UTC (rev 117942)
+++ trunk/Source/WebKit2/UIProcess/API/qt/qquickwebpage.cpp	2012-05-22 10:49:20 UTC (rev 117943)
@@ -140,18 +140,41 @@
 
 QTransform QQuickWebPage::transformToItem() const
 {
-    QPointF pos = d->viewportItem->pageItemPos();
-    return QTransform(d->contentsScale, 0, 0, 0, d->contentsScale, 0, pos.x(), pos.y(), 1);
+    qreal xPos = x();
+    qreal yPos = y();
+
+    if (d->viewportItem->experimental()->flickableViewportEnabled()) {
+        // Flickable moves its contentItem so we need to take that position into
+        // account, as well as the potential displacement of the page on the
+        // contentItem because of additional QML items.
+        xPos += d->viewportItem->contentItem()->x();
+        yPos += d->viewportItem->contentItem()->y();
+    }
+
+    return QTransform(d->contentsScale, 0, 0, 0, d->contentsScale, 0, xPos, yPos, 1);
 }
 
 void QQuickWebPagePrivate::updateSize()
 {
     QSizeF scaledSize = contentsSize * contentsScale;
-    q->setSize(scaledSize);
-    viewportItem->updateContentsSize(scaledSize);
+
     DrawingAreaProxy* drawingArea = webPageProxy->drawingArea();
     if (drawingArea && drawingArea->layerTreeHostProxy())
         drawingArea->layerTreeHostProxy()->setContentsSize(WebCore::FloatSize(contentsSize.width(), contentsSize.height()));
+
+    q->setSize(scaledSize);
+
+    if (viewportItem->experimental()->flickableViewportEnabled()) {
+        // Make sure that the content is sized to the page if the user did not
+        // add other flickable items. If that is not the case, the user needs to
+        // disable the default content item size property on the WebView and
+        // bind the contentWidth and contentHeight accordingly, in accordance
+        // accordance with normal Flickable behaviour.
+        if (viewportItem->experimental()->useDefaultContentItemSize()) {
+            viewportItem->setContentWidth(scaledSize.width());
+            viewportItem->setContentHeight(scaledSize.height());
+        }
+    }
 }
 
 QQuickWebPagePrivate::~QQuickWebPagePrivate()

Modified: trunk/Source/WebKit2/UIProcess/API/qt/qquickwebview.cpp (117942 => 117943)


--- trunk/Source/WebKit2/UIProcess/API/qt/qquickwebview.cpp	2012-05-22 10:45:24 UTC (rev 117942)
+++ trunk/Source/WebKit2/UIProcess/API/qt/qquickwebview.cpp	2012-05-22 10:49:20 UTC (rev 117943)
@@ -324,12 +324,6 @@
     return webPageProxy->drawsTransparentBackground();
 }
 
-QPointF QQuickWebViewPrivate::pageItemPos()
-{
-    ASSERT(pageView);
-    return pageView->pos();
-}
-
 /*!
     \qmlsignal WebView::loadingChanged(WebLoadRequest request)
 */
@@ -798,34 +792,6 @@
     webPageProxy->setUseFixedLayout(true);
 }
 
-QPointF QQuickWebViewFlickablePrivate::pageItemPos()
-{
-    Q_Q(QQuickWebView);
-    // Flickable moves its contentItem so we need to take that position into account,
-    // as well as the potential displacement of the page on the contentItem because
-    // of additional QML items.
-    qreal xPos = q->contentItem()->x() + pageView->x();
-    qreal yPos = q->contentItem()->y() + pageView->y();
-    return QPointF(xPos, yPos);
-}
-
-void QQuickWebViewFlickablePrivate::updateContentsSize(const QSizeF& size)
-{
-    Q_Q(QQuickWebView);
-
-    // Make sure that the contentItem is sized to the page
-    // if the user did not add other flickable items in QML.
-    // If the user adds items in QML he has to make sure to
-    // disable the default content item size property on the WebView
-    // and bind the contentWidth and contentHeight accordingly.
-    // This is in accordance with normal QML Flickable behaviour.
-    if (!m_useDefaultContentItemSize)
-        return;
-
-    q->setContentWidth(size.width());
-    q->setContentHeight(size.height());
-}
-
 void QQuickWebViewFlickablePrivate::onComponentComplete()
 {
     Q_Q(QQuickWebView);
@@ -1839,18 +1805,6 @@
     d->webPageProxy->loadHTMLString(html, baseUrl.toString());
 }
 
-QPointF QQuickWebView::pageItemPos()
-{
-    Q_D(QQuickWebView);
-    return d->pageItemPos();
-}
-
-void QQuickWebView::updateContentsSize(const QSizeF& size)
-{
-    Q_D(QQuickWebView);
-    d->updateContentsSize(size);
-}
-
 qreal QQuickWebView::zoomFactor() const
 {
     Q_D(const QQuickWebView);

Modified: trunk/Source/WebKit2/UIProcess/API/qt/qquickwebview_p.h (117942 => 117943)


--- trunk/Source/WebKit2/UIProcess/API/qt/qquickwebview_p.h	2012-05-22 10:45:24 UTC (rev 117942)
+++ trunk/Source/WebKit2/UIProcess/API/qt/qquickwebview_p.h	2012-05-22 10:49:20 UTC (rev 117943)
@@ -141,10 +141,6 @@
 
     static void platformInitialize(); // Only needed by WTR.
 
-    // Internal API used by WebPage.
-    void updateContentsSize(const QSizeF&);
-    QPointF pageItemPos();
-
     // Private C++-only API.
     qreal zoomFactor() const;
     void setZoomFactor(qreal);

Modified: trunk/Source/WebKit2/UIProcess/API/qt/qquickwebview_p_p.h (117942 => 117943)


--- trunk/Source/WebKit2/UIProcess/API/qt/qquickwebview_p_p.h	2012-05-22 10:45:24 UTC (rev 117942)
+++ trunk/Source/WebKit2/UIProcess/API/qt/qquickwebview_p_p.h	2012-05-22 10:49:20 UTC (rev 117943)
@@ -74,9 +74,6 @@
     virtual void enableMouseEvents() { }
     virtual void disableMouseEvents() { }
 
-    virtual QPointF pageItemPos();
-    virtual void updateContentsSize(const QSizeF&) { }
-
     virtual void provisionalLoadDidStart(const QUrl& url);
     virtual void loadDidCommit();
     virtual void didSameDocumentNavigation();
@@ -226,9 +223,6 @@
 
     virtual void onComponentComplete();
 
-    virtual QPointF pageItemPos();
-    virtual void updateContentsSize(const QSizeF&);
-
     virtual void didChangeViewportProperties(const WebCore::ViewportAttributes&);
     virtual WebKit::QtViewportInteractionEngine* viewportInteractionEngine() { return interactionEngine.data(); }
     virtual void updateViewportSize();
_______________________________________________
webkit-changes mailing list
[email protected]
http://lists.webkit.org/mailman/listinfo.cgi/webkit-changes

Reply via email to