Diff
Modified: trunk/Source/WebKit2/ChangeLog (91984 => 91985)
--- trunk/Source/WebKit2/ChangeLog 2011-07-29 11:30:45 UTC (rev 91984)
+++ trunk/Source/WebKit2/ChangeLog 2011-07-29 11:55:06 UTC (rev 91985)
@@ -1,3 +1,39 @@
+2011-07-29 Alexis Menard <[email protected]>
+
+ [Qt] Make QDesktopWebView/QTouchWebView loadProgress property more usable in QML.
+ https://bugs.webkit.org/show_bug.cgi?id=65315
+
+ Reviewed by Benjamin Poulain.
+
+ In order to use the loadProgress value in QML we need to make it
+ a Q_PROPERTY, therefore we need a getter to get it.
+
+ * UIProcess/API/qt/qdesktopwebview.cpp:
+ (QDesktopWebViewPrivate::didChangeLoadProgress):
+ (QDesktopWebView::url):
+ (QDesktopWebView::loadProgress):
+ * UIProcess/API/qt/qdesktopwebview.h:
+ * UIProcess/API/qt/qtouchwebpage.cpp:
+ (QTouchWebPage::loadProgress):
+ * UIProcess/API/qt/qtouchwebpage.h:
+ * UIProcess/API/qt/tests/commonviewtests/tst_commonviewtests.cpp:
+ (tst_CommonViewTests::stop):
+ (tst_CommonViewTests::loadProgress):
+ * UIProcess/API/qt/tests/commonviewtests/webviewabstraction.cpp:
+ (WebViewAbstraction::WebViewAbstraction):
+ (WebViewAbstraction::loadProgress):
+ (WebViewAbstraction::desktopViewLoadFailed):
+ (WebViewAbstraction::touchViewLoadProgressChanged):
+ (WebViewAbstraction::desktopViewLoadProgressChanged):
+ * UIProcess/API/qt/tests/commonviewtests/webviewabstraction.h:
+ * UIProcess/qt/QtWebPageProxy.cpp:
+ (QtWebPageProxy::QtWebPageProxy):
+ (QtWebPageProxy::didChangeLoadProgress):
+ * UIProcess/qt/QtWebPageProxy.h:
+ (QtWebPageProxy::loadProgress):
+ * UIProcess/qt/TouchViewInterface.cpp:
+ (WebKit::TouchViewInterface::didChangeLoadProgress):
+
2011-07-27 Jocelyn Turcotte <[email protected]>
TiledDrawingArea: Use tile sets to paint old content while rendering for a new scale.
Modified: trunk/Source/WebKit2/UIProcess/API/qt/qdesktopwebview.cpp (91984 => 91985)
--- trunk/Source/WebKit2/UIProcess/API/qt/qdesktopwebview.cpp 2011-07-29 11:30:45 UTC (rev 91984)
+++ trunk/Source/WebKit2/UIProcess/API/qt/qdesktopwebview.cpp 2011-07-29 11:55:06 UTC (rev 91985)
@@ -132,7 +132,7 @@
void QDesktopWebViewPrivate::didChangeLoadProgress(int percentageLoaded)
{
- emit q->loadProgress(percentageLoaded);
+ emit q->loadProgressChanged(percentageLoaded);
}
void QDesktopWebViewPrivate::showContextMenu(QSharedPointer<QMenu> menu)
@@ -198,6 +198,11 @@
return d->page.url();
}
+int QDesktopWebView::loadProgress() const
+{
+ return d->page.loadProgress();
+}
+
QString QDesktopWebView::title() const
{
return d->page.title();
Modified: trunk/Source/WebKit2/UIProcess/API/qt/qdesktopwebview.h (91984 => 91985)
--- trunk/Source/WebKit2/UIProcess/API/qt/qdesktopwebview.h 2011-07-29 11:30:45 UTC (rev 91984)
+++ trunk/Source/WebKit2/UIProcess/API/qt/qdesktopwebview.h 2011-07-29 11:55:06 UTC (rev 91985)
@@ -51,15 +51,18 @@
Q_OBJECT
Q_PROPERTY(QString title READ title NOTIFY titleChanged)
Q_PROPERTY(QUrl url READ url NOTIFY urlChanged)
+ Q_PROPERTY(int loadProgress READ loadProgress NOTIFY loadProgressChanged)
Q_ENUMS(NavigationAction)
public:
+
QDesktopWebView(QSGItem* parent = 0);
virtual ~QDesktopWebView();
QUrl url() const;
QString title() const;
+ int loadProgress() const;
Q_INVOKABLE QAction* navigationAction(QtWebKit::NavigationAction which) const;
@@ -72,7 +75,7 @@
void loadStarted();
void loadSucceeded();
void loadFailed(const QWebError&);
- void loadProgress(int progress);
+ void loadProgressChanged(int progress);
void urlChanged(const QUrl&);
protected:
Modified: trunk/Source/WebKit2/UIProcess/API/qt/qtouchwebpage.cpp (91984 => 91985)
--- trunk/Source/WebKit2/UIProcess/API/qt/qtouchwebpage.cpp 2011-07-29 11:30:45 UTC (rev 91984)
+++ trunk/Source/WebKit2/UIProcess/API/qt/qtouchwebpage.cpp 2011-07-29 11:55:06 UTC (rev 91985)
@@ -60,6 +60,11 @@
return d->page->title();
}
+int QTouchWebPage::loadProgress() const
+{
+ return d->page->loadProgress();
+}
+
/*! \reimp
*/
bool QTouchWebPage::event(QEvent* ev)
Modified: trunk/Source/WebKit2/UIProcess/API/qt/qtouchwebpage.h (91984 => 91985)
--- trunk/Source/WebKit2/UIProcess/API/qt/qtouchwebpage.h 2011-07-29 11:30:45 UTC (rev 91984)
+++ trunk/Source/WebKit2/UIProcess/API/qt/qtouchwebpage.h 2011-07-29 11:55:06 UTC (rev 91985)
@@ -39,6 +39,7 @@
Q_OBJECT
Q_PROPERTY(QString title READ title NOTIFY titleChanged)
Q_PROPERTY(QUrl url READ url NOTIFY urlChanged)
+ Q_PROPERTY(int loadProgress READ loadProgress NOTIFY loadProgressChanged)
public:
QTouchWebPage(QSGItem* parent = 0);
@@ -49,6 +50,7 @@
Q_INVOKABLE QUrl url() const;
Q_INVOKABLE QString title() const;
+ int loadProgress() const;
QAction* navigationAction(QtWebKit::NavigationAction which);
@@ -61,7 +63,7 @@
void loadStarted();
void loadSucceeded();
void loadFailed(const QWebError&);
- void loadProgress(int progress);
+ void loadProgressChanged(int progress);
protected:
virtual void keyPressEvent(QKeyEvent*);
Modified: trunk/Source/WebKit2/UIProcess/API/qt/tests/commonviewtests/tst_commonviewtests.cpp (91984 => 91985)
--- trunk/Source/WebKit2/UIProcess/API/qt/tests/commonviewtests/tst_commonviewtests.cpp 2011-07-29 11:30:45 UTC (rev 91984)
+++ trunk/Source/WebKit2/UIProcess/API/qt/tests/commonviewtests/tst_commonviewtests.cpp 2011-07-29 11:55:06 UTC (rev 91985)
@@ -37,6 +37,7 @@
void backAndForward();
void reload();
void stop();
+ void loadProgress();
void show();
private:
@@ -150,6 +151,19 @@
viewAbstraction->triggerNavigationAction(QtWebKit::Stop);
}
+void tst_CommonViewTests::loadProgress()
+{
+ QCOMPARE(viewAbstraction->loadProgress(), 0);
+
+ viewAbstraction->load(QUrl::fromLocalFile(QLatin1String(TESTS_SOURCE_DIR "/html/basic_page.html")));
+ QSignalSpy loadProgressChangedSpy(viewAbstraction.data(), SIGNAL(loadProgressChanged(int)));
+ QVERIFY(waitForSignal(viewAbstraction.data(), SIGNAL(loadSucceeded())));
+
+ QVERIFY(loadProgressChangedSpy.count() >= 1);
+
+ QCOMPARE(viewAbstraction->loadProgress(), 100);
+}
+
void tst_CommonViewTests::show()
{
// This should not crash.
Modified: trunk/Source/WebKit2/UIProcess/API/qt/tests/commonviewtests/webviewabstraction.cpp (91984 => 91985)
--- trunk/Source/WebKit2/UIProcess/API/qt/tests/commonviewtests/webviewabstraction.cpp 2011-07-29 11:30:45 UTC (rev 91984)
+++ trunk/Source/WebKit2/UIProcess/API/qt/tests/commonviewtests/webviewabstraction.cpp 2011-07-29 11:55:06 UTC (rev 91985)
@@ -35,6 +35,7 @@
connect(touchWebView()->page(), SIGNAL(loadStarted()), this, SLOT(touchViewLoadStarted()));
connect(touchWebView()->page(), SIGNAL(loadSucceeded()), this, SLOT(touchViewLoadSucceeded()));
connect(touchWebView()->page(), SIGNAL(loadFailed(QWebError)), this, SLOT(touchViewLoadFailed(QWebError)));
+ connect(touchWebView()->page(), SIGNAL(loadProgressChanged(int)), this, SLOT(touchViewLoadProgressChanged(int)));
screenHalf.moveLeft(screenHalf.right());
m_desktopWebViewWindow.setGeometry(screenHalf);
@@ -42,6 +43,7 @@
connect(desktopWebView(), SIGNAL(loadStarted()), this, SLOT(desktopViewLoadStarted()));
connect(desktopWebView(), SIGNAL(loadSucceeded()), this, SLOT(desktopViewLoadSucceeded()));
connect(desktopWebView(), SIGNAL(loadFailed(QWebError)), this, SLOT(desktopViewLoadFailed(QWebError)));
+ connect(desktopWebView(), SIGNAL(loadProgressChanged(int)), this, SLOT(desktopViewLoadProgressChanged(int)));
}
void WebViewAbstraction::show()
@@ -79,6 +81,21 @@
return true;
}
+int WebViewAbstraction::loadProgress() const
+{
+ int touchViewProgress = touchWebView()->page()->loadProgress();
+ int desktopViewProgress = desktopWebView()->loadProgress();
+
+ if (touchViewProgress != desktopViewProgress) {
+ qWarning() << "WebViewAbstraction::loadProgress(): the load progress are different.";
+ qWarning() << "QTouchView's load progress = " << touchViewProgress;
+ qWarning() << "QDesktopView's load progress = " << desktopViewProgress;
+ return -1;
+ }
+
+ return touchViewProgress;
+}
+
void WebViewAbstraction::triggerNavigationAction(QtWebKit::NavigationAction which)
{
QAction* touchAction = touchWebView()->page()->navigationAction(which);
@@ -129,6 +146,20 @@
emit loadFailed(error);
}
+void WebViewAbstraction::touchViewLoadProgressChanged(int progress)
+{
+ m_touchViewSignalsCounter[SIGNAL(loadProgressChanged(int))]++;
+ if (m_touchViewSignalsCounter[SIGNAL(loadProgressChanged(int))] == m_desktopViewSignalsCounter[SIGNAL(loadProgressChanged(int))])
+ emit loadProgressChanged(progress);
+}
+
+void WebViewAbstraction::desktopViewLoadProgressChanged(int progress)
+{
+ m_desktopViewSignalsCounter[SIGNAL(loadProgressChanged(int))]++;
+ if (m_touchViewSignalsCounter[SIGNAL(loadProgressChanged(int))] == m_desktopViewSignalsCounter[SIGNAL(loadProgressChanged(int))])
+ emit loadProgressChanged(progress);
+}
+
QTouchWebView* WebViewAbstraction::touchWebView() const
{
return static_cast<QTouchWebView*>(m_touchWebViewWindow.webView.data());
Modified: trunk/Source/WebKit2/UIProcess/API/qt/tests/commonviewtests/webviewabstraction.h (91984 => 91985)
--- trunk/Source/WebKit2/UIProcess/API/qt/tests/commonviewtests/webviewabstraction.h 2011-07-29 11:30:45 UTC (rev 91984)
+++ trunk/Source/WebKit2/UIProcess/API/qt/tests/commonviewtests/webviewabstraction.h 2011-07-29 11:55:06 UTC (rev 91985)
@@ -39,6 +39,7 @@
void load(const QUrl&);
bool url(QUrl&) const;
+ int loadProgress() const;
void triggerNavigationAction(QtWebKit::NavigationAction);
@@ -46,6 +47,7 @@
void loadStarted();
void loadSucceeded();
void loadFailed(const QWebError&);
+ void loadProgressChanged(int);
private Q_SLOTS:
void touchViewLoadStarted();
@@ -54,6 +56,8 @@
void desktopViewLoadSucceeded();
void touchViewLoadFailed(const QWebError&);
void desktopViewLoadFailed(const QWebError&);
+ void touchViewLoadProgressChanged(int);
+ void desktopViewLoadProgressChanged(int);
private:
QTouchWebView* touchWebView() const;
Modified: trunk/Source/WebKit2/UIProcess/qt/QtWebPageProxy.cpp (91984 => 91985)
--- trunk/Source/WebKit2/UIProcess/qt/QtWebPageProxy.cpp 2011-07-29 11:30:45 UTC (rev 91984)
+++ trunk/Source/WebKit2/UIProcess/qt/QtWebPageProxy.cpp 2011-07-29 11:55:06 UTC (rev 91985)
@@ -99,6 +99,7 @@
, m_context(c)
, m_preferences(0)
, m_undoStack(adoptPtr(new QUndoStack(this)))
+ , m_loadProgress(0)
{
ASSERT(viewInterface);
memset(m_actions, 0, sizeof(m_actions));
@@ -426,6 +427,7 @@
void QtWebPageProxy::didChangeLoadProgress(int newLoadProgress)
{
+ m_loadProgress = newLoadProgress;
m_viewInterface->didChangeLoadProgress(newLoadProgress);
}
Modified: trunk/Source/WebKit2/UIProcess/qt/QtWebPageProxy.h (91984 => 91985)
--- trunk/Source/WebKit2/UIProcess/qt/QtWebPageProxy.h 2011-07-29 11:30:45 UTC (rev 91984)
+++ trunk/Source/WebKit2/UIProcess/qt/QtWebPageProxy.h 2011-07-29 11:55:06 UTC (rev 91985)
@@ -134,6 +134,7 @@
void loadDidSucceed();
void loadDidFail(const QWebError&);
void didChangeLoadProgress(int);
+ int loadProgress() const { return m_loadProgress; }
void paint(QPainter* painter, QRect);
@@ -197,6 +198,7 @@
mutable QWKPreferences* m_preferences;
OwnPtr<QUndoStack> m_undoStack;
+ int m_loadProgress;
};
#endif /* QtWebPageProxy_h */
Modified: trunk/Source/WebKit2/UIProcess/qt/TouchViewInterface.cpp (91984 => 91985)
--- trunk/Source/WebKit2/UIProcess/qt/TouchViewInterface.cpp 2011-07-29 11:30:45 UTC (rev 91984)
+++ trunk/Source/WebKit2/UIProcess/qt/TouchViewInterface.cpp 2011-07-29 11:55:06 UTC (rev 91985)
@@ -177,7 +177,7 @@
void TouchViewInterface::didChangeLoadProgress(int percentageLoaded)
{
- emit m_pageView->loadProgress(percentageLoaded);
+ emit m_pageView->loadProgressChanged(percentageLoaded);
}
void TouchViewInterface::showContextMenu(QSharedPointer<QMenu>)