From 7a342372bb1ecbe4146811cff48ede974c7761b5 Mon Sep 17 00:00:00 2001 From: Sergio Martins Date: Thu, 1 Feb 2018 12:36:52 +0000 Subject: Introduce QLayout::indexOf(QLayoutItem *) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit This was the missing counter-part to indexOf(QWidget *), which is sometimes implemented in user code. Not sure why the original code doesn't use a for-loop and instead accesses an out-of-bounds element, but I'll preserve the behavior of very old working code. Change-Id: I7d7fa56b56a4626789774c15c23fdfef41d723e7 Reviewed-by: David Faure Reviewed-by: Jan Arve Sæther --- src/widgets/kernel/qlayout.cpp | 20 ++++++++++++++++++++ 1 file changed, 20 insertions(+) (limited to 'src/widgets/kernel/qlayout.cpp') diff --git a/src/widgets/kernel/qlayout.cpp b/src/widgets/kernel/qlayout.cpp index f3db4f4e2d..64acd8d229 100644 --- a/src/widgets/kernel/qlayout.cpp +++ b/src/widgets/kernel/qlayout.cpp @@ -1243,6 +1243,26 @@ int QLayout::indexOf(QWidget *widget) const return -1; } +/*! + \since 5.12 + Searches for layout item \a layoutItem in this layout (not including child + layouts). + + Returns the index of \a layoutItem, or -1 if \a layoutItem is not found. +*/ +int QLayout::indexOf(QLayoutItem *layoutItem) const +{ + int i = 0; + QLayoutItem *item = itemAt(i); + while (item) { + if (item == layoutItem) + return i; + ++i; + item = itemAt(i); + } + return -1; +} + /*! \enum QLayout::SizeConstraint -- cgit v1.2.3