Diff
Modified: trunk/Tools/ChangeLog (102347 => 102348)
--- trunk/Tools/ChangeLog 2011-12-08 18:23:08 UTC (rev 102347)
+++ trunk/Tools/ChangeLog 2011-12-08 18:38:53 UTC (rev 102348)
@@ -1,3 +1,21 @@
+2011-12-08 Alexander Færøy <[email protected]>
+
+ [Qt] Visualize mock points in the Qt MiniBrowser
+ https://bugs.webkit.org/show_bug.cgi?id=74074
+
+ Reviewed by Tor Arne Vestbø.
+
+ * MiniBrowser/qt/BrowserWindow.cpp:
+ (BrowserWindow::updateVisualMockTouchPoints):
+ * MiniBrowser/qt/BrowserWindow.h:
+ * MiniBrowser/qt/MiniBrowser.qrc:
+ * MiniBrowser/qt/MiniBrowserApplication.cpp:
+ (MiniBrowserApplication::notify):
+ (MiniBrowserApplication::sendTouchEvent):
+ * MiniBrowser/qt/MiniBrowserApplication.h:
+ * MiniBrowser/qt/icons/touchpoint.png: Added.
+ * MiniBrowser/qt/qml/MockTouchPoint.qml: Added.
+
2011-12-08 Simon Hausmann <[email protected]>
[Qt] WebKitTestRunner crashes with debug builds
Modified: trunk/Tools/MiniBrowser/qt/BrowserWindow.cpp (102347 => 102348)
--- trunk/Tools/MiniBrowser/qt/BrowserWindow.cpp 2011-12-08 18:23:08 UTC (rev 102347)
+++ trunk/Tools/MiniBrowser/qt/BrowserWindow.cpp 2011-12-08 18:38:53 UTC (rev 102348)
@@ -34,6 +34,7 @@
#include <QDeclarativeEngine>
#include <QDir>
+#include <QPointF>
BrowserWindow::BrowserWindow(WindowOptions* options)
{
@@ -82,6 +83,30 @@
return window;
}
+void BrowserWindow::updateVisualMockTouchPoints(const QList<QWindowSystemInterface::TouchPoint>& touchPoints)
+{
+ foreach (const QWindowSystemInterface::TouchPoint& touchPoint, touchPoints) {
+ QString mockTouchPointIdentifier = QString("mockTouchPoint%1").arg(touchPoint.id);
+ QQuickItem* mockTouchPointItem = rootObject()->findChild<QQuickItem*>(mockTouchPointIdentifier, Qt::FindDirectChildrenOnly);
+
+ if (!mockTouchPointItem) {
+ QDeclarativeComponent touchMockPointComponent(engine(), QUrl("qrc:/qml/MockTouchPoint.qml"));
+ mockTouchPointItem = qobject_cast<QQuickItem*>(touchMockPointComponent.create());
+ mockTouchPointItem->setObjectName(mockTouchPointIdentifier);
+ mockTouchPointItem->setParent(rootObject());
+ mockTouchPointItem->setParentItem(rootObject());
+ }
+
+ QPointF position = touchPoint.area.topLeft();
+ position.rx() -= geometry().x();
+ position.ry() -= geometry().y();
+
+ mockTouchPointItem->setX(position.x());
+ mockTouchPointItem->setY(position.y());
+ mockTouchPointItem->setProperty("pressed", QVariant(touchPoint.state != Qt::TouchPointReleased));
+ }
+}
+
void BrowserWindow::screenshot()
{
}
Modified: trunk/Tools/MiniBrowser/qt/BrowserWindow.h (102347 => 102348)
--- trunk/Tools/MiniBrowser/qt/BrowserWindow.h 2011-12-08 18:23:08 UTC (rev 102347)
+++ trunk/Tools/MiniBrowser/qt/BrowserWindow.h 2011-12-08 18:38:53 UTC (rev 102348)
@@ -44,6 +44,8 @@
void load(const QString& url);
QQuickWebView* webView() const;
+ void updateVisualMockTouchPoints(const QList<QWindowSystemInterface::TouchPoint>& touchPoints);
+
public slots:
BrowserWindow* newWindow(const QString& url = ""
Modified: trunk/Tools/MiniBrowser/qt/MiniBrowser.qrc (102347 => 102348)
--- trunk/Tools/MiniBrowser/qt/MiniBrowser.qrc 2011-12-08 18:23:08 UTC (rev 102347)
+++ trunk/Tools/MiniBrowser/qt/MiniBrowser.qrc 2011-12-08 18:38:53 UTC (rev 102348)
@@ -4,7 +4,9 @@
<file>icons/previous.png</file>
<file>icons/refresh.png</file>
<file>icons/stop.png</file>
+ <file>icons/touchpoint.png</file>
<file>qml/BrowserWindow.qml</file>
+ <file>qml/MockTouchPoint.qml</file>
<file>useragentlist.txt</file>
</qresource>
</RCC>
Modified: trunk/Tools/MiniBrowser/qt/MiniBrowserApplication.cpp (102347 => 102348)
--- trunk/Tools/MiniBrowser/qt/MiniBrowserApplication.cpp 2011-12-08 18:23:08 UTC (rev 102347)
+++ trunk/Tools/MiniBrowser/qt/MiniBrowserApplication.cpp 2011-12-08 18:38:53 UTC (rev 102348)
@@ -28,6 +28,7 @@
#include "MiniBrowserApplication.h"
+#include "BrowserWindow.h"
#include "utils.h"
#include <QRegExp>
#include <QEvent>
@@ -92,16 +93,17 @@
return QApplication::notify(target, event);
}
- QWindow* targetWindow = qobject_cast<QWindow*>(target);
+ BrowserWindow* browserWindow = qobject_cast<BrowserWindow*>(target);
+ Q_ASSERT(browserWindow);
if (event->type() == QEvent::KeyRelease && static_cast<QKeyEvent*>(event)->key() == Qt::Key_Control) {
foreach (int id, m_heldTouchPoints)
if (m_touchPoints.contains(id))
m_touchPoints[id].state = Qt::TouchPointReleased;
m_heldTouchPoints.clear();
- sendTouchEvent(targetWindow);
+ sendTouchEvent(browserWindow);
}
- if (targetWindow && isMouseEvent(event)) {
+ if (browserWindow && isMouseEvent(event)) {
const QMouseEvent* const mouseEvent = static_cast<QMouseEvent*>(event);
QWindowSystemInterface::TouchPoint touchPoint;
@@ -147,17 +149,19 @@
it.value().state = Qt::TouchPointStationary;
}
- sendTouchEvent(targetWindow);
+ sendTouchEvent(browserWindow);
}
return QApplication::notify(target, event);
}
-void MiniBrowserApplication::sendTouchEvent(QWindow* targetWindow)
+void MiniBrowserApplication::sendTouchEvent(BrowserWindow* browserWindow)
{
m_pendingFakeTouchEventCount++;
- QWindowSystemInterface::handleTouchEvent(targetWindow, QEvent::None, QTouchEvent::TouchScreen, m_touchPoints.values());
+ QWindowSystemInterface::handleTouchEvent(browserWindow, QEvent::None, QTouchEvent::TouchScreen, m_touchPoints.values());
+ browserWindow->updateVisualMockTouchPoints(m_touchPoints.values());
+
// Get rid of touch-points that are no longer valid
foreach (const QWindowSystemInterface::TouchPoint& touchPoint, m_touchPoints) {
if (touchPoint.state == Qt::TouchPointReleased)
Modified: trunk/Tools/MiniBrowser/qt/MiniBrowserApplication.h (102347 => 102348)
--- trunk/Tools/MiniBrowser/qt/MiniBrowserApplication.h 2011-12-08 18:23:08 UTC (rev 102347)
+++ trunk/Tools/MiniBrowser/qt/MiniBrowserApplication.h 2011-12-08 18:38:53 UTC (rev 102348)
@@ -38,6 +38,8 @@
#include <QUrl>
#include "qwindowsysteminterface_qpa.h"
+class BrowserWindow;
+
class WindowOptions : public QObject {
Q_OBJECT
Q_PROPERTY(bool printLoadedUrls READ printLoadedUrls)
@@ -88,7 +90,7 @@
virtual bool notify(QObject*, QEvent*);
private:
- void sendTouchEvent(QWindow* targetWindow);
+ void sendTouchEvent(BrowserWindow*);
void handleUserOptions();
private:
Added: trunk/Tools/MiniBrowser/qt/icons/touchpoint.png (0 => 102348)
--- trunk/Tools/MiniBrowser/qt/icons/touchpoint.png (rev 0)
+++ trunk/Tools/MiniBrowser/qt/icons/touchpoint.png 2011-12-08 18:38:53 UTC (rev 102348)
@@ -0,0 +1,13 @@
+\x89PNG
+
+
+IHDR , * \xC8ݹ sRGB \xAE\xCE\xE9 bKGD \xFF \xFF \xFF\xA0\xBD\xA7\x93 pHYs \x9A\x9C tIME\xDB5;\xF6*A \xB3IDATX\xC3ՙ]L[e\xC7\xFF\xE7mO9\xFD\x96\x96\x96A\xA1
++a3h\xB2E\x85\xE9`\xE3\xCD\xF0\xC4%ܐx\xA1\xD1\x96\xE0\x94\x99\xE0$\xC6G\xDC\xDDnL0q\xF1f\x8B\x89\xC9R\xB8p\x80Sgpb\xCBw\xC5J\xBF{\xBE\xBC \x89|d\xBC=m!\xFB_\x9E\xF3\x9C\xE7\xFC\xCE{\xFE\xEF\xE7\xC3 u{\xA6\xADq^jp
+\xC0\xD3 \x8E\xB00\xC4 \xF8 L+P\x93\xBB\x9F\xBETT\xFANF\xC9C\x9D\x83\xDE6 oxE\xE1{\xEF \xF8\xAE\xA7\xD9\xFDM^\x81;\xBD >