aboutsummaryrefslogtreecommitdiffstats
path: root/src/quick/items/qquickevents.cpp
diff options
context:
space:
mode:
authorShawn Rutledge <shawn.rutledge@qt.io>2016-10-07 13:53:42 +0200
committerShawn Rutledge <shawn.rutledge@qt.io>2016-10-07 14:25:36 +0200
commit99ba991ad732f4ea8f89bd7f13d97af1686e9a8b (patch)
tree27d4b4c04511283bcbb1b961a2156b4aeeea3f86 /src/quick/items/qquickevents.cpp
parentb026715ff336f1493579145269a7323ed15b22e3 (diff)
parent57c9d6969ac474177c77d5ea59768b39620a3b2f (diff)
Merge remote-tracking branch 'origin/5.8' into wip/pointerhandler
Diffstat (limited to 'src/quick/items/qquickevents.cpp')
-rw-r--r--src/quick/items/qquickevents.cpp24
1 files changed, 21 insertions, 3 deletions
diff --git a/src/quick/items/qquickevents.cpp b/src/quick/items/qquickevents.cpp
index fd1afb7160..12b2b80dce 100644
--- a/src/quick/items/qquickevents.cpp
+++ b/src/quick/items/qquickevents.cpp
@@ -47,7 +47,7 @@
QT_BEGIN_NAMESPACE
Q_LOGGING_CATEGORY(lcPointerEvents, "qt.quick.pointer.events")
-Q_DECLARE_LOGGING_CATEGORY(lcPointerHandlerDispatch)
+Q_LOGGING_CATEGORY(lcPointerGrab, "qt.quick.pointer.grab")
/*!
\qmltype KeyEvent
@@ -564,7 +564,14 @@ QQuickItem *QQuickEventPoint::grabberItem() const
void QQuickEventPoint::setGrabberItem(QQuickItem *grabber)
{
if (grabber != m_grabber.data()) {
- qCDebug(lcPointerHandlerDispatch) << this << grabber;
+ if (Q_UNLIKELY(lcPointerGrab().isDebugEnabled())) {
+ auto device = static_cast<const QQuickPointerEvent *>(parent())->device();
+ static const QMetaEnum stateMetaEnum = metaObject()->enumerator(metaObject()->indexOfEnumerator("State"));
+ QString deviceName = (device ? device->name() : QLatin1String("null device"));
+ deviceName.resize(16, ' '); // shorten, and align in case of sequential output
+ qCDebug(lcPointerGrab) << deviceName << "point" << hex << m_pointId << stateMetaEnum.valueToKey(state())
+ << ": grab" << m_grabber << "->" << grabber;
+ }
m_grabber = QPointer<QObject>(grabber);
m_grabberIsHandler = false;
m_sceneGrabPos = m_scenePos;
@@ -579,7 +586,14 @@ QQuickPointerHandler *QQuickEventPoint::grabberPointerHandler() const
void QQuickEventPoint::setGrabberPointerHandler(QQuickPointerHandler *grabber)
{
if (grabber != m_grabber.data()) {
- qCDebug(lcPointerHandlerDispatch) << this << grabber;
+ if (Q_UNLIKELY(lcPointerGrab().isDebugEnabled())) {
+ auto device = static_cast<const QQuickPointerEvent *>(parent())->device();
+ static const QMetaEnum stateMetaEnum = metaObject()->enumerator(metaObject()->indexOfEnumerator("State"));
+ QString deviceName = (device ? device->name() : QLatin1String("null device"));
+ deviceName.resize(16, ' '); // shorten, and align in case of sequential output
+ qCDebug(lcPointerGrab) << deviceName << "point" << hex << m_pointId << stateMetaEnum.valueToKey(state())
+ << ": grab" << m_grabber << "->" << grabber;
+ }
m_grabber = QPointer<QObject>(grabber);
m_grabberIsHandler = true;
m_sceneGrabPos = m_scenePos;
@@ -965,6 +979,10 @@ QTouchEvent *QQuickPointerTouchEvent::asTouchEvent() const
Q_QUICK_PRIVATE_EXPORT QDebug operator<<(QDebug dbg, const QQuickPointerDevice *dev) {
QDebugStateSaver saver(dbg);
dbg.nospace();
+ if (!dev) {
+ dbg << "QQuickPointerDevice(0)";
+ return dbg;
+ }
dbg << "QQuickPointerDevice("<< dev->name() << ' ';
QtDebugUtils::formatQEnum(dbg, dev->type());
dbg << ' ';