diff options
Diffstat (limited to 'src/widgets/itemviews')
-rw-r--r-- | src/widgets/itemviews/qabstractitemdelegate.cpp | 5 | ||||
-rw-r--r-- | src/widgets/itemviews/qabstractitemview.cpp | 43 | ||||
-rw-r--r-- | src/widgets/itemviews/qbsptree.cpp | 4 | ||||
-rw-r--r-- | src/widgets/itemviews/qbsptree_p.h | 2 | ||||
-rw-r--r-- | src/widgets/itemviews/qcolumnview.cpp | 30 | ||||
-rw-r--r-- | src/widgets/itemviews/qheaderview.cpp | 102 | ||||
-rw-r--r-- | src/widgets/itemviews/qheaderview_p.h | 12 | ||||
-rw-r--r-- | src/widgets/itemviews/qlistview.cpp | 98 | ||||
-rw-r--r-- | src/widgets/itemviews/qlistview_p.h | 2 | ||||
-rw-r--r-- | src/widgets/itemviews/qlistwidget.cpp | 52 | ||||
-rw-r--r-- | src/widgets/itemviews/qstyleditemdelegate.cpp | 4 | ||||
-rw-r--r-- | src/widgets/itemviews/qtableview.cpp | 4 | ||||
-rw-r--r-- | src/widgets/itemviews/qtablewidget.cpp | 80 | ||||
-rw-r--r-- | src/widgets/itemviews/qtablewidget_p.h | 2 | ||||
-rw-r--r-- | src/widgets/itemviews/qtreeview.cpp | 128 | ||||
-rw-r--r-- | src/widgets/itemviews/qtreeview_p.h | 4 | ||||
-rw-r--r-- | src/widgets/itemviews/qtreewidget.cpp | 108 | ||||
-rw-r--r-- | src/widgets/itemviews/qtreewidget.h | 4 |
18 files changed, 362 insertions, 322 deletions
diff --git a/src/widgets/itemviews/qabstractitemdelegate.cpp b/src/widgets/itemviews/qabstractitemdelegate.cpp index c6161a4680..73af3b6b1d 100644 --- a/src/widgets/itemviews/qabstractitemdelegate.cpp +++ b/src/widgets/itemviews/qabstractitemdelegate.cpp @@ -480,12 +480,13 @@ bool QAbstractItemDelegatePrivate::editorEventFilter(QObject *object, QEvent *ev // If the application loses focus while editing, then the focus needs to go back // to the itemview when the editor closes. This ensures that when the application // is active again it will have the focus on the itemview as expected. + QWidget *editorParent = editor->parentWidget(); const bool manuallyFixFocus = (event->type() == QEvent::FocusOut) && !editor->hasFocus() && - editor->parentWidget() && + editorParent && (static_cast<QFocusEvent *>(event)->reason() == Qt::ActiveWindowFocusReason); emit q->closeEditor(editor, QAbstractItemDelegate::NoHint); if (manuallyFixFocus) - editor->parentWidget()->setFocus(); + editorParent->setFocus(); } #ifndef QT_NO_SHORTCUT } else if (event->type() == QEvent::ShortcutOverride) { diff --git a/src/widgets/itemviews/qabstractitemview.cpp b/src/widgets/itemviews/qabstractitemview.cpp index 57139cce61..1d991b1b98 100644 --- a/src/widgets/itemviews/qabstractitemview.cpp +++ b/src/widgets/itemviews/qabstractitemview.cpp @@ -1709,6 +1709,12 @@ bool QAbstractItemView::viewportEvent(QEvent *event) { Q_D(QAbstractItemView); switch (event->type()) { + case QEvent::Paint: + // Similar to pre-painting in QAbstractItemView::event to update scrollbar + // visibility, make sure that all pending layout requests have been executed + // so that the view's data structures are up-to-date before rendering. + d->executePostedLayout(); + break; case QEvent::HoverMove: case QEvent::HoverEnter: d->setHoverIndex(indexAt(static_cast<QHoverEvent*>(event)->position().toPoint())); @@ -1939,7 +1945,9 @@ void QAbstractItemView::mouseReleaseEvent(QMouseEvent *event) } bool click = (index == d->pressedIndex && index.isValid() && !releaseFromDoubleClick); - bool selectedClicked = click && (event->button() == Qt::LeftButton) && d->pressedAlreadySelected; + bool selectedClicked = click && d->pressedAlreadySelected + && (event->button() == Qt::LeftButton) + && (event->modifiers() == Qt::NoModifier); EditTrigger trigger = (selectedClicked ? SelectedClicked : NoEditTriggers); const bool edited = click && !d->pressClosedEditor ? edit(index, trigger, event) : false; @@ -1947,7 +1955,7 @@ void QAbstractItemView::mouseReleaseEvent(QMouseEvent *event) if (d->selectionModel && d->noSelectionOnMousePress) { d->noSelectionOnMousePress = false; - if (!edited && !d->pressClosedEditor) + if (!d->pressClosedEditor) d->selectionModel->select(index, selectionCommand(index, event)); } @@ -2366,11 +2374,12 @@ void QAbstractItemView::keyPressEvent(QKeyEvent *event) #if !defined(QT_NO_CLIPBOARD) && !defined(QT_NO_SHORTCUT) if (event == QKeySequence::Copy) { - QVariant variant; - if (d->model) - variant = d->model->data(currentIndex(), Qt::DisplayRole); - if (variant.canConvert<QString>()) - QGuiApplication::clipboard()->setText(variant.toString()); + const QModelIndex index = currentIndex(); + if (index.isValid() && d->model) { + const QVariant variant = d->model->data(index, Qt::DisplayRole); + if (variant.canConvert<QString>()) + QGuiApplication::clipboard()->setText(variant.toString()); + } event->accept(); } #endif @@ -2829,10 +2838,10 @@ void QAbstractItemView::updateEditorGeometries() //we hide and release the editor outside of the loop because it might change the focus and try //to change the editors hashes. - for (int i = 0; i < editorsToHide.count(); ++i) { + for (int i = 0; i < editorsToHide.size(); ++i) { editorsToHide.at(i)->hide(); } - for (int i = 0; i < editorsToRelease.count(); ++i) { + for (int i = 0; i < editorsToRelease.size(); ++i) { d->releaseEditor(editorsToRelease.at(i)); } } @@ -3053,9 +3062,9 @@ void QAbstractItemView::keyboardSearch(const QString &search) // special case for searches with same key like 'aaaaa' bool sameKey = false; - if (d->keyboardInput.length() > 1) { - int c = d->keyboardInput.count(d->keyboardInput.at(d->keyboardInput.length() - 1)); - sameKey = (c == d->keyboardInput.length()); + if (d->keyboardInput.size() > 1) { + int c = d->keyboardInput.count(d->keyboardInput.at(d->keyboardInput.size() - 1)); + sameKey = (c == d->keyboardInput.size()); if (sameKey) skipRow = true; } @@ -3793,7 +3802,7 @@ void QAbstractItemView::startDrag(Qt::DropActions supportedActions) { Q_D(QAbstractItemView); QModelIndexList indexes = d->selectedDraggableIndexes(); - if (indexes.count() > 0) { + if (indexes.size() > 0) { QMimeData *data = d->model->mimeData(indexes); if (!data) return; @@ -4091,8 +4100,12 @@ QItemSelectionModel::SelectionFlags QAbstractItemView::selectionCommand(const QM if (d->pressedAlreadySelected) return QItemSelectionModel::NoUpdate; break; - case QEvent::KeyPress: case QEvent::MouseButtonRelease: + // clicking into area with no items does nothing + if (!index.isValid()) + return QItemSelectionModel::NoUpdate; + Q_FALLTHROUGH(); + case QEvent::KeyPress: // ctrl-release on selected item deselects if ((keyModifiers & Qt::ControlModifier) && d->selectionModel->isSelected(index)) return QItemSelectionModel::Deselect | d->selectionBehaviorFlags(); @@ -4636,7 +4649,7 @@ QPixmap QAbstractItemViewPrivate::renderToPixmap(const QModelIndexList &indexes, QStyleOptionViewItem option; q->initViewItemOption(&option); option.state |= QStyle::State_Selected; - for (int j = 0; j < paintPairs.count(); ++j) { + for (int j = 0; j < paintPairs.size(); ++j) { option.rect = paintPairs.at(j).rect.translated(-r->topLeft()); const QModelIndex ¤t = paintPairs.at(j).index; adjustViewOptionsForIndex(&option, current); diff --git a/src/widgets/itemviews/qbsptree.cpp b/src/widgets/itemviews/qbsptree.cpp index 13660ee3d9..d75144b1a8 100644 --- a/src/widgets/itemviews/qbsptree.cpp +++ b/src/widgets/itemviews/qbsptree.cpp @@ -40,9 +40,9 @@ void QBspTree::climbTree(const QRect &rect, callback *function, QBspTreeData dat void QBspTree::climbTree(const QRect &area, callback *function, QBspTreeData data, int index) { - if (index >= nodes.count()) { // the index points to a leaf + if (index >= nodes.size()) { // the index points to a leaf Q_ASSERT(!nodes.isEmpty()); - function(leaf(index - nodes.count()), area, visited, data); + function(leaf(index - nodes.size()), area, visited, data); return; } diff --git a/src/widgets/itemviews/qbsptree_p.h b/src/widgets/itemviews/qbsptree_p.h index 83d9055aad..1f00616e87 100644 --- a/src/widgets/itemviews/qbsptree_p.h +++ b/src/widgets/itemviews/qbsptree_p.h @@ -55,7 +55,7 @@ public: void climbTree(const QRect &rect, callback *function, QBspTreeData data); - inline int leafCount() const { return leaves.count(); } + inline int leafCount() const { return leaves.size(); } inline QList<int> &leaf(int i) { return leaves[i]; } inline void insertLeaf(const QRect &r, int i) { climbTree(r, &insert, i, 0); } inline void removeLeaf(const QRect &r, int i) { climbTree(r, &remove, i, 0); } diff --git a/src/widgets/itemviews/qcolumnview.cpp b/src/widgets/itemviews/qcolumnview.cpp index 73748d3af4..040bddb311 100644 --- a/src/widgets/itemviews/qcolumnview.cpp +++ b/src/widgets/itemviews/qcolumnview.cpp @@ -98,7 +98,7 @@ void QColumnView::setResizeGripsVisible(bool visible) if (d->showResizeGrips == visible) return; d->showResizeGrips = visible; - for (int i = 0; i < d->columns.count(); ++i) { + for (int i = 0; i < d->columns.size(); ++i) { QAbstractItemView *view = d->columns[i]; if (visible) { QColumnViewGrip *grip = new QColumnViewGrip(view); @@ -140,7 +140,7 @@ void QColumnView::setRootIndex(const QModelIndex &index) return; d->closeColumns(); - Q_ASSERT(d->columns.count() == 0); + Q_ASSERT(d->columns.size() == 0); QAbstractItemView *view = d->createColumn(index, true); if (view->selectionModel()) @@ -206,7 +206,7 @@ void QColumnView::scrollContentsBy(int dx, int dy) return; dx = isRightToLeft() ? -dx : dx; - for (int i = 0; i < d->columns.count(); ++i) + for (int i = 0; i < d->columns.size(); ++i) d->columns.at(i)->move(d->columns.at(i)->x() + dx, 0); d->offset += dx; QAbstractItemView::scrollContentsBy(dx, dy); @@ -420,7 +420,7 @@ int QColumnView::verticalOffset() const */ QRegion QColumnView::visualRegionForSelection(const QItemSelection &selection) const { - int ranges = selection.count(); + int ranges = selection.size(); if (ranges == 0) return QRect(); @@ -603,7 +603,7 @@ void QColumnViewPrivate::_q_clicked(const QModelIndex &index) Q_Q(QColumnView); QModelIndex parent = index.parent(); QAbstractItemView *columnClicked = nullptr; - for (int column = 0; column < columns.count(); ++column) { + for (int column = 0; column < columns.size(); ++column) { if (columns.at(column)->rootIndex() == parent) { columnClicked = columns[column]; break; @@ -664,16 +664,16 @@ QAbstractItemView *QColumnViewPrivate::createColumn(const QModelIndex &index, bo q->connect(grip, SIGNAL(gripMoved(int)), q, SLOT(_q_gripMoved(int))); } - if (columnSizes.count() > columns.count()) { - view->setGeometry(0, 0, columnSizes.at(columns.count()), viewport->height()); + if (columnSizes.size() > columns.size()) { + view->setGeometry(0, 0, columnSizes.at(columns.size()), viewport->height()); } else { int initialWidth = view->sizeHint().width(); if (q->isRightToLeft()) view->setGeometry(viewport->width() - initialWidth, 0, initialWidth, viewport->height()); else view->setGeometry(0, 0, initialWidth, viewport->height()); - columnSizes.resize(qMax(columnSizes.count(), columns.count() + 1)); - columnSizes[columns.count()] = initialWidth; + columnSizes.resize(qMax(columnSizes.size(), columns.size() + 1)); + columnSizes[columns.size()] = initialWidth; } if (!columns.isEmpty() && columns.constLast()->isHidden()) columns.constLast()->setVisible(true); @@ -826,8 +826,8 @@ void QColumnView::setColumnWidths(const QList<int> &list) { Q_D(QColumnView); int i = 0; - const int listCount = list.count(); - const int count = qMin(listCount, d->columns.count()); + const int listCount = list.size(); + const int count = qMin(listCount, d->columns.size()); for (; i < count; ++i) { d->columns.at(i)->resize(list.at(i), d->columns.at(i)->height()); d->columnSizes[i] = list.at(i); @@ -847,7 +847,7 @@ QList<int> QColumnView::columnWidths() const { Q_D(const QColumnView); QList<int> list; - const int columnCount = d->columns.count(); + const int columnCount = d->columns.size(); list.reserve(columnCount); for (int i = 0; i < columnCount; ++i) list.append(d->columnSizes.at(i)); @@ -984,9 +984,9 @@ void QColumnView::selectAll() QModelIndexList indexList = selectionModel()->selectedIndexes(); QModelIndex parent = rootIndex(); QItemSelection selection; - if (indexList.count() >= 1) + if (indexList.size() >= 1) parent = indexList.at(0).parent(); - if (indexList.count() == 1) { + if (indexList.size() == 1) { parent = indexList.at(0); if (!model()->hasChildren(parent)) parent = parent.parent(); @@ -1039,7 +1039,7 @@ void QColumnViewPrivate::checkColumnCreation(const QModelIndex &parent) if (parent == q_func()->currentIndex() && model->hasChildren(parent)) { //the parent has children and is the current //let's try to find out if there is already a mapping that is good - for (int i = 0; i < columns.count(); ++i) { + for (int i = 0; i < columns.size(); ++i) { QAbstractItemView *view = columns.at(i); if (view->rootIndex() == parent) { if (view == previewColumn) { diff --git a/src/widgets/itemviews/qheaderview.cpp b/src/widgets/itemviews/qheaderview.cpp index 413857bf6c..d074c70940 100644 --- a/src/widgets/itemviews/qheaderview.cpp +++ b/src/widgets/itemviews/qheaderview.cpp @@ -980,7 +980,7 @@ bool QHeaderView::isSectionHidden(int logicalIndex) const int QHeaderView::hiddenSectionCount() const { Q_D(const QHeaderView); - return d->hiddenSectionSize.count(); + return d->hiddenSectionSize.size(); } /*! @@ -1061,7 +1061,7 @@ int QHeaderView::visualIndex(int logicalIndex) const if (d->visualIndices.isEmpty()) { // nothing has been moved, so we have no mapping if (logicalIndex < d->sectionCount()) return logicalIndex; - } else if (logicalIndex < d->visualIndices.count()) { + } else if (logicalIndex < d->visualIndices.size()) { int visual = d->visualIndices.at(logicalIndex); Q_ASSERT(visual < d->sectionCount()); return visual; @@ -1762,22 +1762,27 @@ bool QHeaderView::restoreState(const QByteArray &state) Q_D(QHeaderView); if (state.isEmpty()) return false; - QByteArray data = state; - QDataStream stream(&data, QIODevice::ReadOnly); - stream.setVersion(QDataStream::Qt_5_0); - int marker; - int ver; - stream >> marker; - stream >> ver; - if (stream.status() != QDataStream::Ok + + for (const auto dataStreamVersion : {QDataStream::Qt_5_0, QDataStream::Qt_6_0}) { + + QByteArray data = state; + QDataStream stream(&data, QIODevice::ReadOnly); + stream.setVersion(dataStreamVersion); + int marker; + int ver; + stream >> marker; + stream >> ver; + if (stream.status() != QDataStream::Ok || marker != QHeaderViewPrivate::VersionMarker - || ver != 0) // current version is 0 - return false; + || ver != 0) { // current version is 0 + return false; + } - if (d->read(stream)) { - emit sortIndicatorChanged(d->sortIndicatorSection, d->sortIndicatorOrder ); - d->viewport->update(); - return true; + if (d->read(stream)) { + emit sortIndicatorChanged(d->sortIndicatorSection, d->sortIndicatorOrder ); + d->viewport->update(); + return true; + } } return false; } @@ -1906,10 +1911,10 @@ void QHeaderView::sectionsInserted(const QModelIndex &parent, QHeaderViewPrivate::SectionItem section(d->defaultSectionSize, d->globalResizeMode); d->sectionStartposRecalc = true; - if (d->sectionItems.isEmpty() || insertAt >= d->sectionItems.count()) { + if (d->sectionItems.isEmpty() || insertAt >= d->sectionItems.size()) { int insertLength = d->defaultSectionSize * insertCount; d->length += insertLength; - d->sectionItems.insert(d->sectionItems.count(), insertCount, section); // append + d->sectionItems.insert(d->sectionItems.size(), insertCount, section); // append } else { // separate them out into their own sections int insertLength = d->defaultSectionSize * insertCount; @@ -1932,8 +1937,8 @@ void QHeaderView::sectionsInserted(const QModelIndex &parent, // update mapping if (!d->visualIndices.isEmpty() && !d->logicalIndices.isEmpty()) { - Q_ASSERT(d->visualIndices.count() == d->logicalIndices.count()); - int mappingCount = d->visualIndices.count(); + Q_ASSERT(d->visualIndices.size() == d->logicalIndices.size()); + int mappingCount = d->visualIndices.size(); for (int i = 0; i < mappingCount; ++i) { if (d->visualIndices.at(i) >= logicalFirst) d->visualIndices[i] += insertCount; @@ -2023,7 +2028,7 @@ void QHeaderViewPrivate::_q_sectionsRemoved(const QModelIndex &parent, if (logicalFirst == logicalLast) { // Remove just one index. int l = logicalFirst; int visual = visualIndices.at(l); - Q_ASSERT(sectionCount() == logicalIndices.count()); + Q_ASSERT(sectionCount() == logicalIndices.size()); for (int v = 0; v < sectionCount(); ++v) { if (v > visual) { int logical = logicalIndices.at(v); @@ -2038,17 +2043,17 @@ void QHeaderViewPrivate::_q_sectionsRemoved(const QModelIndex &parent, removeSectionsFromSectionItems(visual, visual); } else { sectionStartposRecalc = true; // We will need to recalc positions after removing items - for (int u = 0; u < sectionItems.count(); ++u) // Store section info + for (int u = 0; u < sectionItems.size(); ++u) // Store section info sectionItems.at(u).tmpLogIdx = logicalIndices.at(u); - for (int v = sectionItems.count() - 1; v >= 0; --v) { // Remove the sections + for (int v = sectionItems.size() - 1; v >= 0; --v) { // Remove the sections if (logicalFirst <= sectionItems.at(v).tmpLogIdx && sectionItems.at(v).tmpLogIdx <= logicalLast) removeSectionsFromSectionItems(v, v); } - visualIndices.resize(sectionItems.count()); - logicalIndices.resize(sectionItems.count()); + visualIndices.resize(sectionItems.size()); + logicalIndices.resize(sectionItems.size()); int* visual_data = visualIndices.data(); int* logical_data = logicalIndices.data(); - for (int w = 0; w < sectionItems.count(); ++w) { // Restore visual and logical indexes + for (int w = 0; w < sectionItems.size(); ++w) { // Restore visual and logical indexes int logindex = sectionItems.at(w).tmpLogIdx; if (logindex > logicalFirst) logindex -= changeCount; @@ -2121,9 +2126,9 @@ void QHeaderViewPrivate::_q_sectionsAboutToBeChanged(const QList<QPersistentMode return; layoutChangePersistentSections.clear(); - layoutChangePersistentSections.reserve(std::min(10, int(sectionItems.count()))); + layoutChangePersistentSections.reserve(std::min(10, int(sectionItems.size()))); // after layoutChanged another section can be last stretched section - if (stretchLastSection && lastSectionLogicalIdx >= 0 && lastSectionLogicalIdx < sectionItems.count()) { + if (stretchLastSection && lastSectionLogicalIdx >= 0 && lastSectionLogicalIdx < sectionItems.size()) { const int visual = visualIndex(lastSectionLogicalIdx); if (visual >= 0 && visual < sectionItems.size()) { auto &itemRef = sectionItems[visual]; @@ -2218,7 +2223,7 @@ void QHeaderViewPrivate::_q_sectionsChanged(const QList<QPersistentModelIndex> & : index.row()); // the new visualIndices are already adjusted / reset by initializeSections() const int newVisualIndex = visualIndex(newLogicalIndex); - if (newVisualIndex < sectionItems.count()) { + if (newVisualIndex < sectionItems.size()) { auto &newSection = sectionItems[newVisualIndex]; newSection = item.section; @@ -2283,7 +2288,7 @@ void QHeaderView::initializeSections(int start, int end) int newCount = end + 1; d->removeSectionsFromSectionItems(newCount, d->sectionCount() - 1); if (!d->hiddenSectionSize.isEmpty()) { - if (oldCount - newCount > d->hiddenSectionSize.count()) { + if (oldCount - newCount > d->hiddenSectionSize.size()) { for (int i = end + 1; i < d->sectionCount(); ++i) d->hiddenSectionSize.remove(i); } else { @@ -3448,7 +3453,7 @@ void QHeaderView::initStyleOption(QStyleOptionFrame *option) const bool QHeaderViewPrivate::isSectionSelected(int section) const { int i = section * 2; - if (i < 0 || i >= sectionSelected.count()) + if (i < 0 || i >= sectionSelected.size()) return false; if (sectionSelected.testBit(i)) // if the value was cached return sectionSelected.testBit(i + 1); @@ -3672,7 +3677,7 @@ void QHeaderViewPrivate::resizeSections(QHeaderView::ResizeMode globalMode, bool void QHeaderViewPrivate::createSectionItems(int start, int end, int sizePerSection, QHeaderView::ResizeMode mode) { - if (end >= sectionItems.count()) { + if (end >= sectionItems.size()) { sectionItems.resize(end + 1); sectionStartposRecalc = true; } @@ -3688,7 +3693,7 @@ void QHeaderViewPrivate::createSectionItems(int start, int end, int sizePerSecti void QHeaderViewPrivate::removeSectionsFromSectionItems(int start, int end) { // remove sections - sectionStartposRecalc |= (end != sectionItems.count() - 1); + sectionStartposRecalc |= (end != sectionItems.size() - 1); int removedlength = 0; for (int u = start; u <= end; ++u) removedlength += sectionItems.at(u).size; @@ -3876,7 +3881,7 @@ void QHeaderViewPrivate::setDefaultSectionSize(int size) customDefaultSectionSize = true; if (state == QHeaderViewPrivate::ResizeSection) preventCursorChangeInSetOffset = true; - for (int i = 0; i < sectionItems.count(); ++i) { + for (int i = 0; i < sectionItems.size(); ++i) { QHeaderViewPrivate::SectionItem §ion = sectionItems[i]; if (hiddenSectionSize.isEmpty() || !isVisualIndexHidden(i)) { // resize on not hidden. const int newSize = size; @@ -3945,7 +3950,7 @@ int QHeaderViewPrivate::headerVisualIndexAt(int position) const if (sectionStartposRecalc) recalcSectionStartPos(); int startidx = 0; - int endidx = sectionItems.count() - 1; + int endidx = sectionItems.size() - 1; while (startidx <= endidx) { int middle = (endidx + startidx) / 2; if (sectionItems.at(middle).calculated_startpos > position) { @@ -3968,7 +3973,7 @@ void QHeaderViewPrivate::setHeaderSectionResizeMode(int visual, QHeaderView::Res QHeaderView::ResizeMode QHeaderViewPrivate::headerSectionResizeMode(int visual) const { - if (visual < 0 || visual >= sectionItems.count()) + if (visual < 0 || visual >= sectionItems.size()) return globalResizeMode; return static_cast<QHeaderView::ResizeMode>(sectionItems.at(visual).resizeMode); } @@ -3976,7 +3981,7 @@ QHeaderView::ResizeMode QHeaderViewPrivate::headerSectionResizeMode(int visual) void QHeaderViewPrivate::setGlobalHeaderResizeMode(QHeaderView::ResizeMode mode) { globalResizeMode = mode; - for (int i = 0; i < sectionItems.count(); ++i) + for (int i = 0; i < sectionItems.size(); ++i) sectionItems[i].resizeMode = mode; } @@ -3995,7 +4000,7 @@ int QHeaderViewPrivate::adjustedVisualIndex(int visualIndex) const if (!hiddenSectionSize.isEmpty()) { int adjustedVisualIndex = visualIndex; int currentVisualIndex = 0; - for (int i = 0; i < sectionItems.count(); ++i) { + for (int i = 0; i < sectionItems.size(); ++i) { if (isVisualIndexHidden(i)) ++adjustedVisualIndex; else @@ -4131,12 +4136,21 @@ bool QHeaderViewPrivate::read(QDataStream &in) in >> global; + // Check parameter consistency + // Global orientation out of bounds? + if (global < 0 || global > QHeaderView::ResizeToContents) + return false; + + // Alignment out of bounds? + if (align < 0 || align > Qt::AlignVertical_Mask) + return false; + in >> sectionItemsIn; // In Qt4 we had a vector of spans where one span could hold information on more sections. // Now we have an itemvector where one items contains information about one section // For backward compatibility with Qt4 we do the following QList<SectionItem> newSectionItems; - for (int u = 0; u < sectionItemsIn.count(); ++u) { + for (int u = 0; u < sectionItemsIn.size(); ++u) { int count = sectionItemsIn.at(u).tmpDataStreamSectionCount; if (count > 1) sectionItemsIn[u].size /= count; @@ -4145,25 +4159,25 @@ bool QHeaderViewPrivate::read(QDataStream &in) } int sectionItemsLengthTotal = 0; - for (const SectionItem §ion : qAsConst(newSectionItems)) + for (const SectionItem §ion : std::as_const(newSectionItems)) sectionItemsLengthTotal += section.size; if (sectionItemsLengthTotal != lengthIn) return false; const int currentCount = (orient == Qt::Horizontal ? model->columnCount(root) : model->rowCount(root)); - if (newSectionItems.count() < currentCount) { + if (newSectionItems.size() < currentCount) { // we have sections not in the saved state, give them default settings if (!visualIndicesIn.isEmpty() && !logicalIndicesIn.isEmpty()) { - for (int i = newSectionItems.count(); i < currentCount; ++i) { + for (int i = newSectionItems.size(); i < currentCount; ++i) { visualIndicesIn.append(i); logicalIndicesIn.append(i); } } - const int insertCount = currentCount - newSectionItems.count(); + const int insertCount = currentCount - newSectionItems.size(); const int insertLength = defaultSectionSizeIn * insertCount; lengthIn += insertLength; SectionItem section(defaultSectionSizeIn, globalResizeMode); - newSectionItems.insert(newSectionItems.count(), insertCount, section); // append + newSectionItems.insert(newSectionItems.size(), insertCount, section); // append } orientation = static_cast<Qt::Orientation>(orient); diff --git a/src/widgets/itemviews/qheaderview_p.h b/src/widgets/itemviews/qheaderview_p.h index fce525166d..c599aeff8d 100644 --- a/src/widgets/itemviews/qheaderview_p.h +++ b/src/widgets/itemviews/qheaderview_p.h @@ -120,12 +120,12 @@ public: inline void prepareSectionSelected() { if (!selectionModel || !selectionModel->hasSelection()) sectionSelected.clear(); - else if (sectionSelected.count() != sectionCount() * 2) + else if (sectionSelected.size() != sectionCount() * 2) sectionSelected.fill(false, sectionCount() * 2); else sectionSelected.fill(false); } - inline int sectionCount() const {return sectionItems.count();} + inline int sectionCount() const {return sectionItems.size();} inline bool reverse() const { return orientation == Qt::Horizontal && q_func()->isRightToLeft(); @@ -166,8 +166,8 @@ public: } inline void initializeIndexMapping() const { - if (visualIndices.count() != sectionCount() - || logicalIndices.count() != sectionCount()) { + if (visualIndices.size() != sectionCount() + || logicalIndices.size() != sectionCount()) { visualIndices.resize(sectionCount()); logicalIndices.resize(sectionCount()); for (int s = 0; s < sectionCount(); ++s) { @@ -178,7 +178,7 @@ public: } inline void clearCascadingSections() { - firstCascadingSection = sectionItems.count(); + firstCascadingSection = sectionItems.size(); lastCascadingSection = 0; cascadingSectionSize.clear(); } @@ -332,7 +332,7 @@ public: void setHiddenSectionsFromBitVector(const QBitArray §ionHidden) { SectionItem *sectionData = sectionItems.data(); - for (int i = 0; i < sectionHidden.count(); ++i) + for (int i = 0; i < sectionHidden.size(); ++i) sectionData[i].isHidden = sectionHidden.at(i); } diff --git a/src/widgets/itemviews/qlistview.cpp b/src/widgets/itemviews/qlistview.cpp index 30bf327af7..b03c1a47f5 100644 --- a/src/widgets/itemviews/qlistview.cpp +++ b/src/widgets/itemviews/qlistview.cpp @@ -891,7 +891,7 @@ void QListView::dropEvent(QDropEvent *event) if (!event->isAccepted() && d->dropOn(event, &row, &col, &topIndex)) { const QList<QModelIndex> selIndexes = selectedIndexes(); QList<QPersistentModelIndex> persIndexes; - persIndexes.reserve(selIndexes.count()); + persIndexes.reserve(selIndexes.size()); for (const auto &index : selIndexes) { persIndexes.append(index); @@ -908,7 +908,7 @@ void QListView::dropEvent(QDropEvent *event) int r = row == -1 ? model()->rowCount() : (dropRow.row() >= 0 ? dropRow.row() : row); bool dataMoved = false; - for (int i = 0; i < persIndexes.count(); ++i) { + for (int i = 0; i < persIndexes.size(); ++i) { const QPersistentModelIndex &pIndex = persIndexes.at(i); if (r != pIndex.row()) { // try to move (preserves selection) @@ -1097,7 +1097,7 @@ QModelIndex QListView::indexAt(const QPoint &p) const Q_D(const QListView); QRect rect(p.x() + horizontalOffset(), p.y() + verticalOffset(), 1, 1); const QList<QModelIndex> intersectVector = d->intersectingSet(rect); - QModelIndex index = intersectVector.count() > 0 + QModelIndex index = intersectVector.size() > 0 ? intersectVector.last() : QModelIndex(); if (index.isValid() && visualRect(index).contains(p)) return index; @@ -2159,7 +2159,7 @@ void QListModeViewBase::dragMoveEvent(QDragMoveEvent *event) QRect rect(p.x() + horizontalOffset(), p.y() + verticalOffset(), 1, 1); rect.adjust(-dd->spacing(), -dd->spacing(), dd->spacing(), dd->spacing()); const QList<QModelIndex> intersectVector = dd->intersectingSet(rect); - QModelIndex index = intersectVector.count() > 0 + QModelIndex index = intersectVector.size() > 0 ? intersectVector.last() : QModelIndex(); dd->hover = index; if (!dd->droppingOnItself(event, index) @@ -2238,7 +2238,7 @@ bool QListModeViewBase::dropOn(QDropEvent *event, int *dropRow, int *dropCol, QM QRect rect(p.x() + horizontalOffset(), p.y() + verticalOffset(), 1, 1); rect.adjust(-dd->spacing(), -dd->spacing(), dd->spacing(), dd->spacing()); const QList<QModelIndex> intersectVector = dd->intersectingSet(rect); - index = intersectVector.count() > 0 + index = intersectVector.size() > 0 ? intersectVector.last() : QModelIndex(); if (!index.isValid()) index = dd->root; @@ -2284,7 +2284,7 @@ void QListModeViewBase::updateVerticalScrollBar(const QSize &step) if (verticalScrollMode() == QAbstractItemView::ScrollPerItem && ((flow() == QListView::TopToBottom && !isWrapping()) || (flow() == QListView::LeftToRight && isWrapping()))) { - const int steps = (flow() == QListView::TopToBottom ? scrollValueMap : segmentPositions).count() - 1; + const int steps = (flow() == QListView::TopToBottom ? scrollValueMap : segmentPositions).size() - 1; if (steps > 0) { const int pageSteps = perItemScrollingPageSteps(viewport()->height(), contentsSize.height(), isWrapping()); verticalScrollBar()->setSingleStep(1); @@ -2305,7 +2305,7 @@ void QListModeViewBase::updateHorizontalScrollBar(const QSize &step) if (horizontalScrollMode() == QAbstractItemView::ScrollPerItem && ((flow() == QListView::TopToBottom && isWrapping()) || (flow() == QListView::LeftToRight && !isWrapping()))) { - int steps = (flow() == QListView::TopToBottom ? segmentPositions : scrollValueMap).count() - 1; + int steps = (flow() == QListView::TopToBottom ? segmentPositions : scrollValueMap).size() - 1; if (steps > 0) { const int pageSteps = perItemScrollingPageSteps(viewport()->width(), contentsSize.width(), isWrapping()); horizontalScrollBar()->setSingleStep(1); @@ -2329,10 +2329,10 @@ int QListModeViewBase::verticalScrollToValue(int index, QListView::ScrollHint hi } else { int scrollBarValue = verticalScrollBar()->value(); int numHidden = 0; - for (const auto &idx : qAsConst(dd->hiddenRows)) + for (const auto &idx : std::as_const(dd->hiddenRows)) if (idx.row() <= scrollBarValue) ++numHidden; - value = qBound(0, scrollValueMap.at(verticalScrollBar()->value()) - numHidden, flowPositions.count() - 1); + value = qBound(0, scrollValueMap.at(verticalScrollBar()->value()) - numHidden, flowPositions.size() - 1); } if (above) hint = QListView::PositionAtTop; @@ -2352,7 +2352,7 @@ int QListModeViewBase::horizontalOffset() const if (horizontalScrollMode() == QAbstractItemView::ScrollPerItem) { if (isWrapping()) { if (flow() == QListView::TopToBottom && !segmentPositions.isEmpty()) { - const int max = segmentPositions.count() - 1; + const int max = segmentPositions.size() - 1; int currentValue = qBound(0, horizontalScrollBar()->value(), max); int position = segmentPositions.at(currentValue); int maximumValue = qBound(0, horizontalScrollBar()->maximum(), max); @@ -2374,13 +2374,13 @@ int QListModeViewBase::verticalOffset() const if (isWrapping()) { if (flow() == QListView::LeftToRight && !segmentPositions.isEmpty()) { int value = verticalScrollBar()->value(); - if (value >= segmentPositions.count()) + if (value >= segmentPositions.size()) return 0; return segmentPositions.at(value) - spacing(); } } else if (flow() == QListView::TopToBottom && !flowPositions.isEmpty()) { int value = verticalScrollBar()->value(); - if (value > scrollValueMap.count()) + if (value > scrollValueMap.size()) return 0; return flowPositions.at(scrollValueMap.at(value)) - spacing(); } @@ -2398,7 +2398,7 @@ int QListModeViewBase::horizontalScrollToValue(int index, QListView::ScrollHint if (scrollValueMap.isEmpty()) value = 0; else - value = qBound(0, scrollValueMap.at(horizontalScrollBar()->value()), flowPositions.count() - 1); + value = qBound(0, scrollValueMap.at(horizontalScrollBar()->value()), flowPositions.size() - 1); if (leftOf) hint = QListView::PositionAtTop; else if (rightOf) @@ -2420,7 +2420,7 @@ void QListModeViewBase::scrollContentsBy(int dx, int dy, bool scrollElasticBand) if (isWrapping()) { if (segmentPositions.isEmpty()) return; - const int max = segmentPositions.count() - 1; + const int max = segmentPositions.size() - 1; if (horizontal && flow() == QListView::TopToBottom && dx != 0) { int currentValue = qBound(0, horizontalValue, max); int previousValue = qBound(0, currentValue + dx, max); @@ -2437,7 +2437,7 @@ void QListModeViewBase::scrollContentsBy(int dx, int dy, bool scrollElasticBand) } else { if (flowPositions.isEmpty()) return; - const int max = scrollValueMap.count() - 1; + const int max = scrollValueMap.size() - 1; if (vertical && flow() == QListView::TopToBottom && dy != 0) { int currentValue = qBound(0, verticalValue, max); int previousValue = qBound(0, currentValue + dy, max); @@ -2465,11 +2465,11 @@ QListViewItem QListModeViewBase::indexToListViewItem(const QModelIndex &index) c { if (flowPositions.isEmpty() || segmentPositions.isEmpty() - || index.row() >= flowPositions.count() - 1) + || index.row() >= flowPositions.size() - 1) return QListViewItem(); const int segment = qBinarySearch<int>(segmentStartRows, index.row(), - 0, segmentStartRows.count() - 1); + 0, segmentStartRows.size() - 1); QStyleOptionViewItem options; @@ -2487,7 +2487,7 @@ QListViewItem QListModeViewBase::indexToListViewItem(const QModelIndex &index) c pos.setY(flowPositions.at(index.row())); pos.setX(segmentPositions.at(segment)); if (isWrapping()) { // make the items as wide as the segment - int right = (segment + 1 >= segmentPositions.count() + int right = (segment + 1 >= segmentPositions.size() ? contentsSize.width() : segmentPositions.at(segment + 1)); cellSize.setWidth(right - pos.x()); @@ -2611,7 +2611,7 @@ void QListModeViewBase::doStaticLayout(const QListViewLayoutInfo &info) deltaSegPosition = 0; } // save the flow position of this item - scrollValueMap.append(flowPositions.count()); + scrollValueMap.append(flowPositions.size()); flowPositions.append(flowPosition); // prepare for the next item deltaSegPosition = qMax(deltaSegHint, deltaSegPosition); @@ -2627,17 +2627,17 @@ void QListModeViewBase::doStaticLayout(const QListViewLayoutInfo &info) // set the contents size QRect rect = info.bounds; if (info.flow == QListView::LeftToRight) { - rect.setRight(segmentPositions.count() == 1 ? flowPosition : info.bounds.right()); + rect.setRight(segmentPositions.size() == 1 ? flowPosition : info.bounds.right()); rect.setBottom(segPosition + deltaSegPosition); } else { // TopToBottom rect.setRight(segPosition + deltaSegPosition); - rect.setBottom(segmentPositions.count() == 1 ? flowPosition : info.bounds.bottom()); + rect.setBottom(segmentPositions.size() == 1 ? flowPosition : info.bounds.bottom()); } contentsSize = QSize(rect.right(), rect.bottom()); // if it is the last batch, save the end of the segments if (info.last == info.max) { segmentExtents.append(flowPosition); - scrollValueMap.append(flowPositions.count()); + scrollValueMap.append(flowPositions.size()); flowPositions.append(flowPosition); segmentPositions.append(info.wrap ? segPosition + deltaSegPosition : INT_MAX); } @@ -2670,10 +2670,10 @@ QList<QModelIndex> QListModeViewBase::intersectingSet(const QRect &area) const flowStartPosition = area.top(); flowEndPosition = area.bottom(); } - if (segmentPositions.count() < 2 || flowPositions.isEmpty()) + if (segmentPositions.size() < 2 || flowPositions.isEmpty()) return ret; // the last segment position is actually the edge of the last segment - const int segLast = segmentPositions.count() - 2; + const int segLast = segmentPositions.size() - 2; int seg = qBinarySearch<int>(segmentPositions, segStartPosition, 0, segLast + 1); for (; seg <= segLast && segmentPositions.at(seg) <= segEndPosition; ++seg) { int first = segmentStartRows.at(seg); @@ -2740,15 +2740,15 @@ int QListModeViewBase::perItemScrollingPageSteps(int length, int bounds, bool wr positions.append(flowPositions.at(itemShown)); } if (positions.isEmpty() || bounds <= length) - return positions.count(); + return positions.size(); if (uniformItemSizes()) { - for (int i = 1; i < positions.count(); ++i) + for (int i = 1; i < positions.size(); ++i) if (positions.at(i) > 0) return length / positions.at(i); return 0; // all items had height 0 } int pageSteps = 0; - int steps = positions.count() - 1; + int steps = positions.size() - 1; int max = qMax(length, bounds); int min = qMin(length, bounds); int pos = min - (max - positions.constLast()); @@ -2810,7 +2810,7 @@ int QListModeViewBase::perItemScrollToValue(int index, int scrollValue, int view // ### wrapped scrolling in the flow direction return flowPositions.at(index + hiddenRowsBefore); // ### always pixel based for now } else if (!segmentStartRows.isEmpty()) { // we are scrolling in the "segment" direction - int segment = qBinarySearch<int>(segmentStartRows, index, 0, segmentStartRows.count() - 1); + int segment = qBinarySearch<int>(segmentStartRows, index, 0, segmentStartRows.size() - 1); int leftSegment = segment; const int rightSegment = leftSegment; const int bottomCoordinate = segmentPositions.at(segment); @@ -2853,7 +2853,7 @@ void QListModeViewBase::clear() void QIconModeViewBase::setPositionForIndex(const QPoint &position, const QModelIndex &index) { - if (index.row() >= items.count()) + if (index.row() >= items.size()) return; const QSize oldContents = contentsSize; qq->update(index); // update old position @@ -2866,7 +2866,7 @@ void QIconModeViewBase::setPositionForIndex(const QPoint &position, const QModel void QIconModeViewBase::appendHiddenRow(int row) { - if (row >= 0 && row < items.count()) //remove item + if (row >= 0 && row < items.size()) //remove item tree.removeLeaf(items.at(row).rect(), row); QCommonListViewBase::appendHiddenRow(row); } @@ -2874,7 +2874,7 @@ void QIconModeViewBase::appendHiddenRow(int row) void QIconModeViewBase::removeHiddenRow(int row) { QCommonListViewBase::removeHiddenRow(row); - if (row >= 0 && row < items.count()) //insert item + if (row >= 0 && row < items.size()) //insert item tree.insertLeaf(items.at(row).rect(), row); } @@ -2885,7 +2885,7 @@ bool QIconModeViewBase::filterStartDrag(Qt::DropActions supportedActions) // plus adding viewitems to the draggedItems list. // We need these items to draw the drag items QModelIndexList indexes = dd->selectionModel->selectedIndexes(); - if (indexes.count() > 0 ) { + if (indexes.size() > 0 ) { if (viewport()->acceptDrops()) { QModelIndexList::ConstIterator it = indexes.constBegin(); for (; it != indexes.constEnd(); ++it) @@ -2990,7 +2990,7 @@ bool QIconModeViewBase::filterDragMoveEvent(QDragMoveEvent *e) if (movement() == QListView::Snap) { QRect rect(snapToGrid(e->position().toPoint() + offset()), gridSize()); const QList<QModelIndex> intersectVector = intersectingSet(rect); - index = intersectVector.count() > 0 ? intersectVector.last() : QModelIndex(); + index = intersectVector.size() > 0 ? intersectVector.last() : QModelIndex(); } else { index = qq->indexAt(e->position().toPoint()); } @@ -3029,7 +3029,7 @@ void QIconModeViewBase::dataChanged(const QModelIndex &topLeft, const QModelInde if (column() >= topLeft.column() && column() <= bottomRight.column()) { QStyleOptionViewItem option; initViewItemOption(&option); - const int bottom = qMin(items.count(), bottomRight.row() + 1); + const int bottom = qMin(items.size(), bottomRight.row() + 1); const bool useItemSize = !dd->grid.isValid(); for (int row = topLeft.row(); row < bottom; ++row) { @@ -3046,11 +3046,11 @@ void QIconModeViewBase::dataChanged(const QModelIndex &topLeft, const QModelInde bool QIconModeViewBase::doBatchedItemLayout(const QListViewLayoutInfo &info, int max) { - if (info.last >= items.count()) { + if (info.last >= items.size()) { //first we create the items QStyleOptionViewItem option; initViewItemOption(&option); - for (int row = items.count(); row <= info.last; ++row) { + for (int row = items.size(); row <= info.last; ++row) { QSize size = itemSize(option, modelIndex(row)); QListViewItem item(QRect(0, 0, size.width(), size.height()), row); // default pos items.append(item); @@ -3062,7 +3062,7 @@ bool QIconModeViewBase::doBatchedItemLayout(const QListViewLayoutInfo &info, int QListViewItem QIconModeViewBase::indexToListViewItem(const QModelIndex &index) const { - if (index.isValid() && index.row() < items.count()) + if (index.isValid() && index.row() < items.size()) return items.at(index.row()); return QListViewItem(); } @@ -3140,8 +3140,8 @@ void QIconModeViewBase::doDynamicLayout(const QListViewLayoutInfo &info) segPosition = topLeft.x(); } - if (moved.count() != items.count()) - moved.resize(items.count()); + if (moved.size() != items.size()) + moved.resize(items.size()); QRect rect(QPoint(), topLeft); QListViewItem *item = nullptr; @@ -3269,15 +3269,15 @@ int QIconModeViewBase::itemIndex(const QListViewItem &item) const if (!item.isValid()) return -1; int i = item.indexHint; - if (i < items.count()) { + if (i < items.size()) { if (items.at(i) == item) return i; } else { - i = items.count() - 1; + i = items.size() - 1; } int j = i; - int c = items.count(); + int c = items.size(); bool a = true; bool b = true; @@ -3305,9 +3305,9 @@ void QIconModeViewBase::addLeaf(QList<int> &leaf, const QRect &area, uint visite { QListViewItem *vi; QIconModeViewBase *_this = static_cast<QIconModeViewBase *>(data.ptr); - for (int i = 0; i < leaf.count(); ++i) { + for (int i = 0; i < leaf.size(); ++i) { int idx = leaf.at(i); - if (idx < 0 || idx >= _this->items.count()) + if (idx < 0 || idx >= _this->items.size()) continue; vi = &_this->items[idx]; Q_ASSERT(vi); @@ -3335,8 +3335,8 @@ void QIconModeViewBase::moveItem(int index, const QPoint &dest) contentsSize = (QRect(QPoint(0, 0), contentsSize)|QRect(dest, rect.size())).size(); // mark the item as moved - if (moved.count() != items.count()) - moved.resize(items.count()); + if (moved.size() != items.size()) + moved.resize(items.size()); moved.setBit(index, true); } @@ -3388,7 +3388,7 @@ void QIconModeViewBase::clear() void QIconModeViewBase::updateContentsSize() { QRect bounding; - for (int i = 0; i < items.count(); ++i) + for (int i = 0; i < items.size(); ++i) bounding |= items.at(i).rect(); contentsSize = bounding.size(); } @@ -3398,6 +3398,7 @@ void QIconModeViewBase::updateContentsSize() */ void QListView::currentChanged(const QModelIndex ¤t, const QModelIndex &previous) { + QAbstractItemView::currentChanged(current, previous); #if QT_CONFIG(accessibility) if (QAccessible::isActive()) { if (current.isValid()) { @@ -3408,7 +3409,6 @@ void QListView::currentChanged(const QModelIndex ¤t, const QModelIndex &pr } } #endif - QAbstractItemView::currentChanged(current, previous); } /*! @@ -3445,7 +3445,7 @@ int QListView::visualIndex(const QModelIndex &index) const d->executePostedLayout(); QListViewItem itm = d->indexToListViewItem(index); int visualIndex = d->commonListView->itemIndex(itm); - for (const auto &idx : qAsConst(d->hiddenRows)) { + for (const auto &idx : std::as_const(d->hiddenRows)) { if (idx.row() <= index.row()) --visualIndex; } diff --git a/src/widgets/itemviews/qlistview_p.h b/src/widgets/itemviews/qlistview_p.h index 2095d596ab..de928bbb28 100644 --- a/src/widgets/itemviews/qlistview_p.h +++ b/src/widgets/itemviews/qlistview_p.h @@ -460,7 +460,7 @@ inline QAbstractItemDelegate *QCommonListViewBase::delegate(const QModelIndex &i { return qq->itemDelegateForIndex(idx); } inline bool QCommonListViewBase::isHidden(int row) const { return dd->isHidden(row); } -inline int QCommonListViewBase::hiddenCount() const { return dd->hiddenRows.count(); } +inline int QCommonListViewBase::hiddenCount() const { return dd->hiddenRows.size(); } inline bool QCommonListViewBase::isRightToLeft() const { return qq->isRightToLeft(); } diff --git a/src/widgets/itemviews/qlistwidget.cpp b/src/widgets/itemviews/qlistwidget.cpp index 5080ab8fc5..cc0ccf84da 100644 --- a/src/widgets/itemviews/qlistwidget.cpp +++ b/src/widgets/itemviews/qlistwidget.cpp @@ -36,7 +36,7 @@ QListModel::~QListModel() void QListModel::clear() { beginResetModel(); - for (int i = 0; i < items.count(); ++i) { + for (int i = 0; i < items.size(); ++i) { if (items.at(i)) { items.at(i)->d->theid = -1; items.at(i)->view = nullptr; @@ -80,8 +80,8 @@ void QListModel::insert(int row, QListWidgetItem *item) } else { if (row < 0) row = 0; - else if (row > items.count()) - row = items.count(); + else if (row > items.size()) + row = items.size(); } beginInsertRows(QModelIndex(), row, row); items.insert(row, item); @@ -91,7 +91,7 @@ void QListModel::insert(int row, QListWidgetItem *item) void QListModel::insert(int row, const QStringList &labels) { - const int count = labels.count(); + const int count = labels.size(); if (count <= 0) return; QListWidget *view = qobject_cast<QListWidget*>(QObject::parent()); @@ -104,8 +104,8 @@ void QListModel::insert(int row, const QStringList &labels) } else { if (row < 0) row = 0; - else if (row > items.count()) - row = items.count(); + else if (row > items.size()) + row = items.size(); beginInsertRows(QModelIndex(), row, row + count - 1); for (int i = 0; i < count; ++i) { QListWidgetItem *item = new QListWidgetItem(labels.at(i)); @@ -119,7 +119,7 @@ void QListModel::insert(int row, const QStringList &labels) QListWidgetItem *QListModel::take(int row) { - if (row < 0 || row >= items.count()) + if (row < 0 || row >= items.size()) return nullptr; beginRemoveRows(QModelIndex(), row, row); @@ -133,8 +133,8 @@ QListWidgetItem *QListModel::take(int row) void QListModel::move(int srcRow, int dstRow) { if (srcRow == dstRow - || srcRow < 0 || srcRow >= items.count() - || dstRow < 0 || dstRow > items.count()) + || srcRow < 0 || srcRow >= items.size() + || dstRow < 0 || dstRow > items.size()) return; if (!beginMoveRows(QModelIndex(), srcRow, srcRow, QModelIndex(), dstRow)) @@ -147,7 +147,7 @@ void QListModel::move(int srcRow, int dstRow) int QListModel::rowCount(const QModelIndex &parent) const { - return parent.isValid() ? 0 : items.count(); + return parent.isValid() ? 0 : items.size(); } QModelIndex QListModel::index(const QListWidgetItem *item_) const @@ -158,7 +158,7 @@ QModelIndex QListModel::index(const QListWidgetItem *item_) const return QModelIndex(); int row; const int theid = item->d->theid; - if (theid >= 0 && theid < items.count() && items.at(theid) == item) { + if (theid >= 0 && theid < items.size() && items.at(theid) == item) { row = theid; } else { // we need to search for the item row = items.lastIndexOf(item); // lastIndexOf is an optimization in favor of indexOf @@ -178,14 +178,14 @@ QModelIndex QListModel::index(int row, int column, const QModelIndex &parent) co QVariant QListModel::data(const QModelIndex &index, int role) const { - if (!index.isValid() || index.row() >= items.count()) + if (!index.isValid() || index.row() >= items.size()) return QVariant(); return items.at(index.row())->data(role); } bool QListModel::setData(const QModelIndex &index, const QVariant &value, int role) { - if (!index.isValid() || index.row() >= items.count()) + if (!index.isValid() || index.row() >= items.size()) return false; items.at(index.row())->setData(role, value); return true; @@ -208,10 +208,10 @@ bool QListModel::clearItemData(const QModelIndex &index) QMap<int, QVariant> QListModel::itemData(const QModelIndex &index) const { QMap<int, QVariant> roles; - if (!index.isValid() || index.row() >= items.count()) + if (!index.isValid() || index.row() >= items.size()) return roles; QListWidgetItem *itm = items.at(index.row()); - for (int i = 0; i < itm->d->values.count(); ++i) { + for (int i = 0; i < itm->d->values.size(); ++i) { roles.insert(itm->d->values.at(i).role, itm->d->values.at(i).value); } @@ -288,7 +288,7 @@ bool QListModel::moveRows(const QModelIndex &sourceParent, int sourceRow, int co Qt::ItemFlags QListModel::flags(const QModelIndex &index) const { - if (!index.isValid() || index.row() >= items.count() || index.model() != this) + if (!index.isValid() || index.row() >= items.size() || index.model() != this) return Qt::ItemIsDropEnabled; // we allow drops outside the items return items.at(index.row())->flags(); } @@ -300,8 +300,8 @@ void QListModel::sort(int column, Qt::SortOrder order) emit layoutAboutToBeChanged({}, QAbstractItemModel::VerticalSortHint); - QList<QPair<QListWidgetItem *, int>> sorting(items.count()); - for (int i = 0; i < items.count(); ++i) { + QList<QPair<QListWidgetItem *, int>> sorting(items.size()); + for (int i = 0; i < items.size(); ++i) { QListWidgetItem *item = items.at(i); sorting[i].first = item; sorting[i].second = i; @@ -311,7 +311,7 @@ void QListModel::sort(int column, Qt::SortOrder order) std::sort(sorting.begin(), sorting.end(), compare); QModelIndexList fromIndexes; QModelIndexList toIndexes; - const int sortingCount = sorting.count(); + const int sortingCount = sorting.size(); fromIndexes.reserve(sortingCount); toIndexes.reserve(sortingCount); for (int r = 0; r < sortingCount; ++r) { @@ -376,7 +376,7 @@ void QListModel::ensureSorted(int column, Qt::SortOrder order, int start, int en else if (oldRow > otherRow && newRow <= otherRow) ++sorting[j].second; } - for (int k = 0; k < newPersistentIndexes.count(); ++k) { + for (int k = 0; k < newPersistentIndexes.size(); ++k) { QModelIndex pi = newPersistentIndexes.at(k); int oldPersistentRow = pi.row(); int newPersistentRow = oldPersistentRow; @@ -444,7 +444,7 @@ QMimeData *QListModel::internalMimeData() const QMimeData *QListModel::mimeData(const QModelIndexList &indexes) const { QList<QListWidgetItem*> itemlist; - const int indexesCount = indexes.count(); + const int indexesCount = indexes.size(); itemlist.reserve(indexesCount); for (int i = 0; i < indexesCount; ++i) itemlist << at(indexes.at(i).row()); @@ -465,7 +465,7 @@ bool QListModel::dropMimeData(const QMimeData *data, Qt::DropAction action, if (index.isValid()) row = index.row(); else if (row == -1) - row = items.count(); + row = items.size(); return view->dropMimeData(row, data, action); } @@ -702,7 +702,7 @@ void QListWidgetItem::setData(int role, const QVariant &value) { bool found = false; role = (role == Qt::EditRole ? Qt::DisplayRole : role); - for (int i = 0; i < d->values.count(); ++i) { + for (int i = 0; i < d->values.size(); ++i) { if (d->values.at(i).role == role) { if (d->values.at(i).value == value) return; @@ -730,7 +730,7 @@ void QListWidgetItem::setData(int role, const QVariant &value) QVariant QListWidgetItem::data(int role) const { role = (role == Qt::EditRole ? Qt::DisplayRole : role); - for (int i = 0; i < d->values.count(); ++i) + for (int i = 0; i < d->values.size(); ++i) if (d->values.at(i).role == role) return d->values.at(i).value; return QVariant(); @@ -1760,7 +1760,7 @@ QList<QListWidgetItem*> QListWidget::selectedItems() const Q_D(const QListWidget); QModelIndexList indexes = selectionModel()->selectedIndexes(); QList<QListWidgetItem*> items; - const int numIndexes = indexes.count(); + const int numIndexes = indexes.size(); items.reserve(numIndexes); for (int i = 0; i < numIndexes; ++i) items.append(d->listModel()->at(indexes.at(i).row())); @@ -1837,7 +1837,7 @@ QMimeData *QListWidget::mimeData(const QList<QListWidgetItem *> &items) const // if non empty, it's called from the model's own mimeData if (cachedIndexes.isEmpty()) { - cachedIndexes.reserve(items.count()); + cachedIndexes.reserve(items.size()); for (QListWidgetItem *item : items) cachedIndexes << indexFromItem(item); diff --git a/src/widgets/itemviews/qstyleditemdelegate.cpp b/src/widgets/itemviews/qstyleditemdelegate.cpp index fc8a9203d9..7442fc58c8 100644 --- a/src/widgets/itemviews/qstyleditemdelegate.cpp +++ b/src/widgets/itemviews/qstyleditemdelegate.cpp @@ -115,7 +115,7 @@ public: \row \li \l Qt::AccessibleDescriptionRole \li QString \row \li \l Qt::AccessibleTextRole \li QString \endomit - \row \li \l Qt::BackgroundRole \li QBrush (\since 4.2) + \row \li \l Qt::BackgroundRole \li QBrush \since 4.2 \row \li \l Qt::CheckStateRole \li Qt::CheckState \row \li \l Qt::DecorationRole \li QIcon, QPixmap, QImage and QColor \row \li \l Qt::DisplayRole \li QString and types with a string representation @@ -126,7 +126,7 @@ public: \row \li \l Qt::StatusTipRole \li \endomit \row \li \l Qt::TextAlignmentRole \li Qt::Alignment - \row \li \l Qt::ForegroundRole \li QBrush (\since 4.2) + \row \li \l Qt::ForegroundRole \li QBrush \since 4.2 \omit \row \li \l Qt::ToolTipRole \row \li \l Qt::WhatsThisRole diff --git a/src/widgets/itemviews/qtableview.cpp b/src/widgets/itemviews/qtableview.cpp index 2f46842712..cfde93a477 100644 --- a/src/widgets/itemviews/qtableview.cpp +++ b/src/widgets/itemviews/qtableview.cpp @@ -907,7 +907,7 @@ void QTableViewPrivate::drawAndClipSpans(const QRegion &area, QPainter *painter, } } - for (QSpanCollection::Span *span : qAsConst(visibleSpans)) { + for (QSpanCollection::Span *span : std::as_const(visibleSpans)) { int row = span->top(); int col = span->left(); QModelIndex index = model->index(row, col, root); @@ -2197,7 +2197,7 @@ QModelIndexList QTableView::selectedIndexes() const QModelIndexList modelSelected; if (d->selectionModel) modelSelected = d->selectionModel->selectedIndexes(); - for (int i = 0; i < modelSelected.count(); ++i) { + for (int i = 0; i < modelSelected.size(); ++i) { QModelIndex index = modelSelected.at(i); if (!isIndexHidden(index) && index.parent() == d->root) viewSelected.append(index); diff --git a/src/widgets/itemviews/qtablewidget.cpp b/src/widgets/itemviews/qtablewidget.cpp index ae523b2dda..67886be94f 100644 --- a/src/widgets/itemviews/qtablewidget.cpp +++ b/src/widgets/itemviews/qtablewidget.cpp @@ -27,12 +27,12 @@ QTableModel::~QTableModel() bool QTableModel::insertRows(int row, int count, const QModelIndex &) { - if (count < 1 || row < 0 || row > verticalHeaderItems.count()) + if (count < 1 || row < 0 || row > verticalHeaderItems.size()) return false; beginInsertRows(QModelIndex(), row, row + count - 1); - int rc = verticalHeaderItems.count(); - int cc = horizontalHeaderItems.count(); + int rc = verticalHeaderItems.size(); + int cc = horizontalHeaderItems.size(); verticalHeaderItems.insert(row, count, 0); if (rc == 0) tableItems.resize(cc * count); @@ -44,12 +44,12 @@ bool QTableModel::insertRows(int row, int count, const QModelIndex &) bool QTableModel::insertColumns(int column, int count, const QModelIndex &) { - if (count < 1 || column < 0 || column > horizontalHeaderItems.count()) + if (count < 1 || column < 0 || column > horizontalHeaderItems.size()) return false; beginInsertColumns(QModelIndex(), column, column + count - 1); - int rc = verticalHeaderItems.count(); - int cc = horizontalHeaderItems.count(); + int rc = verticalHeaderItems.size(); + int cc = horizontalHeaderItems.size(); horizontalHeaderItems.insert(column, count, 0); if (cc == 0) tableItems.resize(rc * count); @@ -62,7 +62,7 @@ bool QTableModel::insertColumns(int column, int count, const QModelIndex &) bool QTableModel::removeRows(int row, int count, const QModelIndex &) { - if (count < 1 || row < 0 || row + count > verticalHeaderItems.count()) + if (count < 1 || row < 0 || row + count > verticalHeaderItems.size()) return false; beginRemoveRows(QModelIndex(), row, row + count - 1); @@ -89,7 +89,7 @@ bool QTableModel::removeRows(int row, int count, const QModelIndex &) bool QTableModel::removeColumns(int column, int count, const QModelIndex &) { - if (count < 1 || column < 0 || column + count > horizontalHeaderItems.count()) + if (count < 1 || column < 0 || column + count > horizontalHeaderItems.size()) return false; beginRemoveColumns(QModelIndex(), column, column + count - 1); @@ -118,7 +118,7 @@ bool QTableModel::removeColumns(int column, int count, const QModelIndex &) void QTableModel::setItem(int row, int column, QTableWidgetItem *item) { int i = tableIndex(row, column); - if (i < 0 || i >= tableItems.count()) + if (i < 0 || i >= tableItems.size()) return; QTableWidgetItem *oldItem = tableItems.at(i); if (item == oldItem) @@ -141,12 +141,12 @@ void QTableModel::setItem(int row, int column, QTableWidgetItem *item) // sorted insertion Qt::SortOrder order = view->horizontalHeader()->sortIndicatorOrder(); QList<QTableWidgetItem *> colItems = columnItems(column); - if (row < colItems.count()) + if (row < colItems.size()) colItems.remove(row); int sortedRow; if (item == nullptr) { // move to after all non-0 (sortable) items - sortedRow = colItems.count(); + sortedRow = colItems.size(); } else { QList<QTableWidgetItem *>::iterator it; it = sortedInsertionIterator(colItems.begin(), colItems.end(), order, item); @@ -234,7 +234,7 @@ void QTableModel::removeItem(QTableWidgetItem *item) void QTableModel::setHorizontalHeaderItem(int section, QTableWidgetItem *item) { - if (section < 0 || section >= horizontalHeaderItems.count()) + if (section < 0 || section >= horizontalHeaderItems.size()) return; QTableWidgetItem *oldItem = horizontalHeaderItems.at(section); if (item == oldItem) @@ -256,7 +256,7 @@ void QTableModel::setHorizontalHeaderItem(int section, QTableWidgetItem *item) void QTableModel::setVerticalHeaderItem(int section, QTableWidgetItem *item) { - if (section < 0 || section >= verticalHeaderItems.count()) + if (section < 0 || section >= verticalHeaderItems.size()) return; QTableWidgetItem *oldItem = verticalHeaderItems.at(section); if (item == oldItem) @@ -278,7 +278,7 @@ void QTableModel::setVerticalHeaderItem(int section, QTableWidgetItem *item) QTableWidgetItem *QTableModel::takeHorizontalHeaderItem(int section) { - if (section < 0 || section >= horizontalHeaderItems.count()) + if (section < 0 || section >= horizontalHeaderItems.size()) return nullptr; QTableWidgetItem *itm = horizontalHeaderItems.at(section); if (itm) { @@ -291,7 +291,7 @@ QTableWidgetItem *QTableModel::takeHorizontalHeaderItem(int section) QTableWidgetItem *QTableModel::takeVerticalHeaderItem(int section) { - if (section < 0 || section >= verticalHeaderItems.count()) + if (section < 0 || section >= verticalHeaderItems.size()) return nullptr; QTableWidgetItem *itm = verticalHeaderItems.at(section); if (itm) { @@ -318,7 +318,7 @@ QModelIndex QTableModel::index(const QTableWidgetItem *item) const return QModelIndex(); int i = -1; const int id = item->d->id; - if (id >= 0 && id < tableItems.count() && tableItems.at(id) == item) { + if (id >= 0 && id < tableItems.size() && tableItems.at(id) == item) { i = id; } else { // we need to search for the item i = tableItems.indexOf(const_cast<QTableWidgetItem*>(item)); @@ -332,7 +332,7 @@ QModelIndex QTableModel::index(const QTableWidgetItem *item) const void QTableModel::setRowCount(int rows) { - int rc = verticalHeaderItems.count(); + int rc = verticalHeaderItems.size(); if (rows < 0 || rc == rows) return; if (rc < rows) @@ -343,7 +343,7 @@ void QTableModel::setRowCount(int rows) void QTableModel::setColumnCount(int columns) { - int cc = horizontalHeaderItems.count(); + int cc = horizontalHeaderItems.size(); if (columns < 0 || cc == columns) return; if (cc < columns) @@ -354,12 +354,12 @@ void QTableModel::setColumnCount(int columns) int QTableModel::rowCount(const QModelIndex &parent) const { - return parent.isValid() ? 0 : verticalHeaderItems.count(); + return parent.isValid() ? 0 : verticalHeaderItems.size(); } int QTableModel::columnCount(const QModelIndex &parent) const { - return parent.isValid() ? 0 : horizontalHeaderItems.count(); + return parent.isValid() ? 0 : horizontalHeaderItems.size(); } QVariant QTableModel::data(const QModelIndex &index, int role) const @@ -400,7 +400,7 @@ QMap<int, QVariant> QTableModel::itemData(const QModelIndex &index) const QMap<int, QVariant> roles; QTableWidgetItem *itm = item(index); if (itm) { - for (int i = 0; i < itm->values.count(); ++i) { + for (int i = 0; i < itm->values.size(); ++i) { roles.insert(itm->values.at(i).role, itm->values.at(i).value); } @@ -492,7 +492,7 @@ void QTableModel::sort(int column, Qt::SortOrder order) const auto compare = (order == Qt::AscendingOrder ? &itemLessThan : &itemGreaterThan); std::stable_sort(sortable.begin(), sortable.end(), compare); - QList<QTableWidgetItem *> sorted_table(tableItems.count()); + QList<QTableWidgetItem *> sorted_table(tableItems.size()); QModelIndexList from; QModelIndexList to; const int numRows = rowCount(); @@ -500,9 +500,9 @@ void QTableModel::sort(int column, Qt::SortOrder order) from.reserve(numRows * numColumns); to.reserve(numRows * numColumns); for (int i = 0; i < numRows; ++i) { - int r = (i < sortable.count() + int r = (i < sortable.size() ? sortable.at(i).second - : unsortable.at(i - sortable.count())); + : unsortable.at(i - sortable.size())); for (int c = 0; c < numColumns; ++c) { sorted_table[tableIndex(i, c)] = item(r, c); from.append(createIndex(r, c)); @@ -550,7 +550,7 @@ void QTableModel::ensureSorted(int column, Qt::SortOrder order, QList<QTableWidgetItem *>::iterator vit = colItems.begin(); qsizetype distanceFromBegin = 0; bool changed = false; - for (int i = 0; i < sorting.count(); ++i) { + for (int i = 0; i < sorting.size(); ++i) { distanceFromBegin = std::distance(colItems.begin(), vit); int oldRow = sorting.at(i).second; QTableWidgetItem *item = colItems.at(oldRow); @@ -583,7 +583,7 @@ void QTableModel::ensureSorted(int column, Qt::SortOrder order, // update persistent indexes updateRowIndexes(newPersistentIndexes, oldRow, newRow); // the index of the remaining rows may have changed - for (int j = i + 1; j < sorting.count(); ++j) { + for (int j = i + 1; j < sorting.size(); ++j) { int otherRow = sorting.at(j).second; if (oldRow < otherRow && newRow >= otherRow) --sorting[j].second; @@ -684,9 +684,9 @@ QVariant QTableModel::headerData(int section, Qt::Orientation orientation, int r return QVariant(); QTableWidgetItem *itm = nullptr; - if (orientation == Qt::Horizontal && section < horizontalHeaderItems.count()) + if (orientation == Qt::Horizontal && section < horizontalHeaderItems.size()) itm = horizontalHeaderItems.at(section); - else if (orientation == Qt::Vertical && section < verticalHeaderItems.count()) + else if (orientation == Qt::Vertical && section < verticalHeaderItems.size()) itm = verticalHeaderItems.at(section); else return QVariant(); // section is out of bounds @@ -721,20 +721,20 @@ bool QTableModel::setHeaderData(int section, Qt::Orientation orientation, bool QTableModel::isValid(const QModelIndex &index) const { return (index.isValid() - && index.row() < verticalHeaderItems.count() - && index.column() < horizontalHeaderItems.count()); + && index.row() < verticalHeaderItems.size() + && index.column() < horizontalHeaderItems.size()); } void QTableModel::clear() { - for (int j = 0; j < verticalHeaderItems.count(); ++j) { + for (int j = 0; j < verticalHeaderItems.size(); ++j) { if (verticalHeaderItems.at(j)) { verticalHeaderItems.at(j)->view = nullptr; delete verticalHeaderItems.at(j); verticalHeaderItems[j] = 0; } } - for (int k = 0; k < horizontalHeaderItems.count(); ++k) { + for (int k = 0; k < horizontalHeaderItems.size(); ++k) { if (horizontalHeaderItems.at(k)) { horizontalHeaderItems.at(k)->view = nullptr; delete horizontalHeaderItems.at(k); @@ -747,7 +747,7 @@ void QTableModel::clear() void QTableModel::clearContents() { beginResetModel(); - for (int i = 0; i < tableItems.count(); ++i) { + for (int i = 0; i < tableItems.size(); ++i) { if (tableItems.at(i)) { tableItems.at(i)->view = nullptr; delete tableItems.at(i); @@ -809,7 +809,7 @@ QMimeData *QTableModel::internalMimeData() const QMimeData *QTableModel::mimeData(const QModelIndexList &indexes) const { QList<QTableWidgetItem*> items; - const int indexesCount = indexes.count(); + const int indexesCount = indexes.size(); items.reserve(indexesCount); for (int i = 0; i < indexesCount; ++i) items << item(indexes.at(i)); @@ -1380,7 +1380,7 @@ void QTableWidgetItem::setData(int role, const QVariant &value) { bool found = false; role = (role == Qt::EditRole ? Qt::DisplayRole : role); - for (int i = 0; i < values.count(); ++i) { + for (int i = 0; i < values.size(); ++i) { if (values.at(i).role == role) { if (values[i].value == value) return; @@ -2087,7 +2087,7 @@ void QTableWidget::setVerticalHeaderLabels(const QStringList &labels) Q_D(QTableWidget); QTableModel *model = d->tableModel(); QTableWidgetItem *item = nullptr; - for (int i = 0; i < model->rowCount() && i < labels.count(); ++i) { + for (int i = 0; i < model->rowCount() && i < labels.size(); ++i) { item = model->verticalHeaderItem(i); if (!item) { item = model->createItem(); @@ -2105,7 +2105,7 @@ void QTableWidget::setHorizontalHeaderLabels(const QStringList &labels) Q_D(QTableWidget); QTableModel *model = d->tableModel(); QTableWidgetItem *item = nullptr; - for (int i = 0; i < model->columnCount() && i < labels.count(); ++i) { + for (int i = 0; i < model->columnCount() && i < labels.size(); ++i) { item = model->horizontalHeaderItem(i); if (!item) { item = model->createItem(); @@ -2344,7 +2344,7 @@ QList<QTableWidgetSelectionRange> QTableWidget::selectedRanges() const { const QList<QItemSelectionRange> ranges = selectionModel()->selection(); QList<QTableWidgetSelectionRange> result; - const int rangesCount = ranges.count(); + const int rangesCount = ranges.size(); result.reserve(rangesCount); for (int i = 0; i < rangesCount; ++i) result.append({ranges.at(i).top(), @@ -2582,7 +2582,7 @@ QMimeData *QTableWidget::mimeData(const QList<QTableWidgetItem *> &items) const // if non empty, it's called from the model's own mimeData if (cachedIndexes.isEmpty()) { - cachedIndexes.reserve(items.count()); + cachedIndexes.reserve(items.size()); for (QTableWidgetItem *item : items) cachedIndexes << indexFromItem(item); @@ -2697,7 +2697,7 @@ void QTableWidget::dropEvent(QDropEvent *event) { } QList<QTableWidgetItem *> taken; - const int indexesCount = indexes.count(); + const int indexesCount = indexes.size(); taken.reserve(indexesCount); for (const auto &index : indexes) taken.append(takeItem(index.row(), index.column())); diff --git a/src/widgets/itemviews/qtablewidget_p.h b/src/widgets/itemviews/qtablewidget_p.h index 2c4193c0de..1d893224c0 100644 --- a/src/widgets/itemviews/qtablewidget_p.h +++ b/src/widgets/itemviews/qtablewidget_p.h @@ -118,7 +118,7 @@ public: bool isValid(const QModelIndex &index) const; inline long tableIndex(int row, int column) const - { return (row * horizontalHeaderItems.count()) + column; } + { return (row * horizontalHeaderItems.size()) + column; } void clear(); void clearContents(); diff --git a/src/widgets/itemviews/qtreeview.cpp b/src/widgets/itemviews/qtreeview.cpp index 3711a933f6..065c42d6b7 100644 --- a/src/widgets/itemviews/qtreeview.cpp +++ b/src/widgets/itemviews/qtreeview.cpp @@ -1002,9 +1002,9 @@ void QTreeView::keyboardSearch(const QString &search) // special case for searches with same key like 'aaaaa' bool sameKey = false; - if (d->keyboardInput.length() > 1) { - int c = d->keyboardInput.count(d->keyboardInput.at(d->keyboardInput.length() - 1)); - sameKey = (c == d->keyboardInput.length()); + if (d->keyboardInput.size() > 1) { + int c = d->keyboardInput.count(d->keyboardInput.at(d->keyboardInput.size() - 1)); + sameKey = (c == d->keyboardInput.size()); if (sameKey) skipRow = true; } @@ -1029,7 +1029,7 @@ void QTreeView::keyboardSearch(const QString &search) int bestAbove = -1; int bestBelow = -1; QString searchString = sameKey ? QString(d->keyboardInput.at(0)) : d->keyboardInput; - for (int i = 0; i < d->viewItems.count(); ++i) { + for (int i = 0; i < d->viewItems.size(); ++i) { if ((int)d->viewItems.at(i).level > previousLevel) { QModelIndex searchFrom = d->viewItems.at(i).index; if (start.column() > 0) @@ -1037,7 +1037,7 @@ void QTreeView::keyboardSearch(const QString &search) if (searchFrom.parent() == start.parent()) searchFrom = start; QModelIndexList match = d->model->match(searchFrom, Qt::DisplayRole, searchString); - if (match.count()) { + if (match.size()) { int hitIndex = d->viewIndex(match.at(0)); if (hitIndex >= 0 && hitIndex < startIndex) bestAbove = bestAbove == -1 ? hitIndex : qMin(hitIndex, bestAbove); @@ -1458,7 +1458,7 @@ void QTreeView::drawTree(QPainter *painter, const QRegion ®ion) const const QStyle::State state = option.state; d->current = 0; - if (viewItems.count() == 0 || d->header->count() == 0 || !d->itemDelegate) { + if (viewItems.size() == 0 || d->header->count() == 0 || !d->itemDelegate) { d->paintAlternatingRowColors(painter, &option, 0, region.boundingRect().bottom()+1); return; } @@ -1487,7 +1487,7 @@ void QTreeView::drawTree(QPainter *painter, const QRegion ®ion) const int y = firstVisibleItemOffset; // we may only see part of the first item // start at the top of the viewport and iterate down to the update area - for (; i < viewItems.count(); ++i) { + for (; i < viewItems.size(); ++i) { const int itemHeight = d->itemHeight(i); if (y + itemHeight > area.top()) break; @@ -1495,7 +1495,7 @@ void QTreeView::drawTree(QPainter *painter, const QRegion ®ion) const } // paint the visible rows - for (; i < viewItems.count() && y <= area.bottom(); ++i) { + for (; i < viewItems.size() && y <= area.bottom(); ++i) { const int itemHeight = d->itemHeight(i); option.rect.setRect(0, y, viewportWidth, itemHeight); option.state = state | (viewItems.at(i).expanded ? QStyle::State_Open : QStyle::State_None) @@ -1556,11 +1556,11 @@ void QTreeViewPrivate::calcLogicalIndices( } } - itemPositions->resize(logicalIndices->count()); - for (int currentLogicalSection = 0; currentLogicalSection < logicalIndices->count(); ++currentLogicalSection) { + itemPositions->resize(logicalIndices->size()); + for (int currentLogicalSection = 0; currentLogicalSection < logicalIndices->size(); ++currentLogicalSection) { const int headerSection = logicalIndices->at(currentLogicalSection); // determine the viewItemPosition depending on the position of column 0 - int nextLogicalSection = currentLogicalSection + 1 >= logicalIndices->count() + int nextLogicalSection = currentLogicalSection + 1 >= logicalIndices->size() ? logicalIndexAfterRight : logicalIndices->at(currentLogicalSection + 1); int prevLogicalSection = currentLogicalSection - 1 < 0 @@ -1659,8 +1659,11 @@ void QTreeView::drawRow(QPainter *painter, const QStyleOptionViewItem &option, } } - // ### special case: treeviews with multiple columns draw - // the selections differently than with only one column + // ### special case: if we select entire rows, then we need to draw the + // selection in the first column all the way to the second column, rather + // than just around the item text. We abuse showDecorationSelected to + // indicate this to the style. Below we will reset this value temporarily + // to only respect the styleHint while we are rendering the decoration. opt.showDecorationSelected = (d->selectionBehavior & SelectRows) || option.showDecorationSelected; @@ -1676,7 +1679,7 @@ void QTreeView::drawRow(QPainter *painter, const QStyleOptionViewItem &option, viewItemPosList; // vector of left/middle/end for each logicalIndex d->calcLogicalIndices(&logicalIndices, &viewItemPosList, left, right); - for (int currentLogicalSection = 0; currentLogicalSection < logicalIndices.count(); ++currentLogicalSection) { + for (int currentLogicalSection = 0; currentLogicalSection < logicalIndices.size(); ++currentLogicalSection) { int headerSection = logicalIndices.at(currentLogicalSection); position = columnViewportPosition(headerSection) + offset.x(); width = header->sectionSize(headerSection); @@ -1745,8 +1748,16 @@ void QTreeView::drawRow(QPainter *painter, const QStyleOptionViewItem &option, } // draw background for the branch (selection + alternate row) opt.rect = branches; - if (style()->styleHint(QStyle::SH_ItemView_ShowDecorationSelected, &opt, this)) - style()->drawPrimitive(QStyle::PE_PanelItemViewRow, &opt, painter, this); + + // We use showDecorationSelected both to store the style hint, and to indicate + // that the entire row has to be selected (see overrides of the value if + // selectionBehavior == SelectRow). + // While we are only painting the background we don't care for the + // selectionBehavior factor, so respect only the style value, and reset later. + const bool oldShowDecorationSelected = opt.showDecorationSelected; + opt.showDecorationSelected = style()->styleHint(QStyle::SH_ItemView_ShowDecorationSelected, + &opt, this); + style()->drawPrimitive(QStyle::PE_PanelItemViewRow, &opt, painter, this); // draw background of the item (only alternate row). rest of the background // is provided by the delegate @@ -1755,6 +1766,7 @@ void QTreeView::drawRow(QPainter *painter, const QStyleOptionViewItem &option, opt.rect.setRect(reverse ? position : i + position, y, width - i, height); style()->drawPrimitive(QStyle::PE_PanelItemViewRow, &opt, painter, this); opt.state = oldState; + opt.showDecorationSelected = oldShowDecorationSelected; if (d->indent != 0) drawBranches(painter, branches, index); @@ -1961,13 +1973,13 @@ void QTreeView::mouseDoubleClickEvent(QMouseEvent *event) if (d->itemsExpandable && d->expandsOnDoubleClick && d->hasVisibleChildren(persistent)) { - if (!((i < d->viewItems.count()) && (d->viewItems.at(i).index == firstColumnIndex))) { + if (!((i < d->viewItems.size()) && (d->viewItems.at(i).index == firstColumnIndex))) { // find the new index of the item - for (i = 0; i < d->viewItems.count(); ++i) { + for (i = 0; i < d->viewItems.size(); ++i) { if (d->viewItems.at(i).index == firstColumnIndex) break; } - if (i == d->viewItems.count()) + if (i == d->viewItems.size()) return; } if (d->viewItems.at(i).expanded) @@ -2065,7 +2077,7 @@ QModelIndex QTreeView::indexBelow(const QModelIndex &index) const return QModelIndex(); d->executePostedLayout(); int i = d->viewIndex(index); - if (++i >= d->viewItems.count()) + if (++i >= d->viewItems.size()) return QModelIndex(); const QModelIndex firstColumnIndex = d->viewItems.at(i).index; return firstColumnIndex.sibling(firstColumnIndex.row(), index.column()); @@ -2149,7 +2161,7 @@ int QTreeView::verticalOffset() const // ### find a faster way to do this d->executePostedLayout(); int offset = 0; - const int cnt = qMin(d->viewItems.count(), verticalScrollBar()->value()); + const int cnt = qMin(d->viewItems.size(), verticalScrollBar()->value()); for (int i = 0; i < cnt; ++i) offset += d->itemHeight(i); return offset; @@ -2175,7 +2187,7 @@ QModelIndex QTreeView::moveCursor(CursorAction cursorAction, Qt::KeyboardModifie int c = 0; while (c < d->header->count() && d->header->isSectionHidden(d->header->logicalIndex(c))) ++c; - if (i < d->viewItems.count() && c < d->header->count()) { + if (i < d->viewItems.size() && c < d->header->count()) { return d->modelIndex(i, d->header->logicalIndex(c)); } return QModelIndex(); @@ -2207,7 +2219,7 @@ QModelIndex QTreeView::moveCursor(CursorAction cursorAction, Qt::KeyboardModifie return d->modelIndex(d->above(vi), current.column()); case MoveLeft: { QScrollBar *sb = horizontalScrollBar(); - if (vi < d->viewItems.count() && d->viewItems.at(vi).expanded && d->itemsExpandable && sb->value() == sb->minimum()) { + if (vi < d->viewItems.size() && d->viewItems.at(vi).expanded && d->itemsExpandable && sb->value() == sb->minimum()) { d->collapse(vi, true); d->moveCursorUpdatedView = true; } else { @@ -2242,7 +2254,7 @@ QModelIndex QTreeView::moveCursor(CursorAction cursorAction, Qt::KeyboardModifie break; } case MoveRight: - if (vi < d->viewItems.count() && !d->viewItems.at(vi).expanded && d->itemsExpandable + if (vi < d->viewItems.size() && !d->viewItems.at(vi).expanded && d->itemsExpandable && d->hasVisibleChildren(d->viewItems.at(vi).index)) { d->expand(vi, true); d->moveCursorUpdatedView = true; @@ -2397,7 +2409,7 @@ QModelIndexList QTreeView::selectedIndexes() const QModelIndexList modelSelected; if (selectionModel()) modelSelected = selectionModel()->selectedIndexes(); - for (int i = 0; i < modelSelected.count(); ++i) { + for (int i = 0; i < modelSelected.size(); ++i) { // check that neither the parents nor the index is hidden before we add QModelIndex index = modelSelected.at(i); while (index.isValid() && !isIndexHidden(index)) @@ -2434,7 +2446,7 @@ void QTreeView::scrollContentsBy(int dx, int dy) // guestimate the number of items in the viewport int viewCount = d->viewport->height() / itemHeight; - int maxDeltaY = qMin(d->viewItems.count(), viewCount); + int maxDeltaY = qMin(d->viewItems.size(), viewCount); // no need to do a lot of work if we are going to redraw the whole thing anyway if (qAbs(dy) > qAbs(maxDeltaY) && d->editorIndexHash.isEmpty()) { verticalScrollBar()->update(); @@ -2450,12 +2462,12 @@ void QTreeView::scrollContentsBy(int dx, int dy) dy = 0; if (previousViewIndex < currentViewIndex) { // scrolling down for (int i = previousViewIndex; i < currentViewIndex; ++i) { - if (i < d->viewItems.count()) + if (i < d->viewItems.size()) dy -= d->itemHeight(i); } } else if (previousViewIndex > currentViewIndex) { // scrolling up for (int i = previousViewIndex - 1; i >= currentViewIndex; --i) { - if (i < d->viewItems.count()) + if (i < d->viewItems.size()) dy += d->itemHeight(i); } } @@ -2758,7 +2770,7 @@ void QTreeView::expandToDepth(int depth) d->expandedIndexes.clear(); d->interruptDelayedItemsLayout(); d->layout(-1); - for (int i = 0; i < d->viewItems.count(); ++i) { + for (int i = 0; i < d->viewItems.size(); ++i) { if (d->viewItems.at(i).level <= (uint)depth) { d->viewItems[i].expanded = true; d->layout(i); @@ -3092,7 +3104,7 @@ void QTreeViewPrivate::insertViewItems(int pos, int count, const QTreeViewItem & { viewItems.insert(pos, count, viewItem); QTreeViewItem *items = viewItems.data(); - for (int i = pos + count; i < viewItems.count(); i++) + for (int i = pos + count; i < viewItems.size(); i++) if (items[i].parentItem >= pos) items[i].parentItem += count; } @@ -3101,7 +3113,7 @@ void QTreeViewPrivate::removeViewItems(int pos, int count) { viewItems.remove(pos, count); QTreeViewItem *items = viewItems.data(); - for (int i = pos; i < viewItems.count(); i++) + for (int i = pos; i < viewItems.size(); i++) if (items[i].parentItem >= pos) items[i].parentItem -= count; } @@ -3345,7 +3357,7 @@ void QTreeViewPrivate::layout(int i, bool recursiveExpanding, bool afterIsUninit if (!afterIsUninitialized) insertViewItems(i + 1, count, QTreeViewItem()); // expand else if (count > 0) - viewItems.resize(viewItems.count() + count); + viewItems.resize(viewItems.size() + count); } else { expanding = false; } @@ -3415,7 +3427,7 @@ int QTreeViewPrivate::pageUp(int i) const index = 0; while (isItemHiddenOrDisabled(index)) index++; - return index >= viewItems.count() ? 0 : index; + return index >= viewItems.size() ? 0 : index; } int QTreeViewPrivate::pageDown(int i) const @@ -3423,11 +3435,11 @@ int QTreeViewPrivate::pageDown(int i) const int index = itemAtCoordinate(coordinateForItem(i) + viewport->height()); while (isItemHiddenOrDisabled(index)) index++; - if (index == -1 || index >= viewItems.count()) - index = viewItems.count() - 1; + if (index == -1 || index >= viewItems.size()) + index = viewItems.size() - 1; while (isItemHiddenOrDisabled(index)) index--; - return index == -1 ? viewItems.count() - 1 : index; + return index == -1 ? viewItems.size() - 1 : index; } int QTreeViewPrivate::itemForKeyHome() const @@ -3435,20 +3447,20 @@ int QTreeViewPrivate::itemForKeyHome() const int index = 0; while (isItemHiddenOrDisabled(index)) index++; - return index >= viewItems.count() ? 0 : index; + return index >= viewItems.size() ? 0 : index; } int QTreeViewPrivate::itemForKeyEnd() const { - int index = viewItems.count() - 1; + int index = viewItems.size() - 1; while (isItemHiddenOrDisabled(index)) index--; - return index == -1 ? viewItems.count() - 1 : index; + return index == -1 ? viewItems.size() - 1 : index; } int QTreeViewPrivate::indentationForItem(int item) const { - if (item < 0 || item >= viewItems.count()) + if (item < 0 || item >= viewItems.size()) return 0; int level = viewItems.at(item).level; if (rootDecoration) @@ -3458,7 +3470,7 @@ int QTreeViewPrivate::indentationForItem(int item) const int QTreeViewPrivate::itemHeight(int item) const { - Q_ASSERT(item < viewItems.count()); + Q_ASSERT(item < viewItems.size()); if (uniformRowHeights) return defaultItemHeight; if (viewItems.isEmpty()) @@ -3486,7 +3498,7 @@ int QTreeViewPrivate::coordinateForItem(int item) const return (item * defaultItemHeight) - vbar->value(); // ### optimize (maybe do like QHeaderView by letting items have startposition) int y = 0; - for (int i = 0; i < viewItems.count(); ++i) { + for (int i = 0; i < viewItems.size(); ++i) { if (i == item) return y - vbar->value(); y += itemHeight(i); @@ -3500,7 +3512,7 @@ int QTreeViewPrivate::coordinateForItem(int item) const // ### slow if the item is not visible int viewItemCoordinate = 0; int viewItemIndex = topViewItemIndex; - while (viewItemIndex < viewItems.count()) { + while (viewItemIndex < viewItems.size()) { if (viewItemIndex == item) return viewItemCoordinate; viewItemCoordinate += itemHeight(viewItemIndex); @@ -3532,7 +3544,7 @@ int QTreeViewPrivate::coordinateForItem(int item) const */ int QTreeViewPrivate::itemAtCoordinate(int coordinate) const { - const int itemCount = viewItems.count(); + const int itemCount = viewItems.size(); if (itemCount == 0) return -1; if (uniformRowHeights && defaultItemHeight <= 0) @@ -3545,7 +3557,7 @@ int QTreeViewPrivate::itemAtCoordinate(int coordinate) const // ### optimize int viewItemCoordinate = 0; const int contentsCoordinate = coordinate + vbar->value(); - for (int viewItemIndex = 0; viewItemIndex < viewItems.count(); ++viewItemIndex) { + for (int viewItemIndex = 0; viewItemIndex < viewItems.size(); ++viewItemIndex) { viewItemCoordinate += itemHeight(viewItemIndex); if (viewItemCoordinate > contentsCoordinate) return (viewItemIndex >= itemCount ? -1 : viewItemIndex); @@ -3561,7 +3573,7 @@ int QTreeViewPrivate::itemAtCoordinate(int coordinate) const if (coordinate >= 0) { // the coordinate is in or below the viewport int viewItemCoordinate = 0; - for (int viewItemIndex = topViewItemIndex; viewItemIndex < viewItems.count(); ++viewItemIndex) { + for (int viewItemIndex = topViewItemIndex; viewItemIndex < viewItems.size(); ++viewItemIndex) { viewItemCoordinate += itemHeight(viewItemIndex); if (viewItemCoordinate > coordinate) return (viewItemIndex >= itemCount ? -1 : viewItemIndex); @@ -3584,7 +3596,7 @@ int QTreeViewPrivate::viewIndex(const QModelIndex &_index) const if (!_index.isValid() || viewItems.isEmpty()) return -1; - const int totalCount = viewItems.count(); + const int totalCount = viewItems.size(); const QModelIndex index = _index.sibling(_index.row(), 0); const int row = index.row(); const quintptr internalId = index.internalId(); @@ -3625,7 +3637,7 @@ int QTreeViewPrivate::viewIndex(const QModelIndex &_index) const QModelIndex QTreeViewPrivate::modelIndex(int i, int column) const { - if (i < 0 || i >= viewItems.count()) + if (i < 0 || i >= viewItems.size()) return QModelIndex(); QModelIndex ret = viewItems.at(i).index; @@ -3640,7 +3652,7 @@ int QTreeViewPrivate::firstVisibleItem(int *offset) const if (verticalScrollMode == QAbstractItemView::ScrollPerItem) { if (offset) *offset = 0; - return (value < 0 || value >= viewItems.count()) ? -1 : value; + return (value < 0 || value >= viewItems.size()) ? -1 : value; } // ScrollMode == ScrollPerPixel if (uniformRowHeights) { @@ -3652,7 +3664,7 @@ int QTreeViewPrivate::firstVisibleItem(int *offset) const return value / defaultItemHeight; } int y = 0; // ### (maybe do like QHeaderView by letting items have startposition) - for (int i = 0; i < viewItems.count(); ++i) { + for (int i = 0; i < viewItems.size(); ++i) { y += itemHeight(i); // the height value is cached if (y > value) { if (offset) @@ -3673,7 +3685,7 @@ int QTreeViewPrivate::lastVisibleItem(int firstVisual, int offset) const int y = - offset; int value = viewport->height(); - for (int i = firstVisual; i < viewItems.count(); ++i) { + for (int i = firstVisual; i < viewItems.size(); ++i) { y += itemHeight(i); // the height value is cached if (y > value) return i; @@ -3701,11 +3713,11 @@ void QTreeViewPrivate::updateScrollBars() int itemsInViewport = 0; if (uniformRowHeights) { if (defaultItemHeight <= 0) - itemsInViewport = viewItems.count(); + itemsInViewport = viewItems.size(); else itemsInViewport = viewportSize.height() / defaultItemHeight; } else { - const int itemsCount = viewItems.count(); + const int itemsCount = viewItems.size(); const int viewportHeight = viewportSize.height(); for (int height = 0, item = itemsCount - 1; item >= 0; --item) { height += itemHeight(item); @@ -3717,15 +3729,15 @@ void QTreeViewPrivate::updateScrollBars() if (verticalScrollMode == QAbstractItemView::ScrollPerItem) { if (!viewItems.isEmpty()) itemsInViewport = qMax(1, itemsInViewport); - vbar->setRange(0, viewItems.count() - itemsInViewport); + vbar->setRange(0, viewItems.size() - itemsInViewport); vbar->setPageStep(itemsInViewport); vbar->setSingleStep(1); } else { // scroll per pixel int contentsHeight = 0; if (uniformRowHeights) { - contentsHeight = defaultItemHeight * viewItems.count(); + contentsHeight = defaultItemHeight * viewItems.size(); } else { // ### (maybe do like QHeaderView by letting items have startposition) - for (int i = 0; i < viewItems.count(); ++i) + for (int i = 0; i < viewItems.size(); ++i) contentsHeight += itemHeight(i); } vbar->setRange(0, contentsHeight - viewportSize.height()); @@ -3834,7 +3846,7 @@ QList<QPair<int, int>> QTreeViewPrivate::columnRanges(const QModelIndex &topInde QPair<int, int> current; current.first = -2; // -1 is not enough because -1+1 = 0 current.second = -2; - for(int i = 0; i < logicalIndexes.count(); ++i) { + for(int i = 0; i < logicalIndexes.size(); ++i) { const int logicalColumn = logicalIndexes.at(i); if (current.second + 1 != logicalColumn) { if (current.first != -2) { @@ -3910,7 +3922,7 @@ void QTreeViewPrivate::select(const QModelIndex &topIndex, const QModelIndex &bo } if (currentRange.isValid()) selection.append(currentRange); - for (int i = 0; i < rangeStack.count(); ++i) + for (int i = 0; i < rangeStack.size(); ++i) selection.append(rangeStack.at(i)); } q->selectionModel()->select(selection, command); diff --git a/src/widgets/itemviews/qtreeview_p.h b/src/widgets/itemviews/qtreeview_p.h index 9449f5f5e9..22f6eaec22 100644 --- a/src/widgets/itemviews/qtreeview_p.h +++ b/src/widgets/itemviews/qtreeview_p.h @@ -196,7 +196,7 @@ public: } inline bool isItemHiddenOrDisabled(int i) const { - if (i < 0 || i >= viewItems.count()) + if (i < 0 || i >= viewItems.size()) return false; const QModelIndex index = viewItems.at(i).index; return isRowHidden(index) || !isIndexEnabled(index); @@ -205,7 +205,7 @@ public: inline int above(int item) const { int i = item; while (isItemHiddenOrDisabled(--item)){} return item < 0 ? i : item; } inline int below(int item) const - { int i = item; while (isItemHiddenOrDisabled(++item)){} return item >= viewItems.count() ? i : item; } + { int i = item; while (isItemHiddenOrDisabled(++item)){} return item >= viewItems.size() ? i : item; } inline void invalidateHeightCache(int item) const { viewItems[item].height = 0; } diff --git a/src/widgets/itemviews/qtreewidget.cpp b/src/widgets/itemviews/qtreewidget.cpp index 6df5dffb90..3fa8a7e1b9 100644 --- a/src/widgets/itemviews/qtreewidget.cpp +++ b/src/widgets/itemviews/qtreewidget.cpp @@ -204,7 +204,7 @@ QModelIndex QTreeModel::index(const QTreeWidgetItem *item, int column) const int row; int guess = item->d->rowGuess; if (guess >= 0 - && par->children.count() > guess + && par->children.size() > guess && par->children.at(guess) == itm) { row = guess; } else { @@ -381,8 +381,8 @@ QMap<int, QVariant> QTreeModel::itemData(const QModelIndex &index) const QTreeWidgetItem *itm = item(index); if (itm) { int column = index.column(); - if (column < itm->values.count()) { - for (int i = 0; i < itm->values.at(column).count(); ++i) { + if (column < itm->values.size()) { + for (int i = 0; i < itm->values.at(column).size(); ++i) { roles.insert(itm->values.at(column).at(i).role, itm->values.at(column).at(i).value); } @@ -451,9 +451,9 @@ bool QTreeModel::insertColumns(int column, int count, const QModelIndex &parent) while (!itemstack.isEmpty()) { QTreeWidgetItem *par = itemstack.pop(); QList<QTreeWidgetItem*> children = par ? par->children : rootItem->children; - for (int row = 0; row < children.count(); ++row) { + for (int row = 0; row < children.size(); ++row) { QTreeWidgetItem *child = children.at(row); - if (child->children.count()) + if (child->children.size()) itemstack.push(child); child->values.insert(column, count, QList<QWidgetItemData>()); } @@ -627,7 +627,7 @@ void QTreeModel::ensureSorted(int column, Qt::SortOrder order, else if (oldRow > otherRow && newRow <= otherRow) ++sorting[j].second; } - for (int k = 0; k < newPersistentIndexes.count(); ++k) { + for (int k = 0; k < newPersistentIndexes.size(); ++k) { QModelIndex pi = newPersistentIndexes.at(k); if (pi.parent() != parent) continue; @@ -806,7 +806,7 @@ void QTreeModel::beginRemoveItems(QTreeWidgetItem *parent, int row, int count) if (!parent) parent = rootItem; // now update the iterators - for (int i = 0; i < iterators.count(); ++i) { + for (int i = 0; i < iterators.size(); ++i) { for (int j = 0; j < count; j++) { QTreeWidgetItem *c = parent->child(row + j); iterators[i]->d_func()->ensureValidIterator(c); @@ -827,8 +827,8 @@ void QTreeModel::sortItems(QList<QTreeWidgetItem*> *items, int column, Qt::SortO return; // store the original order of indexes - QList<QPair<QTreeWidgetItem *, int>> sorting(items->count()); - for (int i = 0; i < sorting.count(); ++i) { + QList<QPair<QTreeWidgetItem *, int>> sorting(items->size()); + for (int i = 0; i < sorting.size(); ++i) { sorting[i].first = items->at(i); sorting[i].second = i; } @@ -840,7 +840,7 @@ void QTreeModel::sortItems(QList<QTreeWidgetItem*> *items, int column, Qt::SortO QModelIndexList fromList; QModelIndexList toList; int colCount = columnCount(); - for (int r = 0; r < sorting.count(); ++r) { + for (int r = 0; r < sorting.size(); ++r) { int oldRow = sorting.at(r).second; if (oldRow == r) continue; @@ -1396,7 +1396,7 @@ QTreeWidgetItem::QTreeWidgetItem(int type) : rtti(type), d(new QTreeWidgetItemPr QTreeWidgetItem::QTreeWidgetItem(const QStringList &strings, int type) : rtti(type), d(new QTreeWidgetItemPrivate(this)) { - for (int i = 0; i < strings.count(); ++i) + for (int i = 0; i < strings.size(); ++i) setText(i, strings.at(i)); } @@ -1432,7 +1432,7 @@ QTreeWidgetItem::QTreeWidgetItem(QTreeWidget *treeview, int type) QTreeWidgetItem::QTreeWidgetItem(QTreeWidget *treeview, const QStringList &strings, int type) : rtti(type), d(new QTreeWidgetItemPrivate(this)) { - for (int i = 0; i < strings.count(); ++i) + for (int i = 0; i < strings.size(); ++i) setText(i, strings.at(i)); // do not set this->view here otherwise insertChild() will fail if (QTreeModel *model = treeModel(treeview)) { @@ -1481,7 +1481,7 @@ QTreeWidgetItem::QTreeWidgetItem(QTreeWidgetItem *parent, int type) QTreeWidgetItem::QTreeWidgetItem(QTreeWidgetItem *parent, const QStringList &strings, int type) : rtti(type), d(new QTreeWidgetItemPrivate(this)) { - for (int i = 0; i < strings.count(); ++i) + for (int i = 0; i < strings.size(); ++i) setText(i, strings.at(i)); if (parent) parent->addChild(this); @@ -1544,7 +1544,7 @@ QTreeWidgetItem::~QTreeWidgetItem() } // at this point the persistent indexes for the children should also be invalidated // since we invalidated the parent - for (int i = 0; i < children.count(); ++i) { + for (int i = 0; i < children.size(); ++i) { QTreeWidgetItem *child = children.at(i); // make sure the child does not try to remove itself from our children list child->par = nullptr; @@ -1652,7 +1652,7 @@ void QTreeWidgetItem::setFlags(Qt::ItemFlags flags) parents.push(this); while (!parents.isEmpty()) { QTreeWidgetItem *parent = parents.pop(); - for (int i = 0; i < parent->children.count(); ++i) { + for (int i = 0; i < parent->children.size(); ++i) { QTreeWidgetItem *child = parent->children.at(i); if (!child->d->disabled) { // if not explicitly disabled parents.push(child); @@ -1681,7 +1681,7 @@ void QTreeWidgetItemPrivate::updateHiddenStatus(QTreeWidgetItem *item, bool inse const QModelIndex index = model->index(parent, 0); item->view->setRowHidden(index.row(), index.parent(), inserting); } - for (int i = 0; i < parent->children.count(); ++i) { + for (int i = 0; i < parent->children.size(); ++i) { QTreeWidgetItem *child = parent->children.at(i); parents.push(child); } @@ -1707,7 +1707,7 @@ void QTreeWidgetItemPrivate::propagateDisabled(QTreeWidgetItem *item) parent->itemChanged(); } - for (int i = 0; i < parent->children.count(); ++i) { + for (int i = 0; i < parent->children.size(); ++i) { QTreeWidgetItem *child = parent->children.at(i); parents.push(child); } @@ -1749,14 +1749,14 @@ void QTreeWidgetItem::setData(int column, int role, const QVariant &value) switch (role) { case Qt::EditRole: case Qt::DisplayRole: { - if (values.count() <= column) { + if (values.size() <= column) { if (model && this == model->headerItem) model->setColumnCount(column + 1); else values.resize(column + 1); } - if (d->display.count() <= column) { - for (int i = d->display.count() - 1; i < column - 1; ++i) + if (d->display.size() <= column) { + for (int i = d->display.size() - 1; i < column - 1; ++i) d->display.append(QVariant()); d->display.append(value); } else if (d->display[column] != value) { @@ -1767,7 +1767,7 @@ void QTreeWidgetItem::setData(int column, int role, const QVariant &value) } break; case Qt::CheckStateRole: if ((itemFlags & Qt::ItemIsAutoTristate) && value != Qt::PartiallyChecked) { - for (int i = 0; i < children.count(); ++i) { + for (int i = 0; i < children.size(); ++i) { QTreeWidgetItem *child = children.at(i); if (child->data(column, role).isValid()) {// has a CheckState Qt::ItemFlags f = itemFlags; // a little hack to avoid multiple dataChanged signals @@ -1779,10 +1779,10 @@ void QTreeWidgetItem::setData(int column, int role, const QVariant &value) } Q_FALLTHROUGH(); default: - if (column < values.count()) { + if (column < values.size()) { bool found = false; const QList<QWidgetItemData> column_values = values.at(column); - for (int i = 0; i < column_values.count(); ++i) { + for (int i = 0; i < column_values.size(); ++i) { if (column_values.at(i).role == role) { if (column_values.at(i).value == value) return; // value is unchanged @@ -1823,12 +1823,12 @@ QVariant QTreeWidgetItem::data(int column, int role) const switch (role) { case Qt::EditRole: case Qt::DisplayRole: - if (column >= 0 && column < d->display.count()) + if (column >= 0 && column < d->display.size()) return d->display.at(column); break; case Qt::CheckStateRole: // special case for check state in tristate - if (children.count() && (itemFlags & Qt::ItemIsAutoTristate)) + if (children.size() && (itemFlags & Qt::ItemIsAutoTristate)) return childrenCheckState(column); Q_FALLTHROUGH(); default: @@ -1870,9 +1870,9 @@ void QTreeWidgetItem::read(QDataStream &in) d->display.clear(); in >> values; // move the display value over to the display string list - for (int column = 0; column < values.count(); ++column) { + for (int column = 0; column < values.size(); ++column) { d->display << QVariant(); - for (int i = 0; i < values.at(column).count(); ++i) { + for (int i = 0; i < values.at(column).size(); ++i) { if (values.at(column).at(i).role == Qt::DisplayRole) { d->display[column] = values.at(column).at(i).value; values[column].remove(i--); @@ -1939,8 +1939,8 @@ QTreeWidgetItem &QTreeWidgetItem::operator=(const QTreeWidgetItem &other) void QTreeWidgetItem::addChild(QTreeWidgetItem *child) { if (child) { - insertChild(children.count(), child); - child->d->rowGuess = children.count() - 1; + insertChild(children.size(), child); + child->d->rowGuess = children.size() - 1; } } @@ -1951,7 +1951,7 @@ void QTreeWidgetItem::addChild(QTreeWidgetItem *child) */ void QTreeWidgetItem::insertChild(int index, QTreeWidgetItem *child) { - if (index < 0 || index > children.count() || child == nullptr || child->view != nullptr || child->par != nullptr) + if (index < 0 || index > children.size() || child == nullptr || child->view != nullptr || child->par != nullptr) return; if (QTreeModel *model = treeModel()) { @@ -1973,7 +1973,7 @@ void QTreeWidgetItem::insertChild(int index, QTreeWidgetItem *child) QTreeWidgetItem *i = stack.pop(); i->view = view; i->values.reserve(cols); - for (int c = 0; c < i->children.count(); ++c) + for (int c = 0; c < i->children.size(); ++c) stack.push(i->children.at(c)); } children.insert(index, child); @@ -2012,7 +2012,7 @@ QTreeWidgetItem *QTreeWidgetItem::takeChild(int index) model->skipPendingSort = false; model->executePendingSort(); } - if (index >= 0 && index < children.count()) { + if (index >= 0 && index < children.size()) { if (model) model->beginRemoveItems(this, index, 1); d->updateHiddenStatus(children.at(index), false); QTreeWidgetItem *item = children.takeAt(index); @@ -2022,7 +2022,7 @@ QTreeWidgetItem *QTreeWidgetItem::takeChild(int index) while (!stack.isEmpty()) { QTreeWidgetItem *i = stack.pop(); i->view = nullptr; - for (int c = 0; c < i->children.count(); ++c) + for (int c = 0; c < i->children.size(); ++c) stack.push(i->children.at(c)); } d->propagateDisabled(item); @@ -2041,7 +2041,7 @@ QTreeWidgetItem *QTreeWidgetItem::takeChild(int index) */ void QTreeWidgetItem::addChildren(const QList<QTreeWidgetItem*> &children) { - insertChildren(this->children.count(), children); + insertChildren(this->children.size(), children); } /*! @@ -2053,18 +2053,18 @@ void QTreeWidgetItem::addChildren(const QList<QTreeWidgetItem*> &children) */ void QTreeWidgetItem::insertChildren(int index, const QList<QTreeWidgetItem*> &children) { - if (index < 0 || index > this->children.count() || children.isEmpty()) + if (index < 0 || index > this->children.size() || children.isEmpty()) return; if (view && view->isSortingEnabled()) { - for (int n = 0; n < children.count(); ++n) + for (int n = 0; n < children.size(); ++n) insertChild(index, children.at(n)); return; } QTreeModel *model = treeModel(); QStack<QTreeWidgetItem*> stack; QList<QTreeWidgetItem*> itemsToInsert; - for (int n = 0; n < children.count(); ++n) { + for (int n = 0; n < children.size(); ++n) { QTreeWidgetItem *child = children.at(n); if (child->view || child->par) continue; @@ -2084,11 +2084,11 @@ void QTreeWidgetItem::insertChildren(int index, const QList<QTreeWidgetItem*> &c while (!stack.isEmpty()) { QTreeWidgetItem *i = stack.pop(); i->view = view; - for (int c = 0; c < i->children.count(); ++c) + for (int c = 0; c < i->children.size(); ++c) stack.push(i->children.at(c)); } - if (model) model->beginInsertItems(this, index, itemsToInsert.count()); - for (int n = 0; n < itemsToInsert.count(); ++n) { + if (model) model->beginInsertItems(this, index, itemsToInsert.size()); + for (int n = 0; n < itemsToInsert.size(); ++n) { QTreeWidgetItem *child = itemsToInsert.at(n); this->children.insert(index + n, child); if (child->par) @@ -2107,7 +2107,7 @@ void QTreeWidgetItem::insertChildren(int index, const QList<QTreeWidgetItem*> &c QList<QTreeWidgetItem*> QTreeWidgetItem::takeChildren() { QList<QTreeWidgetItem*> removed; - if (children.count() > 0) { + if (children.size() > 0) { QTreeModel *model = treeModel(); if (model) { // This will trigger a layoutChanged signal, thus we might want to optimize @@ -2116,8 +2116,8 @@ QList<QTreeWidgetItem*> QTreeWidgetItem::takeChildren() // is updated in case we take an item that is selected. model->executePendingSort(); } - if (model) model->beginRemoveItems(this, 0, children.count()); - for (int n = 0; n < children.count(); ++n) { + if (model) model->beginRemoveItems(this, 0, children.size()); + for (int n = 0; n < children.size(); ++n) { QTreeWidgetItem *item = children.at(n); item->par = nullptr; QStack<QTreeWidgetItem*> stack; @@ -2125,7 +2125,7 @@ QList<QTreeWidgetItem*> QTreeWidgetItem::takeChildren() while (!stack.isEmpty()) { QTreeWidgetItem *i = stack.pop(); i->view = nullptr; - for (int c = 0; c < i->children.count(); ++c) + for (int c = 0; c < i->children.size(); ++c) stack.push(i->children.at(c)); } d->propagateDisabled(item); @@ -2375,13 +2375,13 @@ void QTreeWidgetPrivate::_q_selectionChanged(const QItemSelection &selected, con QModelIndexList indices = selected.indexes(); int i; QTreeModel *m = treeModel(); - for (i = 0; i < indices.count(); ++i) { + for (i = 0; i < indices.size(); ++i) { QTreeWidgetItem *item = m->item(indices.at(i)); item->d->selected = true; } indices = deselected.indexes(); - for (i = 0; i < indices.count(); ++i) { + for (i = 0; i < indices.size(); ++i) { QTreeWidgetItem *item = m->item(indices.at(i)); item->d->selected = false; } @@ -2806,10 +2806,10 @@ void QTreeWidget::setHeaderItem(QTreeWidgetItem *item) void QTreeWidget::setHeaderLabels(const QStringList &labels) { Q_D(QTreeWidget); - if (columnCount() < labels.count()) - setColumnCount(labels.count()); + if (columnCount() < labels.size()) + setColumnCount(labels.size()); QTreeWidgetItem *item = d->treeModel()->headerItem; - for (int i = 0; i < labels.count(); ++i) + for (int i = 0; i < labels.size(); ++i) item->setText(i, labels.at(i)); } @@ -3052,8 +3052,8 @@ QList<QTreeWidgetItem*> QTreeWidget::selectedItems() const Q_D(const QTreeWidget); const QModelIndexList indexes = selectionModel()->selectedIndexes(); QList<QTreeWidgetItem*> items; - items.reserve(indexes.count()); - QDuplicateTracker<QTreeWidgetItem *> seen(indexes.count()); + items.reserve(indexes.size()); + QDuplicateTracker<QTreeWidgetItem *> seen(indexes.size()); for (const auto &index : indexes) { QTreeWidgetItem *item = d->item(index); if (item->isHidden() || seen.hasSeen(item)) @@ -3206,7 +3206,7 @@ QMimeData *QTreeWidget::mimeData(const QList<QTreeWidgetItem *> &items) const return nullptr; } - for (int c = 0; c < item->values.count(); ++c) { + for (int c = 0; c < item->values.size(); ++c) { const QModelIndex index = indexFromItem(item, c); if (Q_UNLIKELY(!index.isValid())) { qWarning() << "QTreeWidget::mimeData: No index associated with item :" << item; @@ -3285,7 +3285,7 @@ void QTreeWidget::dropEvent(QDropEvent *event) { if (!event->isAccepted() && d->dropOn(event, &row, &col, &topIndex)) { const QList<QModelIndex> idxs = selectedIndexes(); QList<QPersistentModelIndex> indexes; - const int indexesCount = idxs.count(); + const int indexesCount = idxs.size(); indexes.reserve(indexesCount); for (const auto &idx : idxs) indexes.append(idx); @@ -3308,7 +3308,7 @@ void QTreeWidget::dropEvent(QDropEvent *event) { } // insert them back in at their new positions - for (int i = 0; i < indexes.count(); ++i) { + for (int i = 0; i < indexes.size(); ++i) { // Either at a specific point or appended if (row == -1) { if (topIndex.isValid()) { diff --git a/src/widgets/itemviews/qtreewidget.h b/src/widgets/itemviews/qtreewidget.h index 99f31ee421..fec9d82f60 100644 --- a/src/widgets/itemviews/qtreewidget.h +++ b/src/widgets/itemviews/qtreewidget.h @@ -148,8 +148,8 @@ public: executePendingSort(); return children.at(index); } - inline int childCount() const { return children.count(); } - inline int columnCount() const { return values.count(); } + inline int childCount() const { return children.size(); } + inline int columnCount() const { return values.size(); } inline int indexOfChild(QTreeWidgetItem *child) const; void addChild(QTreeWidgetItem *child); |