[SCM] WebKit Debian packaging branch, debian/experimental, updated. upstream/1.3.3-9427-gc2be6fc

kenneth at webkit.org kenneth at webkit.org
Wed Dec 22 13:39:55 UTC 2010


The following commit has been merged in the debian/experimental branch:
commit b42082e15c1915a4bd45f6fe7c9fa9083e8a53bb
Author: kenneth at webkit.org <kenneth at webkit.org@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Date:   Wed Sep 22 21:37:12 2010 +0000

    Add a ViewportConfiguration class for the Qt WebKit2 API, which
    currently calculated a fallback viewport configuration.
    
    Patch by Kenneth Rohde Christiansen <kenneth at webkit.org> on 2010-09-22
    Reviewed by Antonio Gomes.
    
    * UIProcess/API/qt/qwkpage.cpp:
    (QWKPage::ViewportConfiguration::ViewportConfiguration):
    (QWKPage::ViewportConfiguration::~ViewportConfiguration):
    (QWKPage::ViewportConfiguration::operator=):
    (QWKPage::viewportConfigurationForSize):
    * UIProcess/API/qt/qwkpage.h:
    * UIProcess/API/qt/qwkpage_p.h:
    (QtViewportConfigurationPrivate::QtViewportConfigurationPrivate):
    
    git-svn-id: http://svn.webkit.org/repository/webkit/trunk@68082 268f45cc-cd09-0410-ab3c-d52691b4dbfc

diff --git a/WebKit2/ChangeLog b/WebKit2/ChangeLog
index 140cdb5..5d4d8e4 100644
--- a/WebKit2/ChangeLog
+++ b/WebKit2/ChangeLog
@@ -1,3 +1,19 @@
+2010-09-22  Kenneth Rohde Christiansen  <kenneth at webkit.org>
+
+        Reviewed by Antonio Gomes.
+
+        Add a ViewportConfiguration class for the Qt WebKit2 API, which
+        currently calculated a fallback viewport configuration.
+
+        * UIProcess/API/qt/qwkpage.cpp:
+        (QWKPage::ViewportConfiguration::ViewportConfiguration):
+        (QWKPage::ViewportConfiguration::~ViewportConfiguration):
+        (QWKPage::ViewportConfiguration::operator=):
+        (QWKPage::viewportConfigurationForSize):
+        * UIProcess/API/qt/qwkpage.h:
+        * UIProcess/API/qt/qwkpage_p.h:
+        (QtViewportConfigurationPrivate::QtViewportConfigurationPrivate):
+
 2010-09-22  Adam Roben  <aroben at apple.com>
 
         Windows build fix
diff --git a/WebKit2/UIProcess/API/qt/qwkpage.cpp b/WebKit2/UIProcess/API/qt/qwkpage.cpp
index 1532323..8e3d533 100644
--- a/WebKit2/UIProcess/API/qt/qwkpage.cpp
+++ b/WebKit2/UIProcess/API/qt/qwkpage.cpp
@@ -28,6 +28,7 @@
 #include "WebPlatformStrategies.h"
 #include "WKStringQt.h"
 #include "WKURLQt.h"
+#include "ViewportArguments.h"
 #include <QAction>
 #include <QApplication>
 #include <QGraphicsSceneMouseEvent>
@@ -275,6 +276,78 @@ QWKPage::~QWKPage()
     delete d;
 }
 
