diff --git a/src/gui/kernel/qevent.cpp b/src/gui/kernel/qevent.cpp
index 492f2a11c9f7ebf9f80cf01a8ba7ee8446a38aae..5f009e75fa4317bde9978c834b912d29827cb0e8 100644
--- a/src/gui/kernel/qevent.cpp
+++ b/src/gui/kernel/qevent.cpp
@@ -46,6 +46,7 @@
 #include "qpa/qplatformdrag.h"
 #include "private/qevent_p.h"
 #include "qdebug.h"
+#include "qmetaobject.h"
 #include "qmimedata.h"
 #include "private/qdnd_p.h"
 #include "qevent_p.h"
@@ -3437,346 +3438,353 @@ static inline void formatInputMethodQueryEvent(QDebug d, const QInputMethodQuery
     d << "})";
 }
 
-QDebug operator<<(QDebug dbg, const QEvent *e) {
-    // More useful event output could be added here
-    if (!e)
-        return dbg << "QEvent(this = 0x0)";
-    const char *n = 0;
-    switch (e->type()) {
-    case QEvent::Timer:
-        n = "Timer";
-        break;
+static const char *eventTypeName(QEvent::Type t)
+{
+    static const int enumIdx = QEvent::staticMetaObject.indexOfEnumerator("Type");
+    return t <= QEvent::User
+        ? QEvent::staticMetaObject.enumerator(enumIdx).valueToKey(t)
+        : "User";
+}
+
+static const char *eventClassName(QEvent::Type t)
+{
+    switch (t) {
+    case QEvent::ActionAdded:
+    case QEvent::ActionRemoved:
+    case QEvent::ActionChanged:
+        return "QActionEvent";
     case QEvent::MouseButtonPress:
-    case QEvent::MouseMove:
     case QEvent::MouseButtonRelease:
     case QEvent::MouseButtonDblClick:
-    {
-        const QMouseEvent *me = static_cast<const QMouseEvent*>(e);
-        switch(me->type()) {
-        case QEvent::MouseButtonPress:
-            n = "MouseButtonPress";
-            break;
-        case QEvent::MouseMove:
-            n = "MouseMove";
-            break;
-        case QEvent::MouseButtonRelease:
-            n = "MouseButtonRelease";
-            break;
-        case QEvent::MouseButtonDblClick:
-        default:
-            n = "MouseButtonDblClick";
-            break;
-        }
-        QDebug nsp = dbg.nospace();
-        nsp << "QMouseEvent("  << n
-                      << ", " << me->button()
-                      << ", " << hex << (int)me->buttons()
-                      << ", " << hex << (int)me->modifiers() << dec;
-        if (const Qt::MouseEventSource source = me->source())
-            nsp << ", source = " << source;
-        if (const Qt::MouseEventFlags flags = me->flags())
-            nsp << ", flags = " << hex << int(flags) << dec;
-        nsp << ')';
-    }
-    return dbg.space();
-
-#ifndef QT_NO_TOOLTIP
-    case QEvent::ToolTip:
-        n = "ToolTip";
-        break;
-#endif
-    case QEvent::WindowActivate:
-        n = "WindowActivate";
-        break;
-    case QEvent::WindowDeactivate:
-        n = "WindowDeactivate";
-        break;
-    case QEvent::ActivationChange:
-        n = "ActivationChange";
-        break;
-#ifndef QT_NO_WHEELEVENT
-    case QEvent::Wheel:
-        dbg.nospace() << "QWheelEvent("
-                      << static_cast<const QWheelEvent *>(e)->pixelDelta()
-                      << static_cast<const QWheelEvent *>(e)->angleDelta()
-                      << ')';
-        return dbg.space();
-#endif
+    case QEvent::MouseMove:
+    case QEvent::NonClientAreaMouseMove:
+    case QEvent::NonClientAreaMouseButtonPress:
+    case QEvent::NonClientAreaMouseButtonRelease:
+    case QEvent::NonClientAreaMouseButtonDblClick:
+        return "QMouseEvent";
+    case QEvent::DragEnter:
+        return "QDragEnterEvent";
+    case QEvent::DragMove:
+        return "QDragMoveEvent";
+    case QEvent::Drop:
+        return "QDropEvent";
     case QEvent::KeyPress:
     case QEvent::KeyRelease:
     case QEvent::ShortcutOverride:
-        {
-            const QKeyEvent *ke = static_cast<const QKeyEvent*>(e);
-            switch(ke->type()) {
-            case QEvent::ShortcutOverride:
-                n = "ShortcutOverride";
-                break;
-            case QEvent::KeyRelease:
-                n = "KeyRelease";
-                break;
-            case QEvent::KeyPress:
-            default:
-                n = "KeyPress";
-                break;
-            }
-            dbg.nospace() << "QKeyEvent("  << n
-                          << ", " << hex << ke->key()
-                          << ", " << hex << (int)ke->modifiers()
-                          << ", \"" << ke->text()
-                          << "\", " << ke->isAutoRepeat()
-                          << ", " << ke->count()
-                          << ')';
-        }
-        return dbg.space();
+        return "QKeyEvent";
     case QEvent::FocusIn:
-        dbg.nospace() << "QFocusEvent(FocusIn, reason="
-            << static_cast<const QFocusEvent *>(e)->reason() << ')';
-        return dbg.space();
     case QEvent::FocusOut:
-        dbg.nospace() << "QFocusEvent(FocusOut, reason="
-            << static_cast<const QFocusEvent *>(e)->reason() << ')';
-        return dbg.space();
-    case QEvent::Enter:
-        n = "Enter";
-        break;
-    case QEvent::Leave:
-        n = "Leave";
-        break;
-    case QEvent::PaletteChange:
-        n = "PaletteChange";
-        break;
-    case QEvent::PolishRequest:
-        n = "PolishRequest";
-        break;
-    case QEvent::Polish:
-        n = "Polish";
-        break;
-    case QEvent::UpdateRequest:
-        n = "UpdateRequest";
-        break;
+    case QEvent::FocusAboutToChange:
+        return "QFocusEvent";
+    case QEvent::ChildAdded:
+    case QEvent::ChildPolished:
+    case QEvent::ChildRemoved:
+        return "QChildEvent";
     case QEvent::Paint:
-        n = "Paint";
-        break;
-    case QEvent::Move: {
-        const QMoveEvent *me = static_cast<const QMoveEvent *>(e);
-        QDebug nospace = dbg.nospace();
-        nospace << "QMoveEvent(" << me->pos();
-        if (!me->spontaneous())
-            nospace << ", non-spontaneous";
-        nospace << ')';
-    }
-        return dbg.space();
-    case QEvent::Resize: {
-        const QResizeEvent *re = static_cast<const QResizeEvent *>(e);
-        QDebug nospace = dbg.nospace();
-        nospace << "QResizeEvent(" << re->size();
-        if (!re->spontaneous())
-            nospace << ", non-spontaneous";
-        nospace << ')';
-    }
-        return dbg.space();
-    case QEvent::Create:
-        n = "Create";
-        break;
-    case QEvent::Destroy:
-        n = "Destroy";
-        break;
-    case QEvent::Close:
-        n = "Close";
-        break;
-    case QEvent::Quit:
-        n = "Quit";
-        break;
-    case QEvent::FileOpen:
-        n = "FileOpen";
-        break;
+        return "QPaintEvent";
+    case QEvent::Move:
+        return "QMoveEvent";
+    case QEvent::Resize:
+        return "QResizeEvent";
     case QEvent::Show:
-        n = "Show";
-        break;
-    case QEvent::ShowToParent:
-        n = "ShowToParent";
-        break;
+        return "QShowEvent";
     case QEvent::Hide:
-        n = "Hide";
-        break;
-    case QEvent::HideToParent:
-        n = "HideToParent";
-        break;
-    case QEvent::None:
-        n = "None";
-        break;
-    case QEvent::ParentChange:
-        n = "ParentChange";
-        break;
-    case QEvent::ParentAboutToChange:
-        n = "ParentAboutToChange";
-        break;
+        return "QHideEvent";
+    case QEvent::Enter:
+        return "QEnterEvent";
+    case QEvent::Close:
+        return "QCloseEvent";
+    case QEvent::FileOpen:
+        return "QFileOpenEvent";
+    case QEvent::NativeGesture:
+        return "QNativeGestureEvent";
+    case QEvent::Gesture:
+    case QEvent::GestureOverride:
+        return "QGestureEvent";
     case QEvent::HoverEnter:
-        n = "HoverEnter";
-        break;
-    case QEvent::HoverMove:
-        n = "HoverMove";
-        break;
     case QEvent::HoverLeave:
-        n = "HoverLeave";
-        break;
-    case QEvent::ZOrderChange:
-        n = "ZOrderChange";
-        break;
-    case QEvent::StyleChange:
-        n = "StyleChange";
-        break;
-    case QEvent::DragEnter:
-        n = "DragEnter";
-        break;
-    case QEvent::DragMove:
-        n = "DragMove";
-        break;
-    case QEvent::DragLeave:
-        n = "DragLeave";
-        break;
-    case QEvent::Drop:
-        n = "Drop";
-        break;
+    case QEvent::HoverMove:
+        return "QHoverEvent";
+    case QEvent::TabletEnterProximity:
+    case QEvent::TabletLeaveProximity:
+    case QEvent::TabletPress:
+    case QEvent::TabletMove:
+    case QEvent::TabletRelease:
+        return "QTabletEvent";
+    case QEvent::StatusTip:
+        return "QStatusTipEvent";
+    case QEvent::ToolTip:
+        return "QHelpEvent";
+    case QEvent::WindowStateChange:
+        return "QWindowStateChangeEvent";
+    case QEvent::Wheel:
+        return "QWheelEvent";
+    case QEvent::TouchBegin:
+    case QEvent::TouchUpdate:
+    case QEvent::TouchEnd:
+        return "QTouchEvent";
+    case QEvent::Shortcut:
+        return "QShortcutEvent";
+    case QEvent::InputMethod:
+        return "QInputMethodEvent";
+    case QEvent::InputMethodQuery:
+        return "QInputMethodQueryEvent";
+    case QEvent::OrientationChange:
+        return "QScreenOrientationChangeEvent";
+    case QEvent::ScrollPrepare:
+        return "QScrollPrepareEvent";
+    case QEvent::Scroll:
+        return "QScrollEvent";
     case QEvent::GraphicsSceneMouseMove:
-        n = "GraphicsSceneMouseMove";
-        break;
     case QEvent::GraphicsSceneMousePress:
-        n = "GraphicsSceneMousePress";
-        break;
     case QEvent::GraphicsSceneMouseRelease:
-        n = "GraphicsSceneMouseRelease";
-        break;
     case QEvent::GraphicsSceneMouseDoubleClick:
-        n = "GraphicsSceneMouseDoubleClick";
-        break;
+        return "QGraphicsSceneMouseEvent";
     case QEvent::GraphicsSceneContextMenu:
-        n = "GraphicsSceneContextMenu";
-        break;
     case QEvent::GraphicsSceneHoverEnter:
-        n = "GraphicsSceneHoverEnter";
-        break;
     case QEvent::GraphicsSceneHoverMove:
-        n = "GraphicsSceneHoverMove";
-        break;
     case QEvent::GraphicsSceneHoverLeave:
-        n = "GraphicsSceneHoverLeave";
-        break;
     case QEvent::GraphicsSceneHelp:
-        n = "GraphicsSceneHelp";
-        break;
     case QEvent::GraphicsSceneDragEnter:
-        n = "GraphicsSceneDragEnter";
-        break;
     case QEvent::GraphicsSceneDragMove:
-        n = "GraphicsSceneDragMove";
-        break;
     case QEvent::GraphicsSceneDragLeave:
-        n = "GraphicsSceneDragLeave";
-        break;
     case QEvent::GraphicsSceneDrop:
-        n = "GraphicsSceneDrop";
-        break;
     case QEvent::GraphicsSceneWheel:
-        n = "GraphicsSceneWheel";
-        break;
-    case QEvent::GraphicsSceneResize:
-        n = "GraphicsSceneResize";
-        break;
-    case QEvent::GraphicsSceneMove:
-        n = "GraphicsSceneMove";
+        return "QGraphicsSceneEvent";
+    case QEvent::Timer:
+        return "QTimerEvent";
+    default:
         break;
-    case QEvent::InputMethod: {
-        QDebugStateSaver saver(dbg);
-        dbg.nospace();
-        formatInputMethodEvent(dbg, static_cast<const QInputMethodEvent *>(e));
     }
-        return dbg;
-    case QEvent::InputMethodQuery: {
-        QDebugStateSaver saver(dbg);
-        dbg.nospace();
-        formatInputMethodQueryEvent(dbg, static_cast<const QInputMethodQueryEvent *>(e));
+    return "QEvent";
+}
+
+namespace {
+// Make protected QObject::staticQtMetaObject accessible for formatting enums.
+class DebugHelper : public QObject {
+public:
+    static const char *mouseButtonToString(Qt::MouseButton button)
+    {
+        static const int enumIdx = QObject::staticQtMetaObject.indexOfEnumerator("MouseButtons");
+        return QObject::staticQtMetaObject.enumerator(enumIdx).valueToKey(button);
+    }
+
+    static QByteArray mouseButtonsToString(Qt::MouseButtons buttons)
+    {
+        QByteArray result;
+        for (int i = 0; (uint)(1 << i) <= Qt::MaxMouseButton; ++i) {
+            const Qt::MouseButton button = static_cast<Qt::MouseButton>(1 << i);
+            if (buttons.testFlag(button)) {
+                if (!result.isEmpty())
+                    result.append('|');
+                result.append(mouseButtonToString(button));
+            }
+        }
+        if (result.isEmpty())
+            result.append("NoButton");
+        return result;
     }
+
+    static const char *mouseEventSourceToString(Qt::MouseEventSource source)
+    {
+        static const int enumIdx = QObject::staticQtMetaObject.indexOfEnumerator("MouseEventSource");
+        return QObject::staticQtMetaObject.enumerator(enumIdx).valueToKey(source);
+    }
+
+    static const char *focusReasonToString(Qt::FocusReason reason)
+    {
+        static const int enumIdx = QObject::staticQtMetaObject.indexOfEnumerator("FocusReason");
+        return QObject::staticQtMetaObject.enumerator(enumIdx).valueToKey(reason);
+    }
+};
+} // namespace
+
+#  ifndef QT_NO_DRAGANDDROP
+
+static void formatDropEvent(QDebug d, const QDropEvent *e)
+{
+    const QEvent::Type type = e->type();
+    d << eventClassName(type) << "(dropAction=" << e->dropAction() << ", proposedAction="
+        << e->proposedAction() << ", possibleActions=" << e->possibleActions()
+        << ", posF=" << e->posF();
+    if (type == QEvent::DragMove || type == QEvent::DragEnter)
+        d << ", answerRect=" << static_cast<const QDragMoveEvent *>(e)->answerRect();
+    d << ", formats=" << e->mimeData()->formats();
+    if (const Qt::KeyboardModifiers mods = e->keyboardModifiers())
+        d << ", keyboardModifiers=" << mods;
+    d << ", " << DebugHelper::mouseButtonsToString(e->mouseButtons()).constData();
+}
+
+#  endif // !QT_NO_DRAGANDDROP
+
+#  ifndef QT_NO_TABLETEVENT
+
+static void formatTabletEvent(QDebug d, const QTabletEvent *e)
+{
+    const QEvent::Type type = e->type();
+    d << eventClassName(type)  << '(' << eventTypeName(type) << ", pos=" << e->posF()
+      << ", pointerType=" << e->pointerType()
+      << ", pressure=" << e->pressure() << ", rotation=" << e->rotation()
+      << ", " << DebugHelper::mouseButtonsToString(e->buttons()).constData();
+}
+
+#  endif // !QT_NO_TABLETEVENT
+
+QDebug operator<<(QDebug dbg, const QEvent *e)
+{
+    QDebugStateSaver saver(dbg);
+    dbg.nospace();
+    if (!e) {
+        dbg << "QEvent(this = 0x0)";
         return dbg;
-    case QEvent::CursorChange:
-        n = "CursorChange";
-        break;
-    case QEvent::ToolTipChange:
-        n = "ToolTipChange";
-        break;
-    case QEvent::StatusTip:
-        n = "StatusTip";
+    }
+    // More useful event output could be added here
+    const QEvent::Type type = e->type();
+    switch (type) {
+    case QEvent::Expose:
+        dbg << "QExposeEvent(" << static_cast<const QExposeEvent *>(e)->region() << ')';
         break;
-    case QEvent::WhatsThis:
-        n = "WhatsThis";
+    case QEvent::MouseButtonPress:
+    case QEvent::MouseMove:
+    case QEvent::MouseButtonRelease:
+    case QEvent::MouseButtonDblClick:
+    case QEvent::NonClientAreaMouseButtonPress:
+    case QEvent::NonClientAreaMouseMove:
+    case QEvent::NonClientAreaMouseButtonRelease:
+    case QEvent::NonClientAreaMouseButtonDblClick:
+    {
+        const QMouseEvent *me = static_cast<const QMouseEvent*>(e);
+        const Qt::MouseButton button = me->button();
+        const Qt::MouseButtons buttons = me->buttons();
+        dbg << "QMouseEvent(" << eventTypeName(type);
+        if (type != QEvent::MouseMove && type != QEvent::NonClientAreaMouseMove)
+            dbg << ", " << DebugHelper::mouseButtonToString(button);
+        if (buttons && button != buttons)
+            dbg << ", buttons=" << DebugHelper::mouseButtonsToString(buttons).constData();
+        if (const int mods = int(me->modifiers()))
+            dbg << ", modifiers=0x" << hex << mods << dec;
+        dbg << ", localPos=" << me->localPos() << ", screenPos=" << me->screenPos();
+        if (me->source())
+            dbg << ", " << DebugHelper::mouseEventSourceToString(me->source());
+        if (const Qt::MouseEventFlags flags = me->flags())
+            dbg << ", flags = " << hex << int(flags) << dec;
+        dbg << ')';
+    }
         break;
-    case QEvent::FontChange:
-        n = "FontChange";
+#  ifndef QT_NO_WHEELEVENT
+    case QEvent::Wheel: {
+        const QWheelEvent *we = static_cast<const QWheelEvent *>(e);
+        dbg << "QWheelEvent(" << "pixelDelta=" << we->pixelDelta() << ", angleDelta=" << we->angleDelta() << ')';
+    }
         break;
-    case QEvent::Style:
-        n = "Style";
+#  endif // !QT_NO_WHEELEVENT
+    case QEvent::KeyPress:
+    case QEvent::KeyRelease:
+    case QEvent::ShortcutOverride:
+    {
+        const QKeyEvent *ke = static_cast<const QKeyEvent *>(e);
+        dbg << "QKeyEvent("  << eventTypeName(type)
+            << ", key=0x" << hex << ke->key() << dec;
+        if (const int mods = ke->modifiers())
+            dbg << ", modifiers=0x" << hex << mods << dec;
+        if (!ke->text().isEmpty())
+            dbg << ", text=" << ke->text();
+        if (ke->isAutoRepeat())
+            dbg << ", autorepeat, count=" << ke->count();
+        dbg << ')';
+    }
         break;
-    case QEvent::KeyboardLayoutChange:
-        n = "KeyboardLayoutChange";
+    case QEvent::Shortcut: {
+        const QShortcutEvent *se = static_cast<const QShortcutEvent *>(e);
+        dbg << "QShortcutEvent(" << se->key().toString() << ", id=" << se->shortcutId();
+        if (se->isAmbiguous())
+            dbg << ", ambiguous";
+        dbg << ')';
+    }
         break;
-    case QEvent::DynamicPropertyChange:
-        n = "DynamicPropertyChange";
+    case QEvent::FocusAboutToChange:
+    case QEvent::FocusIn:
+    case QEvent::FocusOut:
+        dbg << "QFocusEvent(" << eventTypeName(type) << ", "
+            << DebugHelper::focusReasonToString(static_cast<const QFocusEvent *>(e)->reason())
+            << ')';
         break;
-    case QEvent::GrabMouse:
-        n = "GrabMouse";
+    case QEvent::Move: {
+        const QMoveEvent *me = static_cast<const QMoveEvent *>(e);
+        dbg << "QMoveEvent(" << me->pos();
+        if (!me->spontaneous())
+            dbg << ", non-spontaneous";
+        dbg << ')';
+    }
+         break;
+    case QEvent::Resize: {
+        const QResizeEvent *re = static_cast<const QResizeEvent *>(e);
+        dbg << "QResizeEvent(" << re->size();
+        if (!re->spontaneous())
+            dbg << ", non-spontaneous";
+        dbg << ')';
+    }
         break;
-    case QEvent::UngrabMouse:
-        n = "UngrabMouse";
+#  ifndef QT_NO_DRAGANDDROP
+    case QEvent::DragEnter:
+    case QEvent::DragMove:
+    case QEvent::Drop:
+        formatDropEvent(dbg, static_cast<const QDropEvent *>(e));
         break;
-    case QEvent::GrabKeyboard:
-        n = "GrabKeyboard";
+#  endif // !QT_NO_DRAGANDDROP
+    case QEvent::InputMethod:
+        formatInputMethodEvent(dbg, static_cast<const QInputMethodEvent *>(e));
         break;
-    case QEvent::UngrabKeyboard:
-        n = "UngrabKeyboard";
+    case QEvent::InputMethodQuery:
+        formatInputMethodQueryEvent(dbg, static_cast<const QInputMethodQueryEvent *>(e));
         break;
     case QEvent::TouchBegin:
-        n = "TouchBegin";
     case QEvent::TouchUpdate:
-        n = n ? n : "TouchUpdate";
     case QEvent::TouchEnd:
-        n = n ? n : "TouchEnd";
-        formatTouchEvent(dbg.nospace(), n, *static_cast<const QTouchEvent*>(e));
-        return dbg.space();
-    case QEvent::ChildAdded: n = n ? n : "ChildAdded";
-    case QEvent::ChildPolished: n = n ? n : "ChildPolished";
-    case QEvent::ChildRemoved: n = n ? n : "ChildRemoved";
-        dbg.nospace() << "QChildEvent(" << n << ", " << (static_cast<const QChildEvent*>(e))->child();
-        return dbg.space();
-#ifndef QT_NO_GESTURES
-    case QEvent::Gesture:
-        n = "Gesture";
+        formatTouchEvent(dbg, eventTypeName(type), *static_cast<const QTouchEvent*>(e));
         break;
-    case QEvent::GestureOverride:
-        n = "GestureOverride";
-        break;
-#endif
-    case QEvent::MetaCall:
-        n = "MetaCall";
+    case QEvent::ChildAdded:
+    case QEvent::ChildPolished:
+    case QEvent::ChildRemoved:
+        dbg << "QChildEvent(" << eventTypeName(type) << ", " << (static_cast<const QChildEvent*>(e))->child() << ')';
         break;
+#  ifndef QT_NO_GESTURES
+    case QEvent::NativeGesture: {
+        const QNativeGestureEvent *ne = static_cast<const QNativeGestureEvent *>(e);
+        dbg << "QNativeGestureEvent(localPos=" << ne->localPos() << ", value=" << ne->value() << ')';
+    }
+         break;
+#  endif // !QT_NO_GESTURES
     case QEvent::ApplicationStateChange:
-        dbg.nospace() << "QApplicationStateChangeEvent("
+        dbg << "QApplicationStateChangeEvent("
             << static_cast<const QApplicationStateChangeEvent *>(e)->applicationState() << ')';
-        return dbg.space();
-    case QEvent::WindowTitleChange:
-        n = "WindowTitleChange";
         break;
-    case QEvent::Expose:
-        n = "Expose";
+    case QEvent::ContextMenu:
+        dbg << "QContextMenuEvent(" << static_cast<const QContextMenuEvent *>(e)->pos() << ')';
+        break;
+#  ifndef QT_NO_TABLETEVENT
+    case QEvent::TabletEnterProximity:
+    case QEvent::TabletLeaveProximity:
+    case QEvent::TabletPress:
+    case QEvent::TabletMove:
+    case QEvent::TabletRelease:
+        formatTabletEvent(dbg, static_cast<const QTabletEvent *>(e));
+        break;
+#  endif // !QT_NO_TABLETEVENT
+    case QEvent::Enter:
+        dbg << "QEnterEvent(" << static_cast<const QEnterEvent *>(e)->pos() << ')';
+        break;
+    case QEvent::Timer:
+        dbg << "QTimerEvent(id=" << static_cast<const QTimerEvent *>(e)->timerId() << ')';
         break;
     default:
-        dbg.nospace() << "QEvent(" << (const void *)e << ", type = " << e->type() << ')';
-        return dbg.space();
+        dbg << eventClassName(type) << '(' << eventTypeName(type) << ", "
+            << (const void *)e << ", type = " << e->type() << ')';
+        break;
     }
-
-    dbg.nospace() << 'Q' << n << "Event(" << (const void *)e << ')';
-    return dbg.space();
+    return dbg;
 }
-#endif
+#endif // !QT_NO_DEBUG_STREAM
 
 /*!
     \class QShortcutEvent