diff options
author | Yann Bodson <yann.bodson@nokia.com> | 2012-02-16 13:45:40 +1000 |
---|---|---|
committer | Qt by Nokia <qt-info@nokia.com> | 2012-02-17 04:28:35 +0100 |
commit | 2c21a3a61f5e6477e637d25d822643db18c67873 (patch) | |
tree | e5df2701415ac8a45bb8038ef6a9b67ba5df8afc /src/quick/items/qquickmultipointtoucharea.cpp | |
parent | acc54f9c0a6367edddb1fb2bba40b3341f9b384c (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.cpp | 23 |
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 |