diff options
Diffstat (limited to 'src/widgets/kernel/qgridlayout.cpp')
-rw-r--r-- | src/widgets/kernel/qgridlayout.cpp | 79 |
1 files changed, 18 insertions, 61 deletions
diff --git a/src/widgets/kernel/qgridlayout.cpp b/src/widgets/kernel/qgridlayout.cpp index 51797b0cf1..7998567a21 100644 --- a/src/widgets/kernel/qgridlayout.cpp +++ b/src/widgets/kernel/qgridlayout.cpp @@ -1,41 +1,5 @@ -/**************************************************************************** -** -** Copyright (C) 2016 The Qt Company Ltd. -** Contact: https://www.qt.io/licensing/ -** -** This file is part of the QtWidgets module of the Qt Toolkit. -** -** $QT_BEGIN_LICENSE:LGPL$ -** Commercial License Usage -** Licensees holding valid commercial Qt licenses may use this file in -** accordance with the commercial license agreement provided with the -** Software or, alternatively, in accordance with the terms contained in -** a written agreement between you and The Qt Company. For licensing terms -** and conditions see https://www.qt.io/terms-conditions. For further -** information use the contact form at https://www.qt.io/contact-us. -** -** GNU Lesser General Public License Usage -** Alternatively, this file may be used under the terms of the GNU Lesser -** General Public License version 3 as published by the Free Software -** Foundation and appearing in the file LICENSE.LGPL3 included in the -** packaging of this file. Please review the following information to -** ensure the GNU Lesser General Public License version 3 requirements -** will be met: https://www.gnu.org/licenses/lgpl-3.0.html. -** -** GNU General Public License Usage -** Alternatively, this file may be used under the terms of the GNU -** General Public License version 2.0 or (at your option) the GNU General -** Public license version 3 or any later version approved by the KDE Free -** Qt Foundation. The licenses are as published by the Free Software -** Foundation and appearing in the file LICENSE.GPL2 and LICENSE.GPL3 -** included in the packaging of this file. Please review the following -** information to ensure the GNU General Public License requirements will -** be met: https://www.gnu.org/licenses/gpl-2.0.html and -** https://www.gnu.org/licenses/gpl-3.0.html. -** -** $QT_END_LICENSE$ -** -****************************************************************************/ +// Copyright (C) 2016 The Qt Company Ltd. +// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR LGPL-3.0-only OR GPL-2.0-only OR GPL-3.0-only #include "qapplication.h" #include "qgridlayout.h" @@ -145,18 +109,18 @@ public: int minimumHeightForWidth(int width, int hSpacing, int vSpacing); inline void getNextPos(int &row, int &col) { row = nextR; col = nextC; } - inline int count() const { return things.count(); } + inline int count() const { return things.size(); } QRect cellRect(int row, int col) const; inline QLayoutItem *itemAt(int index) const { - if (index < things.count()) + if (index >= 0 && index < things.size()) return things.at(index)->item(); else return nullptr; } inline QLayoutItem *takeAt(int index) { Q_Q(QGridLayout); - if (index < things.count()) { + if (index >= 0 && index < things.size()) { if (QGridBox *b = things.takeAt(index)) { QLayoutItem *item = b->takeItem(); if (QLayout *l = item->layout()) { @@ -184,7 +148,7 @@ public: } void getItemPosition(int index, int *row, int *column, int *rowSpan, int *columnSpan) const { - if (index < things.count()) { + if (index >= 0 && index < things.size()) { const QGridBox *b = things.at(index); int toRow = b->toRow(rr); int toCol = b->toCol(cc); @@ -253,7 +217,7 @@ void QGridLayoutPrivate::effectiveMargins(int *left, int *top, int *right, int * int rightMost = 0; int bottomMost = 0; - QWidget *w = 0; + QWidget *w = nullptr; const int n = things.count(); for (int i = 0; i < n; ++i) { QGridBox *box = things.at(i); @@ -1072,31 +1036,24 @@ QRect QGridLayoutPrivate::cellRect(int row, int col) const Constructs a new QGridLayout with parent widget, \a parent. The layout has one row and one column initially, and will expand when new items are inserted. -*/ -QGridLayout::QGridLayout(QWidget *parent) - : QLayout(*new QGridLayoutPrivate, nullptr, parent) -{ - Q_D(QGridLayout); - d->expand(1, 1); -} -/*! - Constructs a new grid layout. + The layout is set directly as the top-level layout for \a parent. + There can be only one top-level layout for a widget. It is returned + by QWidget::layout(). + + If \a parent is \nullptr, then you must insert this grid layout + into another layout, or set it as a widget's layout using + QWidget::setLayout(). - You must insert this grid into another layout. You can insert - widgets and layouts into this layout at any time, but laying out - will not be performed before this is inserted into another layout. + \sa QWidget::setLayout() */ -QGridLayout::QGridLayout() - : QLayout(*new QGridLayoutPrivate, nullptr, nullptr) +QGridLayout::QGridLayout(QWidget *parent) + : QLayout(*new QGridLayoutPrivate, nullptr, parent) { Q_D(QGridLayout); d->expand(1, 1); } - - - /*! \internal (mostly) @@ -1337,7 +1294,7 @@ QLayoutItem *QGridLayout::itemAt(int index) const QLayoutItem *QGridLayout::itemAtPosition(int row, int column) const { Q_D(const QGridLayout); - int n = d->things.count(); + int n = d->things.size(); for (int i = 0; i < n; ++i) { QGridBox *box = d->things.at(i); if (row >= box->row && row <= box->toRow(d->rr) |