diff options
Diffstat (limited to 'src')
-rw-r--r-- | src/widgets/widgets/qdockarealayout.cpp | 16 | ||||
-rw-r--r-- | src/widgets/widgets/qdockarealayout_p.h | 1 | ||||
-rw-r--r-- | src/widgets/widgets/qdockwidget.cpp | 21 | ||||
-rw-r--r-- | src/widgets/widgets/qdockwidget.h | 5 | ||||
-rw-r--r-- | src/widgets/widgets/qmainwindowlayout_p.h | 1 |
5 files changed, 43 insertions, 1 deletions
diff --git a/src/widgets/widgets/qdockarealayout.cpp b/src/widgets/widgets/qdockarealayout.cpp index 2f1b7aa6e6..27eed4075f 100644 --- a/src/widgets/widgets/qdockarealayout.cpp +++ b/src/widgets/widgets/qdockarealayout.cpp @@ -172,13 +172,27 @@ QDockAreaLayoutItem } #ifndef QT_NO_DEBUG_STREAM +QDebug operator<<(QDebug dbg, const QDockAreaLayoutItem *item) +{ + QDebugStateSaver saver(dbg); + dbg.nospace(); + return item ? dbg << *item : dbg << "QDockAreaLayoutItem(0x0)"; +} + QDebug operator<<(QDebug dbg, const QDockAreaLayoutItem &item) { QDebugStateSaver saver(dbg); dbg.nospace(); dbg << "QDockAreaLayoutItem(" << static_cast<const void *>(&item) << "->"; if (item.widgetItem) { - dbg << "widgetItem(" << item.widgetItem->widget() << ")"; + QWidget *widget = item.widgetItem->widget(); + if (auto *dockWidget = qobject_cast<QDockWidget *>(widget)) { + dbg << "widgetItem(" << dockWidget << ")"; + } else if (auto *groupWindow = qobject_cast<QDockWidgetGroupWindow *>(widget)) { + dbg << "widgetItem(" << groupWindow << "->(" << groupWindow->dockWidgets() << "))"; + } else { + dbg << "widgetItem(" << widget << ")"; + } } else if (item.subinfo) { dbg << "subInfo(" << item.subinfo << "->(" << item.subinfo->item_list << ")"; } else if (item.placeHolderItem) { diff --git a/src/widgets/widgets/qdockarealayout_p.h b/src/widgets/widgets/qdockarealayout_p.h index b2e13d1dc3..7a33b39707 100644 --- a/src/widgets/widgets/qdockarealayout_p.h +++ b/src/widgets/widgets/qdockarealayout_p.h @@ -74,6 +74,7 @@ struct Q_AUTOTEST_EXPORT QDockAreaLayoutItem uint flags; #ifndef QT_NO_DEBUG_STREAM friend Q_AUTOTEST_EXPORT QDebug operator<<(QDebug dbg, const QDockAreaLayoutItem &item); + friend Q_AUTOTEST_EXPORT QDebug operator<<(QDebug dbg, const QDockAreaLayoutItem *item); #endif }; diff --git a/src/widgets/widgets/qdockwidget.cpp b/src/widgets/widgets/qdockwidget.cpp index 2ba0c821d4..8453a309c8 100644 --- a/src/widgets/widgets/qdockwidget.cpp +++ b/src/widgets/widgets/qdockwidget.cpp @@ -1802,6 +1802,27 @@ QWidget *QDockWidget::titleBarWidget() const return layout->widgetForRole(QDockWidgetLayout::TitleBar); } +#ifndef QT_NO_DEBUG_STREAM +QDebug operator<<(QDebug dbg, const QDockWidget *dockWidget) +{ + QDebugStateSaver saver(dbg); + dbg.nospace(); + return dockWidget ? dbg << *dockWidget : dbg << "QDockWidget(0x0)"; +} + +QDebug operator<<(QDebug dbg, const QDockWidget &dockWidget) +{ + QDebugStateSaver saver(dbg); + dbg.nospace(); + dbg << "QDockWidget(" << static_cast<const void *>(&dockWidget); + dbg << "->(ObjectName=" << dockWidget.objectName(); + dbg << "; floating=" << dockWidget.isFloating(); + dbg << "; features=" << dockWidget.features(); + dbg << ";))"; + return dbg; +} +#endif // QT_NO_DEBUG_STREAM + QT_END_NAMESPACE #include "qdockwidget.moc" diff --git a/src/widgets/widgets/qdockwidget.h b/src/widgets/widgets/qdockwidget.h index 282f0b0038..20c37f095d 100644 --- a/src/widgets/widgets/qdockwidget.h +++ b/src/widgets/widgets/qdockwidget.h @@ -64,6 +64,11 @@ public: inline bool isAreaAllowed(Qt::DockWidgetArea area) const { return (allowedAreas() & area) == area; } +#ifndef QT_NO_DEBUG_STREAM + friend Q_AUTOTEST_EXPORT QDebug operator<<(QDebug dbg, const QDockWidget &dockWidget); + friend Q_AUTOTEST_EXPORT QDebug operator<<(QDebug dbg, const QDockWidget *dockWidget); +#endif + #ifndef QT_NO_ACTION QAction *toggleViewAction() const; #endif diff --git a/src/widgets/widgets/qmainwindowlayout_p.h b/src/widgets/widgets/qmainwindowlayout_p.h index bd4790d77d..26acff5bcb 100644 --- a/src/widgets/widgets/qmainwindowlayout_p.h +++ b/src/widgets/widgets/qmainwindowlayout_p.h @@ -326,6 +326,7 @@ public: void updateCurrentGapRect(); void restore(); void apply(); + QList<QDockWidget *> dockWidgets() const { return findChildren<QDockWidget *>(); } QRect currentGapRect; QList<int> currentGapPos; |