+QWKPage::ViewportConfiguration::ViewportConfiguration()
+    : d(0)
+    , m_initialScaleFactor(-1.0)
+    , m_minimumScaleFactor(-1.0)
+    , m_maximumScaleFactor(-1.0)
+    , m_devicePixelRatio(-1.0)
+    , m_isUserScalable(true)
+    , m_isValid(false)
+{
+
+}
+
+QWKPage::ViewportConfiguration::ViewportConfiguration(const QWKPage::ViewportConfiguration& other)
+    : d(other.d)
+    , m_initialScaleFactor(other.m_initialScaleFactor)
+    , m_minimumScaleFactor(other.m_minimumScaleFactor)
+    , m_maximumScaleFactor(other.m_maximumScaleFactor)
+    , m_devicePixelRatio(other.m_devicePixelRatio)
+    , m_isUserScalable(other.m_isUserScalable)
+    , m_isValid(other.m_isValid)
+    , m_size(other.m_size)
+{
+
+}
+
+QWKPage::ViewportConfiguration::~ViewportConfiguration()
+{
+
+}
+
+QWKPage::ViewportConfiguration& QWKPage::ViewportConfiguration::operator=(const QWKPage::ViewportConfiguration& other)
+{
+    if (this != &other) {
+        d = other.d;
+        m_initialScaleFactor = other.m_initialScaleFactor;
+        m_minimumScaleFactor = other.m_minimumScaleFactor;
+        m_maximumScaleFactor = other.m_maximumScaleFactor;
+        m_devicePixelRatio = other.m_devicePixelRatio;
+        m_isUserScalable = other.m_isUserScalable;
+        m_isValid = other.m_isValid;
+        m_size = other.m_size;
+    }
+
+    return *this;
+}
+
+QWKPage::ViewportConfiguration QWKPage::viewportConfigurationForSize(QSize availableSize) const
+{
+    static int desktopWidth = 980;
+    static int deviceDPI = 160;
+
+    // FIXME: Add a way to get these data via the platform plugin and fall back
+    // to the size of the view.
+    int deviceWidth = 480;
+    int deviceHeight = 864;
+
+    ViewportArguments args;
+
+    WebCore::ViewportConfiguration conf = WebCore::findConfigurationForViewportData(args, desktopWidth, deviceWidth, deviceHeight, deviceDPI, availableSize);
+
+    ViewportConfiguration result;
+
+    result.m_isValid = true;
+    result.m_size = conf.layoutViewport;
+    result.m_initialScaleFactor = conf.initialScale;
+    result.m_minimumScaleFactor = conf.minimumScale;
+    result.m_maximumScaleFactor = conf.maximumScale;
+    result.m_devicePixelRatio = conf.devicePixelRatio;
+
+    return result;
+}
+
 void QWKPage::timerEvent(QTimerEvent* ev)
 {
     int timerId = ev->timerId();
diff --git a/WebKit2/UIProcess/API/qt/qwkpage.h b/WebKit2/UIProcess/API/qt/qwkpage.h
index 154eb1e..e762757 100644
--- a/WebKit2/UIProcess/API/qt/qwkpage.h
+++ b/WebKit2/UIProcess/API/qt/qwkpage.h
@@ -15,6 +15,7 @@
 class QCursor;
 class QWKGraphicsWidget;
 class QWKPagePrivate;
+class QtViewportConfigurationPrivate;
 
 class QWEBKIT_EXPORT QWKPage : public QObject {
     Q_OBJECT
@@ -33,6 +34,36 @@ public:
         WebActionCount
     };
 
+    class ViewportConfiguration {
+    public:
+        ViewportConfiguration();
+        ViewportConfiguration(const QWKPage::ViewportConfiguration& other);
+
+        ~ViewportConfiguration();
+
+        QWKPage::ViewportConfiguration& operator=(const QWKPage::ViewportConfiguration& other);
+
+        inline qreal initialScaleFactor() const { return m_initialScaleFactor; };
+        inline qreal minimumScaleFactor() const { return m_minimumScaleFactor; };
+        inline qreal maximumScaleFactor() const { return m_maximumScaleFactor; };
+        inline qreal devicePixelRatio() const { return m_devicePixelRatio; };
+        inline bool isUserScalable() const { return m_isUserScalable; };
+        inline bool isValid() const { return m_isValid; };
+        inline QSize size() const { return m_size; };
+
+    private:
+        QSharedDataPointer<QtViewportConfigurationPrivate> d;
+        qreal m_initialScaleFactor;
+        qreal m_minimumScaleFactor;
+        qreal m_maximumScaleFactor;
+        qreal m_devicePixelRatio;
+        bool m_isUserScalable;
+        bool m_isValid;
+        QSize m_size;
+
+        friend class QWKPage;
+    };
+
     QWKPage(WKPageNamespaceRef);
     virtual ~QWKPage();
 
@@ -45,6 +76,7 @@ public:
     QString title() const;
 
     void setViewportSize(const QSize&);
+    ViewportConfiguration viewportConfigurationForSize(QSize availableSize) const;
 
     QAction* action(WebAction action) const;
     void triggerAction(WebAction action, bool checked = false);
diff --git a/WebKit2/UIProcess/API/qt/qwkpage_p.h b/WebKit2/UIProcess/API/qt/qwkpage_p.h
index 437348c..06a5668 100644
--- a/WebKit2/UIProcess/API/qt/qwkpage_p.h
+++ b/WebKit2/UIProcess/API/qt/qwkpage_p.h
@@ -85,4 +85,14 @@ public:
     QBasicTimer tripleClickTimer;
 };
 
+class QtViewportConfigurationPrivate : public QSharedData {
+public:
+    QtViewportConfigurationPrivate(QWKPage::ViewportConfiguration* qq)
+        : q(qq)
+    { }
+
+    QWKPage::ViewportConfiguration* q;
+};
+
+
 #endif /* qkpage_p_h */

-- 
WebKit Debian packaging



More information about the Pkg-webkit-commits mailing list