diff options
author | Marc Mutz <marc.mutz@kdab.com> | 2015-11-30 12:19:31 +0100 |
---|---|---|
committer | Marc Mutz <marc.mutz@kdab.com> | 2015-12-16 17:41:50 +0000 |
commit | 0516487237145ad41b2fd13ecb5f63ba4325c02f (patch) | |
tree | 8dbc353c28857742882610cc5d810c8c64052f0f /src/widgets/itemviews/qtablewidget.cpp | |
parent | b69751863472b186aaad08db6b9b08de81e95dc4 (diff) |
QtWidgets: replace some index-based for loops with C++11 range-for
This needs to be handled a bit carefully, because Qt containers
will detach upon being iteratoed over using range-for.
In the cases of this patch, that cannot happen, because all
containers are marked as const (either by this patch or before).
Separate patches will deal with other situations.
Apart from being more readable, range-for loops are also the
most efficient for loop.
This patch shaves almost 2K of text size off an optimized Linux
AMD64 GCC 4.9 build.
Change-Id: I53810c7b25420b4fd449d20c90c07503c5e76a66
Reviewed-by: Edward Welbourne <edward.welbourne@theqtcompany.com>
Reviewed-by: Lars Knoll <lars.knoll@theqtcompany.com>
Diffstat (limited to 'src/widgets/itemviews/qtablewidget.cpp')
-rw-r--r-- | src/widgets/itemviews/qtablewidget.cpp | 27 |
1 files changed, 13 insertions, 14 deletions
diff --git a/src/widgets/itemviews/qtablewidget.cpp b/src/widgets/itemviews/qtablewidget.cpp index 568b52f901..6238835f04 100644 --- a/src/widgets/itemviews/qtablewidget.cpp +++ b/src/widgets/itemviews/qtablewidget.cpp @@ -1388,9 +1388,10 @@ void QTableWidgetItem::setData(int role, const QVariant &value) QVariant QTableWidgetItem::data(int role) const { role = (role == Qt::EditRole ? Qt::DisplayRole : role); - for (int i = 0; i < values.count(); ++i) - if (values.at(i).role == role) - return values.at(i).value; + for (const auto &value : values) { + if (value.role == role) + return value.value; + } return QVariant(); } @@ -2359,10 +2360,9 @@ QList<QTableWidgetSelectionRange> QTableWidget::selectedRanges() const QList<QTableWidgetItem*> QTableWidget::selectedItems() const { Q_D(const QTableWidget); - QModelIndexList indexes = selectionModel()->selectedIndexes(); + const QModelIndexList indexes = selectionModel()->selectedIndexes(); QList<QTableWidgetItem*> items; - for (int i = 0; i < indexes.count(); ++i) { - QModelIndex index = indexes.at(i); + for (const auto &index : indexes) { if (isIndexHidden(index)) continue; QTableWidgetItem *item = d->tableModel()->item(index); @@ -2682,22 +2682,21 @@ void QTableWidget::dropEvent(QDropEvent *event) { int col = -1; int row = -1; if (d->dropOn(event, &row, &col, &topIndex)) { - QModelIndexList indexes = selectedIndexes(); + const QModelIndexList indexes = selectedIndexes(); int top = INT_MAX; int left = INT_MAX; - for (int i = 0; i < indexes.count(); ++i) { - top = qMin(indexes.at(i).row(), top); - left = qMin(indexes.at(i).column(), left); + for (const auto &index : indexes) { + top = qMin(index.row(), top); + left = qMin(index.column(), left); } QList<QTableWidgetItem *> taken; const int indexesCount = indexes.count(); taken.reserve(indexesCount); - for (int i = 0; i < indexesCount; ++i) - taken.append(takeItem(indexes.at(i).row(), indexes.at(i).column())); + for (const auto &index : indexes) + taken.append(takeItem(index.row(), index.column())); - for (int i = 0; i < indexes.count(); ++i) { - QModelIndex index = indexes.at(i); + for (const auto &index : indexes) { int r = index.row() - top + topIndex.row(); int c = index.column() - left + topIndex.column(); setItem(r, c, taken.takeFirst()); |