aboutsummaryrefslogtreecommitdiffstats
path: root/src/quick/items/qquickmultipointtoucharea.cpp
diff options
context:
space:
mode:
authorYann Bodson <yann.bodson@nokia.com>2012-02-16 13:45:40 +1000
committerQt by Nokia <qt-info@nokia.com>2012-02-17 04:28:35 +0100
commit2c21a3a61f5e6477e637d25d822643db18c67873 (patch)
treee5df2701415ac8a45bb8038ef6a9b67ba5df8afc /src/quick/items/qquickmultipointtoucharea.cpp
parentacc54f9c0a6367edddb1fb2bba40b3341f9b384c (diff)
Provide visual debugging for MouseArea and TouchArea
Display MouseAreas and TouchAreas as semi transparent rectangles when the environment variable QML_VISUAL_TOUCH_DEBUGGING is set. Task-number: QTBUG-24283 Change-Id: Iec8482a79ed1d4b802c29a5f7104af4e0a6eab7d Reviewed-by: Aaron Kennedy <aaron.kennedy@nokia.com>
Diffstat (limited to 'src/quick/items/qquickmultipointtoucharea.cpp')
-rw-r--r--src/quick/items/qquickmultipointtoucharea.cpp23
1 files changed, 23 insertions, 0 deletions
diff --git a/src/quick/items/qquickmultipointtoucharea.cpp b/src/quick/items/qquickmultipointtoucharea.cpp
index 32c8c386bf..766ce67e43 100644
--- a/src/quick/items/qquickmultipointtoucharea.cpp
+++ b/src/quick/items/qquickmultipointtoucharea.cpp
@@ -41,6 +41,8 @@
#include "qquickmultipointtoucharea_p.h"
#include <QtQuick/qquickcanvas.h>
+#include <private/qsgadaptationlayer_p.h>
+#include <private/qquickitem_p.h>
#include <QEvent>
#include <QMouseEvent>
#include <math.h>
@@ -48,6 +50,8 @@
QT_BEGIN_NAMESPACE
+DEFINE_BOOL_CONFIG_OPTION(qmlVisualTouchDebugging, QML_VISUAL_TOUCH_DEBUGGING)
+
/*!
\qmlclass TouchPoint QQuickTouchPoint
\inqmlmodule QtQuick 2
@@ -307,6 +311,9 @@ QQuickMultiPointTouchArea::QQuickMultiPointTouchArea(QQuickItem *parent)
{
setAcceptedMouseButtons(Qt::LeftButton);
setFiltersChildMouseEvents(true);
+ if (qmlVisualTouchDebugging()) {
+ setFlag(QQuickItem::ItemHasContents);
+ }
}
QQuickMultiPointTouchArea::~QQuickMultiPointTouchArea()
@@ -738,4 +745,20 @@ bool QQuickMultiPointTouchArea::shouldFilter(QEvent *event)
return false;
}
+QSGNode *QQuickMultiPointTouchArea::updatePaintNode(QSGNode *oldNode, UpdatePaintNodeData *data)
+{
+ Q_UNUSED(data);
+
+ if (!qmlVisualTouchDebugging())
+ return 0;
+
+ QSGRectangleNode *rectangle = static_cast<QSGRectangleNode *>(oldNode);
+ if (!rectangle) rectangle = QQuickItemPrivate::get(this)->sceneGraphContext()->createRectangleNode();
+
+ rectangle->setRect(QRectF(0, 0, width(), height()));
+ rectangle->setColor(QColor(255, 0, 0, 50));
+ rectangle->update();
+ return rectangle;
+}
+
QT_END_NAMESPACE