Title: [106022] trunk/Source/WebKit2
Revision
106022
Author
abe...@webkit.org
Date
2012-01-26 11:47:53 -0800 (Thu, 26 Jan 2012)

Log Message

[Qt][WK2] Add the componentComplete method to WebView
https://bugs.webkit.org/show_bug.cgi?id=77111

Reviewed by Kenneth Rohde Christiansen.

Move the touch/desktop initialization to componentComplete.
Also return valid default values in the viewport info functions
if the interaction engine is not yet initialized because the
viewport info component could finish initialization earlier
than the WebView, which results in QML warnings during MiniBrowser
startup.

* UIProcess/API/qt/qquickwebview.cpp:
(QQuickWebViewPrivate::setUseTraditionalDesktopBehaviour):
(QQuickWebView::geometryChanged):
(QQuickWebView::componentComplete):
* UIProcess/API/qt/qquickwebview_p.h:
* UIProcess/API/qt/qwebviewportinfo.cpp:
(QWebViewportInfo::currentScale):
(QWebViewportInfo::devicePixelRatio):
(QWebViewportInfo::initialScale):
(QWebViewportInfo::minimumScale):
(QWebViewportInfo::maximumScale):
(QWebViewportInfo::isScalable):
(QWebViewportInfo::layoutSize):

Modified Paths

Diff

Modified: trunk/Source/WebKit2/ChangeLog (106021 => 106022)


--- trunk/Source/WebKit2/ChangeLog	2012-01-26 19:28:38 UTC (rev 106021)
+++ trunk/Source/WebKit2/ChangeLog	2012-01-26 19:47:53 UTC (rev 106022)
@@ -1,3 +1,31 @@
+2012-01-26  Andras Becsi  <andras.be...@nokia.com>
+
+        [Qt][WK2] Add the componentComplete method to WebView
+        https://bugs.webkit.org/show_bug.cgi?id=77111
+
+        Reviewed by Kenneth Rohde Christiansen.
+
+        Move the touch/desktop initialization to componentComplete.
+        Also return valid default values in the viewport info functions
+        if the interaction engine is not yet initialized because the
+        viewport info component could finish initialization earlier
+        than the WebView, which results in QML warnings during MiniBrowser
+        startup.
+
+        * UIProcess/API/qt/qquickwebview.cpp:
+        (QQuickWebViewPrivate::setUseTraditionalDesktopBehaviour):
+        (QQuickWebView::geometryChanged):
+        (QQuickWebView::componentComplete):
+        * UIProcess/API/qt/qquickwebview_p.h:
+        * UIProcess/API/qt/qwebviewportinfo.cpp:
+        (QWebViewportInfo::currentScale):
+        (QWebViewportInfo::devicePixelRatio):
+        (QWebViewportInfo::initialScale):
+        (QWebViewportInfo::minimumScale):
+        (QWebViewportInfo::maximumScale):
+        (QWebViewportInfo::isScalable):
+        (QWebViewportInfo::layoutSize):
+
 2012-01-26  Anders Carlsson  <ander...@apple.com>
 
         WebWheelEvent::Phase and PlatformWheelEvent::Phase declarations should match AppKit

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


--- trunk/Source/WebKit2/UIProcess/API/qt/qquickwebview.cpp	2012-01-26 19:28:38 UTC (rev 106021)
+++ trunk/Source/WebKit2/UIProcess/API/qt/qquickwebview.cpp	2012-01-26 19:47:53 UTC (rev 106022)
@@ -550,16 +550,8 @@
 
 void QQuickWebViewPrivate::setUseTraditionalDesktopBehaviour(bool enable)
 {
-    Q_Q(QQuickWebView);
-
-    // Do not guard, testing for the same value, as we call this from the constructor.
-
     webPageProxy->setUseFixedLayout(!enable);
     pageView->setUsesTraditionalDesktopBehaviour(enable);
-    if (enable)
-        initializeDesktop(q);
-    else
-        initializeTouch(q);
 }
 
 void QQuickWebViewPrivate::setViewInAttachedProperties(QObject* object)
