From ce7447d88ce5f410ae01b0f5697a86b3ba7c47f2 Mon Sep 17 00:00:00 2001 From: Christian Ehrlicher Date: Sat, 21 Sep 2019 15:25:11 +0200 Subject: QLayoutItem: make QLayoutItem::widget() const in Qt6 QLayoutItem::widget() should be const since it does not modify the class. Since this can not be done within Qt5 in a binary compatible way, change it for Qt6. Fixes: QTBUG-41997 Change-Id: I9211eb1c36a5bc4f06ab417a9df790ebedb7fcda Reviewed-by: Friedemann Kleint Reviewed-by: Richard Moe Gustavsen --- src/widgets/kernel/qlayoutengine.cpp | 11 +++++++++-- src/widgets/kernel/qlayoutitem.cpp | 14 ++++++++++---- src/widgets/kernel/qlayoutitem.h | 8 ++++++++ src/widgets/widgets/qdockwidget_p.h | 4 ++++ 4 files changed, 31 insertions(+), 6 deletions(-) (limited to 'src') diff --git a/src/widgets/kernel/qlayoutengine.cpp b/src/widgets/kernel/qlayoutengine.cpp index 19a47075a6..92b362e89d 100644 --- a/src/widgets/kernel/qlayoutengine.cpp +++ b/src/widgets/kernel/qlayoutengine.cpp @@ -376,7 +376,11 @@ Q_WIDGETS_EXPORT QSize qSmartMinSize(const QSize &sizeHint, const QSize &minSize Q_WIDGETS_EXPORT QSize qSmartMinSize(const QWidgetItem *i) { +#if QT_VERSION < QT_VERSION_CHECK(6, 0, 0) QWidget *w = const_cast(i)->widget(); +#else + QWidget *w = i->widget(); +#endif return qSmartMinSize(w->sizeHint(), w->minimumSizeHint(), w->minimumSize(), w->maximumSize(), w->sizePolicy()); @@ -414,8 +418,11 @@ Q_WIDGETS_EXPORT QSize qSmartMaxSize(const QSize &sizeHint, Q_WIDGETS_EXPORT QSize qSmartMaxSize(const QWidgetItem *i, Qt::Alignment align) { - QWidget *w = const_cast(i)->widget(); - +#if QT_VERSION < QT_VERSION_CHECK(6, 0, 0) + QWidget *w = const_cast(i)->widget(); +#else + QWidget *w = i->widget(); +#endif return qSmartMaxSize(w->sizeHint().expandedTo(w->minimumSizeHint()), w->minimumSize(), w->maximumSize(), w->sizePolicy(), align); } diff --git a/src/widgets/kernel/qlayoutitem.cpp b/src/widgets/kernel/qlayoutitem.cpp index ca5a89e4dc..fc02afb014 100644 --- a/src/widgets/kernel/qlayoutitem.cpp +++ b/src/widgets/kernel/qlayoutitem.cpp @@ -291,14 +291,12 @@ void QSpacerItem::changeSize(int w, int h, QSizePolicy::Policy hPolicy, /*! Destructor. */ -QWidgetItem::~QWidgetItem() {} +QWidgetItem::~QWidgetItem() = default; /*! Destroys the QLayoutItem. */ -QLayoutItem::~QLayoutItem() -{ -} +QLayoutItem::~QLayoutItem() = default; /*! Invalidates any cached information in this layout item. @@ -362,7 +360,11 @@ QSpacerItem * QSpacerItem::spacerItem() \sa layout(), spacerItem() */ +#if QT_VERSION < QT_VERSION_CHECK(6, 0, 0) QWidget *QLayoutItem::widget() +#else +QWidget *QLayoutItem::widget() const +#endif { return nullptr; } @@ -370,7 +372,11 @@ QWidget *QLayoutItem::widget() /*! Returns the widget managed by this item. */ +#if QT_VERSION < QT_VERSION_CHECK(6, 0, 0) QWidget *QWidgetItem::widget() +#else +QWidget *QWidgetItem::widget() const +#endif { return wid; } diff --git a/src/widgets/kernel/qlayoutitem.h b/src/widgets/kernel/qlayoutitem.h index 059ff2d470..8553e20adc 100644 --- a/src/widgets/kernel/qlayoutitem.h +++ b/src/widgets/kernel/qlayoutitem.h @@ -74,7 +74,11 @@ public: virtual int minimumHeightForWidth(int) const; virtual void invalidate(); +#if QT_VERSION < QT_VERSION_CHECK(6, 0, 0) virtual QWidget *widget(); +#else + virtual QWidget *widget() const; +#endif virtual QLayout *layout(); virtual QSpacerItem *spacerItem(); @@ -133,7 +137,11 @@ public: bool isEmpty() const override; void setGeometry(const QRect&) override; QRect geometry() const override; +#if QT_VERSION < QT_VERSION_CHECK(6, 0, 0) QWidget *widget() override; +#else + QWidget *widget() const override; +#endif bool hasHeightForWidth() const override; int heightForWidth(int) const override; diff --git a/src/widgets/widgets/qdockwidget_p.h b/src/widgets/widgets/qdockwidget_p.h index bc6ac86c45..e663ec4c2d 100644 --- a/src/widgets/widgets/qdockwidget_p.h +++ b/src/widgets/widgets/qdockwidget_p.h @@ -201,7 +201,11 @@ inline QLayoutItem *QDockWidgetItem::dockWidgetChildItem() const inline QDockWidgetLayout *QDockWidgetItem::dockWidgetLayout() const { +#if QT_VERSION < QT_VERSION_CHECK(6, 0, 0) QWidget *w = const_cast(this)->widget(); +#else + QWidget *w = widget(); +#endif if (w != nullptr) return qobject_cast(w->layout()); return nullptr; -- cgit v1.2.3