summaryrefslogtreecommitdiffstats
path: root/src/widgets
diff options
context:
space:
mode:
authorPiotr Srebrny <piotr.srebrny@qt.io>2021-04-28 14:37:44 +0200
committerQt Cherry-pick Bot <cherrypick_bot@qt-project.org>2021-05-11 17:42:06 +0000
commit5055a2fb9954b5ba0f42b49c4933633f16113f7b (patch)
tree10515c86d288c3d0047936dc22b92f2a281b2eec /src/widgets
parent5ece368fa0ef768de7f4d143d928a2f03cf7e2e9 (diff)
Do not remove non-widget items when removeWidget() called with nullptr
child->widget() returns null if the layout item is not a widget. Thus, calling removeWidget(nullptr) will remove all non-widget items such as layouts or strechers. Change-Id: I772c1158d0f7e8e2850b6e571b0405a2896f09b8 Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@qt.io> Reviewed-by: David Faure <david.faure@kdab.com> (cherry picked from commit 867c0b8d8a53974074b1fff5b132f3ae9f150066) Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
Diffstat (limited to 'src/widgets')
-rw-r--r--src/widgets/kernel/qlayout.cpp5
1 files changed, 5 insertions, 0 deletions
diff --git a/src/widgets/kernel/qlayout.cpp b/src/widgets/kernel/qlayout.cpp
index db7aa1aaeb..05e3a97ed3 100644
--- a/src/widgets/kernel/qlayout.cpp
+++ b/src/widgets/kernel/qlayout.cpp
@@ -1320,6 +1320,11 @@ QRect QLayout::alignmentRect(const QRect &r) const
*/
void QLayout::removeWidget(QWidget *widget)
{
+ if (Q_UNLIKELY(!widget)) {
+ qWarning("QLayout::removeWidget: Cannot remove a null widget.");
+ return;
+ }
+
int i = 0;
QLayoutItem *child;
while ((child = itemAt(i))) {