@@ -1054,14 +1046,26 @@
 {
     Q_D(QQuickWebView);
     QQuickItem::geometryChanged(newGeometry, oldGeometry);
-    if (newGeometry.size() != oldGeometry.size()) {
-        if (d->pageView->usesTraditionalDesktopBehaviour())
-            d->updateDesktopViewportSize();
-        else
-            d->updateTouchViewportSize();
-    }
+
+    if (newGeometry.isEmpty() || newGeometry.size() == oldGeometry.size())
+        return;
+
+    if (d->pageView->usesTraditionalDesktopBehaviour())
+        d->updateDesktopViewportSize();
+    else
+        d->updateTouchViewportSize();
 }
 
+void QQuickWebView::componentComplete()
+{
+    Q_D(QQuickWebView);
+    QQuickItem::componentComplete();
+    if (d->pageView->usesTraditionalDesktopBehaviour())
+        d->initializeDesktop(this);
+    else
+        d->initializeTouch(this);
+}
+
 void QQuickWebView::keyPressEvent(QKeyEvent* event)
 {
     this->event(event);

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


--- trunk/Source/WebKit2/UIProcess/API/qt/qquickwebview_p.h	2012-01-26 19:28:38 UTC (rev 106021)
+++ trunk/Source/WebKit2/UIProcess/API/qt/qquickwebview_p.h	2012-01-26 19:47:53 UTC (rev 106022)
@@ -135,7 +135,7 @@
 
 protected:
     virtual void geometryChanged(const QRectF&, const QRectF&);
-
+    virtual void componentComplete();
     virtual void keyPressEvent(QKeyEvent*);
     virtual void keyReleaseEvent(QKeyEvent*);
     virtual void inputMethodEvent(QInputMethodEvent*);

Modified: trunk/Source/WebKit2/UIProcess/API/qt/qwebviewportinfo.cpp (106021 => 106022)


--- trunk/Source/WebKit2/UIProcess/API/qt/qwebviewportinfo.cpp	2012-01-26 19:28:38 UTC (rev 106021)
+++ trunk/Source/WebKit2/UIProcess/API/qt/qwebviewportinfo.cpp	2012-01-26 19:47:53 UTC (rev 106022)
@@ -44,7 +44,7 @@
 QVariant QWebViewportInfo::currentScale() const
 {
     if (!m_webViewPrivate->interactionEngine)
-        return QVariant();
+        return QVariant(1.0);
 
     return m_webViewPrivate->interactionEngine->currentCSSScale();
 }
@@ -52,7 +52,7 @@
 QVariant QWebViewportInfo::devicePixelRatio() const
 {
     if (!m_webViewPrivate->interactionEngine)
-        return QVariant();
+        return QVariant(1.0);
 
     return m_webViewPrivate->interactionEngine->constraints().devicePixelRatio;
 }
@@ -60,7 +60,7 @@
 QVariant QWebViewportInfo::initialScale() const
 {
     if (!m_webViewPrivate->interactionEngine)
-        return QVariant();
+        return QVariant(1.0);
 
     return m_webViewPrivate->interactionEngine->constraints().initialScale;
 }
@@ -68,7 +68,7 @@
 QVariant QWebViewportInfo::minimumScale() const
 {
     if (!m_webViewPrivate->interactionEngine)
-        return QVariant();
+        return QVariant(0.25);
 
     return m_webViewPrivate->interactionEngine->constraints().minimumScale;
 }
@@ -76,7 +76,7 @@
 QVariant QWebViewportInfo::maximumScale() const
 {
     if (!m_webViewPrivate->interactionEngine)
-        return QVariant();
+        return QVariant(1.8);
 
     return m_webViewPrivate->interactionEngine->constraints().maximumScale;
 }
@@ -84,7 +84,7 @@
 QVariant QWebViewportInfo::isScalable() const
 {
     if (!m_webViewPrivate->interactionEngine)
-        return QVariant();
+        return QVariant(true);
 
     return m_webViewPrivate->interactionEngine->constraints().isUserScalable;
 }
@@ -92,7 +92,7 @@
 QVariant QWebViewportInfo::layoutSize() const
 {
     if (!m_webViewPrivate->interactionEngine)
-        return QVariant();
+        return QVariant(QSize());
 
     return m_webViewPrivate->interactionEngine->constraints().layoutSize;
 }
_______________________________________________
webkit-changes mailing list
webkit-changes@lists.webkit.org
http://lists.webkit.org/mailman/listinfo.cgi/webkit-changes

Reply via email to