diff options
author | Marc Mutz <marc.mutz@qt.io> | 2023-06-20 21:51:30 +0200 |
---|---|---|
committer | Marc Mutz <marc.mutz@qt.io> | 2023-06-21 01:06:39 +0200 |
commit | 46aa713c34c7bc90f3981b3d723591149572203c (patch) | |
tree | 76bc2d1a475f7c7a0df1237a6162dc0bc7c05bd3 /src/widgets/widgets/qdockarealayout.cpp | |
parent | 83a156cd1139950dd333b3151d16a86ce19b06d2 (diff) |
QDockAreaLayoutInfo: fix QDebug stream operator
The existing implementation as a member function QDALI::op<<(QDebug)
cannot possibly work, as the implicit `this` argument comes first in
this case, while for streaming operators, the QDebug object must come
first.
Rewrite as a hidden friend and apply QT_NO_DEBUG_STREAM protection as
a drive-by.
Amends faec937756810bbc478da677efb0dca4531a6222.
Task-number: QTBUG-114542
Task-number: QTBUG-112491
Pick-to: 6.6 6.5
Change-Id: Ida400d335491896ec49f2c0f9601a8430eebcd4d
Reviewed-by: Axel Spoerl <axel.spoerl@qt.io>
Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org>
Diffstat (limited to 'src/widgets/widgets/qdockarealayout.cpp')
-rw-r--r-- | src/widgets/widgets/qdockarealayout.cpp | 18 |
1 files changed, 10 insertions, 8 deletions
diff --git a/src/widgets/widgets/qdockarealayout.cpp b/src/widgets/widgets/qdockarealayout.cpp index 0dd4e16183..33162bad3b 100644 --- a/src/widgets/widgets/qdockarealayout.cpp +++ b/src/widgets/widgets/qdockarealayout.cpp @@ -171,20 +171,22 @@ QDockAreaLayoutItem return *this; } -QDebug QDockAreaLayoutItem::operator<<(QDebug dbg) +#ifndef QT_NO_DEBUG_STREAM +QDebug operator<<(QDebug dbg, const QDockAreaLayoutItem &item) { QDebugStateSaver saver(dbg); dbg.nospace(); - dbg << "QDockAreaLayoutItem(" << static_cast<void *>(this) << "->"; - if (widgetItem) - dbg << "widgetItem(" << widgetItem->widget() << ")"; - else if (subinfo) - dbg << "subInfo(" << subinfo << ")"; - else if (placeHolderItem) - dbg << "placeHolderItem(" << placeHolderItem << ")"; + dbg << "QDockAreaLayoutItem(" << static_cast<const void *>(&item) << "->"; + if (item.widgetItem) + dbg << "widgetItem(" << item.widgetItem->widget() << ")"; + else if (item.subinfo) + dbg << "subInfo(" << item.subinfo << ")"; + else if (item.placeHolderItem) + dbg << "placeHolderItem(" << item.placeHolderItem << ")"; dbg << ")"; return dbg; } +#endif // QT_NO_DEBUG_STREAM /****************************************************************************** ** QDockAreaLayoutInfo |