summaryrefslogtreecommitdiffstats
path: root/src/gui/kernel/qinputdevice.cpp
diff options
context:
space:
mode:
authorShawn Rutledge <shawn.rutledge@qt.io>2020-06-30 12:06:37 +0200
committerShawn Rutledge <shawn.rutledge@qt.io>2020-07-01 06:53:14 +0200
commit836c0b5a24f5ceb8ed7dce0129f433bf23f58c25 (patch)
treecbc0486f9f78242deff0352e5ff698c4dbe61976 /src/gui/kernel/qinputdevice.cpp
parentacbe4190e9a126f48a0f7ecd6889c010ea44ce39 (diff)
Make QDebug operator<< polymorphic for QPointingDevice
At least it will look polymorphic by doing dispatch internally. Adding pointingDeviceType avoids the need for qobject_cast, and will probably also be useful in other contexts. Change-Id: I3b6d13765bdf3add9a8208de6f0e98018e40cc42 Reviewed-by: Friedemann Kleint <Friedemann.Kleint@qt.io>
Diffstat (limited to 'src/gui/kernel/qinputdevice.cpp')
-rw-r--r--src/gui/kernel/qinputdevice.cpp4
1 files changed, 4 insertions, 0 deletions
diff --git a/src/gui/kernel/qinputdevice.cpp b/src/gui/kernel/qinputdevice.cpp
index e70b0d61be..d64f2c4ddc 100644
--- a/src/gui/kernel/qinputdevice.cpp
+++ b/src/gui/kernel/qinputdevice.cpp
@@ -39,6 +39,7 @@
#include "qinputdevice.h"
#include "qinputdevice_p.h"
+#include "qpointingdevice.h"
#include <QCoreApplication>
#include <QDebug>
#include <QLoggingCategory>
@@ -278,6 +279,9 @@ bool QInputDevice::operator==(const QInputDevice &other) const
#ifndef QT_NO_DEBUG_STREAM
QDebug operator<<(QDebug debug, const QInputDevice *device)
{
+ const QInputDevicePrivate *d = QInputDevicePrivate::get(device);
+ if (d->pointingDeviceType)
+ return operator<<(debug, static_cast<const QPointingDevice *>(device));
QDebugStateSaver saver(debug);
debug.nospace();
debug.noquote();