diff options
author | Jarek Kobus <jaroslaw.kobus@qt.io> | 2020-06-22 14:52:01 +0200 |
---|---|---|
committer | Jarek Kobus <jaroslaw.kobus@qt.io> | 2020-07-02 21:57:06 +0200 |
commit | 2a6cdec718934ca2cc7f6f9c616ebe62f6912123 (patch) | |
tree | c8b9ed8db47912dccd2e8d125d23760936820c29 /src/widgets/itemviews | |
parent | d4c04acc65657d29df5b790281a8d1ba896dd868 (diff) |
Use QList instead of QVector in widgets
Task-number: QTBUG-84469
Change-Id: I3007734f8e4f164ece9dd8850ef007cbef9e12ef
Reviewed-by: Maurice Kalinowski <maurice.kalinowski@qt.io>
Diffstat (limited to 'src/widgets/itemviews')
31 files changed, 220 insertions, 194 deletions
diff --git a/src/widgets/itemviews/qabstractitemdelegate.cpp b/src/widgets/itemviews/qabstractitemdelegate.cpp index 52d7d54595..a39da69ffd 100644 --- a/src/widgets/itemviews/qabstractitemdelegate.cpp +++ b/src/widgets/itemviews/qabstractitemdelegate.cpp @@ -414,9 +414,9 @@ bool QAbstractItemDelegate::helpEvent(QHelpEvent *event, This virtual method is reserved and will be used in Qt 5.1. */ -QVector<int> QAbstractItemDelegate::paintingRoles() const +QList<int> QAbstractItemDelegate::paintingRoles() const { - return QVector<int>(); + return QList<int>(); } QAbstractItemDelegatePrivate::QAbstractItemDelegatePrivate() diff --git a/src/widgets/itemviews/qabstractitemdelegate.h b/src/widgets/itemviews/qabstractitemdelegate.h index 13c764933a..8a4d57fa22 100644 --- a/src/widgets/itemviews/qabstractitemdelegate.h +++ b/src/widgets/itemviews/qabstractitemdelegate.h @@ -108,7 +108,7 @@ public: const QStyleOptionViewItem &option, const QModelIndex &index); - virtual QVector<int> paintingRoles() const; + virtual QList<int> paintingRoles() const; Q_SIGNALS: void commitData(QWidget *editor); diff --git a/src/widgets/itemviews/qabstractitemview.cpp b/src/widgets/itemviews/qabstractitemview.cpp index d531eb1607..dcc1e615a7 100644 --- a/src/widgets/itemviews/qabstractitemview.cpp +++ b/src/widgets/itemviews/qabstractitemview.cpp @@ -679,8 +679,8 @@ void QAbstractItemView::setModel(QAbstractItemModel *model) if (d->model && d->model != QAbstractItemModelPrivate::staticEmptyModel()) { disconnect(d->model, SIGNAL(destroyed()), this, SLOT(_q_modelDestroyed())); - disconnect(d->model, SIGNAL(dataChanged(QModelIndex,QModelIndex,QVector<int>)), - this, SLOT(dataChanged(QModelIndex,QModelIndex,QVector<int>))); + disconnect(d->model, SIGNAL(dataChanged(QModelIndex, QModelIndex, QList<int>)), this, + SLOT(dataChanged(QModelIndex, QModelIndex, QList<int>))); disconnect(d->model, SIGNAL(headerDataChanged(Qt::Orientation,int,int)), this, SLOT(_q_headerDataChanged())); disconnect(d->model, SIGNAL(rowsInserted(QModelIndex,int,int)), @@ -710,8 +710,8 @@ void QAbstractItemView::setModel(QAbstractItemModel *model) if (d->model != QAbstractItemModelPrivate::staticEmptyModel()) { connect(d->model, SIGNAL(destroyed()), this, SLOT(_q_modelDestroyed())); - connect(d->model, SIGNAL(dataChanged(QModelIndex,QModelIndex,QVector<int>)), - this, SLOT(dataChanged(QModelIndex,QModelIndex,QVector<int>))); + connect(d->model, SIGNAL(dataChanged(QModelIndex, QModelIndex, QList<int>)), this, + SLOT(dataChanged(QModelIndex, QModelIndex, QList<int>))); connect(d->model, SIGNAL(headerDataChanged(Qt::Orientation,int,int)), this, SLOT(_q_headerDataChanged())); connect(d->model, SIGNAL(rowsInserted(QModelIndex,int,int)), @@ -3265,7 +3265,8 @@ void QAbstractItemView::update(const QModelIndex &index) \note: Qt::ToolTipRole is not honored by dataChanged() in the views provided by Qt. */ -void QAbstractItemView::dataChanged(const QModelIndex &topLeft, const QModelIndex &bottomRight, const QVector<int> &roles) +void QAbstractItemView::dataChanged(const QModelIndex &topLeft, const QModelIndex &bottomRight, + const QList<int> &roles) { Q_UNUSED(roles); // Single item changed diff --git a/src/widgets/itemviews/qabstractitemview.h b/src/widgets/itemviews/qabstractitemview.h index 23226e0af8..7efe5e3753 100644 --- a/src/widgets/itemviews/qabstractitemview.h +++ b/src/widgets/itemviews/qabstractitemview.h @@ -242,7 +242,8 @@ public Q_SLOTS: void update(const QModelIndex &index); protected Q_SLOTS: - virtual void dataChanged(const QModelIndex &topLeft, const QModelIndex &bottomRight, const QVector<int> &roles = QVector<int>()); + virtual void dataChanged(const QModelIndex &topLeft, const QModelIndex &bottomRight, + const QList<int> &roles = QList<int>()); virtual void rowsInserted(const QModelIndex &parent, int start, int end); virtual void rowsAboutToBeRemoved(const QModelIndex &parent, int start, int end); virtual void selectionChanged(const QItemSelection &selected, const QItemSelection &deselected); diff --git a/src/widgets/itemviews/qabstractitemview_p.h b/src/widgets/itemviews/qabstractitemview_p.h index 6fb4a252b9..73af80730d 100644 --- a/src/widgets/itemviews/qabstractitemview_p.h +++ b/src/widgets/itemviews/qabstractitemview_p.h @@ -87,7 +87,7 @@ struct QItemViewPaintPair { template <> class QTypeInfo<QItemViewPaintPair> : public QTypeInfoMerger<QItemViewPaintPair, QRect, QModelIndex> {}; -typedef QVector<QItemViewPaintPair> QItemViewPaintPairs; +typedef QList<QItemViewPaintPair> QItemViewPaintPairs; class Q_AUTOTEST_EXPORT QAbstractItemViewPrivate : public QAbstractScrollAreaPrivate { @@ -459,11 +459,11 @@ private: }; QT_BEGIN_INCLUDE_NAMESPACE -#include <qvector.h> +#include <qlist.h> QT_END_INCLUDE_NAMESPACE -template <typename T> -inline int qBinarySearch(const QVector<T> &vec, const T &item, int start, int end) +template<typename T> +inline int qBinarySearch(const QList<T> &vec, const T &item, int start, int end) { int i = (start + end + 1) >> 1; while (end - start > 0) { diff --git a/src/widgets/itemviews/qbsptree.cpp b/src/widgets/itemviews/qbsptree.cpp index 0e896317d0..6df1d14f2f 100644 --- a/src/widgets/itemviews/qbsptree.cpp +++ b/src/widgets/itemviews/qbsptree.cpp @@ -128,12 +128,12 @@ void QBspTree::init(const QRect &area, int depth, NodeType type, int index) } } -void QBspTree::insert(QVector<int> &leaf, const QRect &, uint, QBspTreeData data) +void QBspTree::insert(QList<int> &leaf, const QRect &, uint, QBspTreeData data) { leaf.append(data.i); } -void QBspTree::remove(QVector<int> &leaf, const QRect &, uint, QBspTreeData data) +void QBspTree::remove(QList<int> &leaf, const QRect &, uint, QBspTreeData data) { int i = leaf.indexOf(data.i); if (i != -1) diff --git a/src/widgets/itemviews/qbsptree_p.h b/src/widgets/itemviews/qbsptree_p.h index 5fd7a5c45f..58481491f1 100644 --- a/src/widgets/itemviews/qbsptree_p.h +++ b/src/widgets/itemviews/qbsptree_p.h @@ -52,7 +52,7 @@ // #include <QtWidgets/private/qtwidgetsglobal_p.h> -#include <qvector.h> +#include <qlist.h> #include <qrect.h> QT_BEGIN_NAMESPACE @@ -80,7 +80,7 @@ public: }; }; typedef QBspTree::Data QBspTreeData; - typedef void callback(QVector<int> &leaf, const QRect &area, uint visited, QBspTreeData data); + typedef void callback(QList<int> &leaf, const QRect &area, uint visited, QBspTreeData data); QBspTree(); @@ -92,7 +92,7 @@ public: void climbTree(const QRect &rect, callback *function, QBspTreeData data); inline int leafCount() const { return leaves.count(); } - inline QVector<int> &leaf(int i) { return leaves[i]; } + 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); } @@ -103,14 +103,14 @@ protected: inline int parentIndex(int i) const { return (i & 1) ? ((i - 1) / 2) : ((i - 2) / 2); } inline int firstChildIndex(int i) const { return ((i * 2) + 1); } - static void insert(QVector<int> &leaf, const QRect &area, uint visited, QBspTreeData data); - static void remove(QVector<int> &leaf, const QRect &area, uint visited, QBspTreeData data); + static void insert(QList<int> &leaf, const QRect &area, uint visited, QBspTreeData data); + static void remove(QList<int> &leaf, const QRect &area, uint visited, QBspTreeData data); private: uint depth; mutable uint visited; - QVector<Node> nodes; - mutable QVector< QVector<int> > leaves; // the leaves are just indices into the items + QList<Node> nodes; + mutable QList<QList<int>> leaves; // the leaves are just indices into the items }; QT_END_NAMESPACE diff --git a/src/widgets/itemviews/qcolumnview.cpp b/src/widgets/itemviews/qcolumnview.cpp index 4d0161025c..5ad7b5d78c 100644 --- a/src/widgets/itemviews/qcolumnview.cpp +++ b/src/widgets/itemviews/qcolumnview.cpp @@ -566,7 +566,7 @@ void QColumnViewPrivate::closeColumns(const QModelIndex &parent, bool build) bool clearAll = !parent.isValid(); bool passThroughRoot = false; - QVector<QModelIndex> dirsToAppend; + QList<QModelIndex> dirsToAppend; // Find the last column that matches the parent's tree int currentColumn = -1; diff --git a/src/widgets/itemviews/qcolumnview_p.h b/src/widgets/itemviews/qcolumnview_p.h index c60579255e..4fa523fd67 100644 --- a/src/widgets/itemviews/qcolumnview_p.h +++ b/src/widgets/itemviews/qcolumnview_p.h @@ -168,7 +168,7 @@ public: void _q_columnsInserted(const QModelIndex &parent, int start, int end) override; QList<QAbstractItemView*> columns; - QVector<int> columnSizes; // used during init and corner moving + QList<int> columnSizes; // used during init and corner moving bool showResizeGrips; int offset; #if QT_CONFIG(animation) diff --git a/src/widgets/itemviews/qdatawidgetmapper.cpp b/src/widgets/itemviews/qdatawidgetmapper.cpp index 74100c077e..403ea33c0b 100644 --- a/src/widgets/itemviews/qdatawidgetmapper.cpp +++ b/src/widgets/itemviews/qdatawidgetmapper.cpp @@ -102,7 +102,8 @@ public: void populate(); // private slots - void _q_dataChanged(const QModelIndex &topLeft, const QModelIndex &bottomRight, const QVector<int> &); + void _q_dataChanged(const QModelIndex &topLeft, const QModelIndex &bottomRight, + const QList<int> &); void _q_commitData(QWidget *); void _q_closeEditor(QWidget *, QAbstractItemDelegate::EndEditHint); void _q_modelDestroyed(); @@ -176,7 +177,8 @@ static bool qContainsIndex(const QModelIndex &idx, const QModelIndex &topLeft, && idx.column() >= topLeft.column() && idx.column() <= bottomRight.column(); } -void QDataWidgetMapperPrivate::_q_dataChanged(const QModelIndex &topLeft, const QModelIndex &bottomRight, const QVector<int> &) +void QDataWidgetMapperPrivate::_q_dataChanged(const QModelIndex &topLeft, + const QModelIndex &bottomRight, const QList<int> &) { if (topLeft.parent() != rootIndex) return; // not in our hierarchy @@ -349,8 +351,8 @@ void QDataWidgetMapper::setModel(QAbstractItemModel *model) return; if (d->model) { - disconnect(d->model, SIGNAL(dataChanged(QModelIndex,QModelIndex,QVector<int>)), this, - SLOT(_q_dataChanged(QModelIndex,QModelIndex,QVector<int>))); + disconnect(d->model, SIGNAL(dataChanged(QModelIndex, QModelIndex, QList<int>)), this, + SLOT(_q_dataChanged(QModelIndex, QModelIndex, QList<int>))); disconnect(d->model, SIGNAL(destroyed()), this, SLOT(_q_modelDestroyed())); } @@ -360,8 +362,8 @@ void QDataWidgetMapper::setModel(QAbstractItemModel *model) d->model = model; - connect(model, SIGNAL(dataChanged(QModelIndex,QModelIndex,QVector<int>)), - SLOT(_q_dataChanged(QModelIndex,QModelIndex,QVector<int>))); + connect(model, SIGNAL(dataChanged(QModelIndex, QModelIndex, QList<int>)), + SLOT(_q_dataChanged(QModelIndex, QModelIndex, QList<int>))); connect(model, SIGNAL(destroyed()), SLOT(_q_modelDestroyed())); } diff --git a/src/widgets/itemviews/qdatawidgetmapper.h b/src/widgets/itemviews/qdatawidgetmapper.h index 2d75b63a5e..c8406f82fb 100644 --- a/src/widgets/itemviews/qdatawidgetmapper.h +++ b/src/widgets/itemviews/qdatawidgetmapper.h @@ -108,7 +108,9 @@ Q_SIGNALS: private: Q_DECLARE_PRIVATE(QDataWidgetMapper) Q_DISABLE_COPY(QDataWidgetMapper) - Q_PRIVATE_SLOT(d_func(), void _q_dataChanged(const QModelIndex &, const QModelIndex &, const QVector<int> &)) + Q_PRIVATE_SLOT(d_func(), + void _q_dataChanged(const QModelIndex &, const QModelIndex &, + const QList<int> &)) Q_PRIVATE_SLOT(d_func(), void _q_commitData(QWidget *)) Q_PRIVATE_SLOT(d_func(), void _q_closeEditor(QWidget *, QAbstractItemDelegate::EndEditHint)) Q_PRIVATE_SLOT(d_func(), void _q_modelDestroyed()) diff --git a/src/widgets/itemviews/qheaderview.cpp b/src/widgets/itemviews/qheaderview.cpp index 60020e2072..7751c756fe 100644 --- a/src/widgets/itemviews/qheaderview.cpp +++ b/src/widgets/itemviews/qheaderview.cpp @@ -39,25 +39,25 @@ #include "qheaderview.h" +#include <qabstractitemdelegate.h> +#include <qapplication.h> #include <qbitarray.h> #include <qbrush.h> #include <qdebug.h> #include <qevent.h> +#include <qlist.h> #include <qpainter.h> #include <qscrollbar.h> +#include <qstyle.h> +#include <qstyleoption.h> #if QT_CONFIG(tooltip) #include <qtooltip.h> #endif +#include <qvarlengtharray.h> +#include <qvariant.h> #if QT_CONFIG(whatsthis) #include <qwhatsthis.h> #endif -#include <qstyle.h> -#include <qstyleoption.h> -#include <qvector.h> -#include <qapplication.h> -#include <qvarlengtharray.h> -#include <qabstractitemdelegate.h> -#include <qvariant.h> #include <private/qheaderview_p.h> #include <private/qabstractitemmodel_p.h> @@ -3050,7 +3050,8 @@ void QHeaderView::scrollContentsBy(int dx, int dy) \reimp \internal */ -void QHeaderView::dataChanged(const QModelIndex &topLeft, const QModelIndex &bottomRight, const QVector<int> &roles) +void QHeaderView::dataChanged(const QModelIndex &topLeft, const QModelIndex &bottomRight, + const QList<int> &roles) { Q_D(QHeaderView); if (!roles.isEmpty()) { @@ -3979,8 +3980,8 @@ bool QHeaderViewPrivate::read(QDataStream &in) int sortIndicatorSectionIn; bool sortIndicatorShownIn; int lengthIn; - QVector<int> visualIndicesIn; - QVector<int> logicalIndicesIn; + QList<int> visualIndicesIn; + QList<int> logicalIndicesIn; QHash<int, int> hiddenSectionSizeIn; bool movableSectionsIn; bool clickableSectionsIn; @@ -3991,7 +3992,7 @@ bool QHeaderViewPrivate::read(QDataStream &in) int contentsSectionsIn; int defaultSectionSizeIn; int minimumSectionSizeIn; - QVector<SectionItem> sectionItemsIn; + QList<SectionItem> sectionItemsIn; in >> orient; in >> order; @@ -4031,7 +4032,7 @@ bool QHeaderViewPrivate::read(QDataStream &in) // 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 - QVector<SectionItem> newSectionItems; + QList<SectionItem> newSectionItems; for (int u = 0; u < sectionItemsIn.count(); ++u) { int count = sectionItemsIn.at(u).tmpDataStreamSectionCount; if (count > 1) diff --git a/src/widgets/itemviews/qheaderview.h b/src/widgets/itemviews/qheaderview.h index a376662763..6cfa9a8bf0 100644 --- a/src/widgets/itemviews/qheaderview.h +++ b/src/widgets/itemviews/qheaderview.h @@ -217,7 +217,8 @@ protected: void updateGeometries() override; void scrollContentsBy(int dx, int dy) override; - void dataChanged(const QModelIndex &topLeft, const QModelIndex &bottomRight, const QVector<int> &roles = QVector<int>()) override; + void dataChanged(const QModelIndex &topLeft, const QModelIndex &bottomRight, + const QList<int> &roles = QList<int>()) override; void rowsInserted(const QModelIndex &parent, int start, int end) override; QRect visualRect(const QModelIndex &index) const override; diff --git a/src/widgets/itemviews/qheaderview_p.h b/src/widgets/itemviews/qheaderview_p.h index 766adef36d..59879e0838 100644 --- a/src/widgets/itemviews/qheaderview_p.h +++ b/src/widgets/itemviews/qheaderview_p.h @@ -258,8 +258,8 @@ public: int sortIndicatorSection; bool sortIndicatorShown; - mutable QVector<int> visualIndices; // visualIndex = visualIndices.at(logicalIndex) - mutable QVector<int> logicalIndices; // logicalIndex = row or column in the model + mutable QList<int> visualIndices; // visualIndex = visualIndices.at(logicalIndex) + mutable QList<int> logicalIndices; // logicalIndex = row or column in the model mutable QBitArray sectionSelected; // from logical index to bit mutable QHash<int, int> hiddenSectionSize; // from logical index to section size mutable QHash<int, int> cascadingSectionSize; // from visual index to section size @@ -329,12 +329,12 @@ public: #endif }; - QVector<SectionItem> sectionItems; + QList<SectionItem> sectionItems; struct LayoutChangeItem { QPersistentModelIndex index; SectionItem section; }; - QVector<LayoutChangeItem> layoutChangePersistentSections; + QList<LayoutChangeItem> layoutChangePersistentSections; void createSectionItems(int start, int end, int size, QHeaderView::ResizeMode mode); void removeSectionsFromSectionItems(int start, int end); diff --git a/src/widgets/itemviews/qitemdelegate.cpp b/src/widgets/itemviews/qitemdelegate.cpp index e6a68bcadd..522f1cc876 100644 --- a/src/widgets/itemviews/qitemdelegate.cpp +++ b/src/widgets/itemviews/qitemdelegate.cpp @@ -695,10 +695,12 @@ void QItemDelegate::drawDisplay(QPainter *painter, const QStyleOptionViewItem &o || textRect.height() < textLayoutSize.height())) { painter->save(); painter->setClipRect(layoutRect); - d->textLayout.draw(painter, layoutRect.topLeft(), QVector<QTextLayout::FormatRange>(), layoutRect); + d->textLayout.draw(painter, layoutRect.topLeft(), QList<QTextLayout::FormatRange>(), + layoutRect); painter->restore(); } else { - d->textLayout.draw(painter, layoutRect.topLeft(), QVector<QTextLayout::FormatRange>(), layoutRect); + d->textLayout.draw(painter, layoutRect.topLeft(), QList<QTextLayout::FormatRange>(), + layoutRect); } } diff --git a/src/widgets/itemviews/qlistview.cpp b/src/widgets/itemviews/qlistview.cpp index 053b2dd959..d86f6fece4 100644 --- a/src/widgets/itemviews/qlistview.cpp +++ b/src/widgets/itemviews/qlistview.cpp @@ -41,26 +41,26 @@ #include "qlistview.h" #include <qabstractitemdelegate.h> +#ifndef QT_NO_ACCESSIBILITY +#include <qaccessible.h> +#endif #include <qapplication.h> #include <qpainter.h> #include <qbitmap.h> +#include <qdebug.h> #if QT_CONFIG(draganddrop) #include <qdrag.h> #endif -#include <qvector.h> -#include <qstyle.h> #include <qevent.h> -#include <qscrollbar.h> +#include <qlist.h> #if QT_CONFIG(rubberband) #include <qrubberband.h> #endif +#include <qscrollbar.h> +#include <qstyle.h> #include <private/qapplication_p.h> #include <private/qlistview_p.h> #include <private/qscrollbar_p.h> -#include <qdebug.h> -#ifndef QT_NO_ACCESSIBILITY -#include <qaccessible.h> -#endif #include <algorithm> @@ -655,7 +655,8 @@ QItemViewPaintPairs QListViewPrivate::draggablePaintPairs(const QModelIndexList QRect &rect = *r; const QRect viewportRect = viewport->rect(); QItemViewPaintPairs ret; - QVector<QModelIndex> visibleIndexes = intersectingSet(viewportRect.translated(q->horizontalOffset(), q->verticalOffset())); + QList<QModelIndex> visibleIndexes = + intersectingSet(viewportRect.translated(q->horizontalOffset(), q->verticalOffset())); std::sort(visibleIndexes.begin(), visibleIndexes.end()); for (const auto &index : indexes) { if (std::binary_search(visibleIndexes.cbegin(), visibleIndexes.cend(), index)) { @@ -731,7 +732,8 @@ QSize QListView::contentsSize() const /*! \reimp */ -void QListView::dataChanged(const QModelIndex &topLeft, const QModelIndex &bottomRight, const QVector<int> &roles) +void QListView::dataChanged(const QModelIndex &topLeft, const QModelIndex &bottomRight, + const QList<int> &roles) { d_func()->commonListView->dataChanged(topLeft, bottomRight); QAbstractItemView::dataChanged(topLeft, bottomRight, roles); @@ -920,8 +922,8 @@ void QListView::dropEvent(QDropEvent *event) int col = -1; int row = -1; if (d->dropOn(event, &row, &col, &topIndex)) { - const QVector<QModelIndex> selIndexes = selectedIndexes(); - QVector<QPersistentModelIndex> persIndexes; + const QList<QModelIndex> selIndexes = selectedIndexes(); + QList<QPersistentModelIndex> persIndexes; persIndexes.reserve(selIndexes.count()); for (const auto &index : selIndexes) { @@ -1006,7 +1008,8 @@ void QListView::paintEvent(QPaintEvent *e) QStyleOptionViewItem option = d->viewOptionsV1(); QPainter painter(d->viewport); - const QVector<QModelIndex> toBeRendered = d->intersectingSet(e->rect().translated(horizontalOffset(), verticalOffset()), false); + const QList<QModelIndex> toBeRendered = + d->intersectingSet(e->rect().translated(horizontalOffset(), verticalOffset()), false); const QModelIndex current = currentIndex(); const QModelIndex hover = d->hover; @@ -1025,8 +1028,8 @@ void QListView::paintEvent(QPaintEvent *e) ? qMax(viewport()->size().width(), d->contentsSize().width()) - 2 * d->spacing() : qMax(viewport()->size().height(), d->contentsSize().height()) - 2 * d->spacing(); - QVector<QModelIndex>::const_iterator end = toBeRendered.constEnd(); - for (QVector<QModelIndex>::const_iterator it = toBeRendered.constBegin(); it != end; ++it) { + QList<QModelIndex>::const_iterator end = toBeRendered.constEnd(); + for (QList<QModelIndex>::const_iterator it = toBeRendered.constBegin(); it != end; ++it) { Q_ASSERT((*it).isValid()); option.rect = visualRect(*it); @@ -1111,7 +1114,7 @@ QModelIndex QListView::indexAt(const QPoint &p) const { Q_D(const QListView); QRect rect(p.x() + horizontalOffset(), p.y() + verticalOffset(), 1, 1); - const QVector<QModelIndex> intersectVector = d->intersectingSet(rect); + const QList<QModelIndex> intersectVector = d->intersectingSet(rect); QModelIndex index = intersectVector.count() > 0 ? intersectVector.last() : QModelIndex(); if (index.isValid() && visualRect(index).contains(p)) @@ -1190,7 +1193,7 @@ QModelIndex QListView::moveCursor(CursorAction cursorAction, Qt::KeyboardModifie if (d->gridSize().isValid()) rect.setSize(d->gridSize()); QSize contents = d->contentsSize(); - QVector<QModelIndex> intersectVector; + QList<QModelIndex> intersectVector; switch (cursorAction) { case MoveLeft: @@ -1332,7 +1335,8 @@ void QListView::setSelection(const QRect &rect, QItemSelectionModel::SelectionFl QItemSelection selection; if (rect.width() == 1 && rect.height() == 1) { - const QVector<QModelIndex> intersectVector = d->intersectingSet(rect.translated(horizontalOffset(), verticalOffset())); + const QList<QModelIndex> intersectVector = + d->intersectingSet(rect.translated(horizontalOffset(), verticalOffset())); QModelIndex tl; if (!intersectVector.isEmpty()) tl = intersectVector.last(); // special case for mouse press; only select the top item @@ -1345,7 +1349,7 @@ void QListView::setSelection(const QRect &rect, QItemSelectionModel::SelectionFl QModelIndex tl, br; // get the first item const QRect topLeft(rect.left() + horizontalOffset(), rect.top() + verticalOffset(), 1, 1); - QVector<QModelIndex> intersectVector = d->intersectingSet(topLeft); + QList<QModelIndex> intersectVector = d->intersectingSet(topLeft); if (!intersectVector.isEmpty()) tl = intersectVector.last(); // get the last item @@ -1842,12 +1846,12 @@ QRect QListViewPrivate::mapToViewport(const QRect &rect, bool extend) const } QModelIndex QListViewPrivate::closestIndex(const QRect &target, - const QVector<QModelIndex> &candidates) const + const QList<QModelIndex> &candidates) const { int distance = 0; int shortest = INT_MAX; QModelIndex closest; - QVector<QModelIndex>::const_iterator it = candidates.begin(); + QList<QModelIndex>::const_iterator it = candidates.begin(); for (; it != candidates.end(); ++it) { if (!(*it).isValid()) @@ -1896,8 +1900,8 @@ QItemSelection QListViewPrivate::selection(const QRect &rect) const { QItemSelection selection; QModelIndex tl, br; - const QVector<QModelIndex> intersectVector = intersectingSet(rect); - QVector<QModelIndex>::const_iterator it = intersectVector.begin(); + const QList<QModelIndex> intersectVector = intersectingSet(rect); + QList<QModelIndex>::const_iterator it = intersectVector.begin(); for (; it != intersectVector.end(); ++it) { if (!tl.isValid() && !br.isValid()) { tl = br = *it; @@ -1939,7 +1943,8 @@ bool QListViewPrivate::dropOn(QDropEvent *event, int *dropRow, int *dropCol, QMo } #endif -void QListViewPrivate::removeCurrentAndDisabled(QVector<QModelIndex> *indexes, const QModelIndex ¤t) const +void QListViewPrivate::removeCurrentAndDisabled(QList<QModelIndex> *indexes, + const QModelIndex ¤t) const { auto isCurrentOrDisabled = [this, current](const QModelIndex &index) { return !isIndexEnabled(index) || index == current; @@ -2138,7 +2143,7 @@ void QListModeViewBase::dragMoveEvent(QDragMoveEvent *event) QPoint p = event->position().toPoint(); QRect rect(p.x() + horizontalOffset(), p.y() + verticalOffset(), 1, 1); rect.adjust(-dd->spacing(), -dd->spacing(), dd->spacing(), dd->spacing()); - const QVector<QModelIndex> intersectVector = dd->intersectingSet(rect); + const QList<QModelIndex> intersectVector = dd->intersectingSet(rect); QModelIndex index = intersectVector.count() > 0 ? intersectVector.last() : QModelIndex(); dd->hover = index; @@ -2217,7 +2222,7 @@ bool QListModeViewBase::dropOn(QDropEvent *event, int *dropRow, int *dropCol, QM QPoint p = event->position().toPoint(); QRect rect(p.x() + horizontalOffset(), p.y() + verticalOffset(), 1, 1); rect.adjust(-dd->spacing(), -dd->spacing(), dd->spacing(), dd->spacing()); - const QVector<QModelIndex> intersectVector = dd->intersectingSet(rect); + const QList<QModelIndex> intersectVector = dd->intersectingSet(rect); index = intersectVector.count() > 0 ? intersectVector.last() : QModelIndex(); if (!index.isValid()) @@ -2630,9 +2635,9 @@ void QListModeViewBase::doStaticLayout(const QListViewLayoutInfo &info) Finds the set of items intersecting with \a area. In this function, itemsize is counted from topleft to the start of the next item. */ -QVector<QModelIndex> QListModeViewBase::intersectingSet(const QRect &area) const +QList<QModelIndex> QListModeViewBase::intersectingSet(const QRect &area) const { - QVector<QModelIndex> ret; + QList<QModelIndex> ret; int segStartPosition; int segEndPosition; int flowStartPosition; @@ -2709,7 +2714,7 @@ QRect QListModeViewBase::mapToViewport(const QRect &rect) const int QListModeViewBase::perItemScrollingPageSteps(int length, int bounds, bool wrap) const { - QVector<int> positions; + QList<int> positions; if (wrap) positions = segmentPositions; else if (!flowPositions.isEmpty()) { @@ -2750,7 +2755,7 @@ int QListModeViewBase::perItemScrollToValue(int index, int scrollValue, int view return scrollValue; itemExtent += spacing(); - QVector<int> hiddenRows = dd->hiddenRowIds(); + QList<int> hiddenRows = dd->hiddenRowIds(); std::sort(hiddenRows.begin(), hiddenRows.end()); int hiddenRowsBefore = 0; for (int i = 0; i < hiddenRows.size() - 1; ++i) @@ -2899,7 +2904,7 @@ bool QIconModeViewBase::filterDropEvent(QDropEvent *e) QPoint end = e->position().toPoint() + offset; if (qq->acceptDrops()) { const Qt::ItemFlags dropableFlags = Qt::ItemIsDropEnabled|Qt::ItemIsEnabled; - const QVector<QModelIndex> &dropIndices = intersectingSet(QRect(end, QSize(1, 1))); + const QList<QModelIndex> &dropIndices = intersectingSet(QRect(end, QSize(1, 1))); for (const QModelIndex &index : dropIndices) if ((index.flags() & dropableFlags) == dropableFlags) return false; @@ -2964,7 +2969,7 @@ bool QIconModeViewBase::filterDragMoveEvent(QDragMoveEvent *e) QModelIndex index; if (movement() == QListView::Snap) { QRect rect(snapToGrid(e->position().toPoint() + offset()), gridSize()); - const QVector<QModelIndex> intersectVector = intersectingSet(rect); + const QList<QModelIndex> intersectVector = intersectingSet(rect); index = intersectVector.count() > 0 ? intersectVector.last() : QModelIndex(); } else { index = qq->indexAt(e->position().toPoint()); @@ -3216,20 +3221,20 @@ void QIconModeViewBase::doDynamicLayout(const QListViewLayoutInfo &info) viewport()->update(); } -QVector<QModelIndex> QIconModeViewBase::intersectingSet(const QRect &area) const +QList<QModelIndex> QIconModeViewBase::intersectingSet(const QRect &area) const { QIconModeViewBase *that = const_cast<QIconModeViewBase*>(this); QBspTree::Data data(static_cast<void*>(that)); - QVector<QModelIndex> res; + QList<QModelIndex> res; that->interSectingVector = &res; that->tree.climbTree(area, &QIconModeViewBase::addLeaf, data); that->interSectingVector = nullptr; return res; } -QRect QIconModeViewBase::itemsRect(const QVector<QModelIndex> &indexes) const +QRect QIconModeViewBase::itemsRect(const QList<QModelIndex> &indexes) const { - QVector<QModelIndex>::const_iterator it = indexes.begin(); + QList<QModelIndex>::const_iterator it = indexes.begin(); QListViewItem item = indexToListViewItem(*it); QRect rect(item.x, item.y, item.w, item.h); for (; it != indexes.end(); ++it) { @@ -3275,8 +3280,8 @@ int QIconModeViewBase::itemIndex(const QListViewItem &item) const return -1; } -void QIconModeViewBase::addLeaf(QVector<int> &leaf, const QRect &area, - uint visited, QBspTree::Data data) +void QIconModeViewBase::addLeaf(QList<int> &leaf, const QRect &area, uint visited, + QBspTree::Data data) { QListViewItem *vi; QIconModeViewBase *_this = static_cast<QIconModeViewBase *>(data.ptr); diff --git a/src/widgets/itemviews/qlistview.h b/src/widgets/itemviews/qlistview.h index 8a5d5e02ae..dc66cb943a 100644 --- a/src/widgets/itemviews/qlistview.h +++ b/src/widgets/itemviews/qlistview.h @@ -150,7 +150,8 @@ protected: void resizeContents(int width, int height); QSize contentsSize() const; - void dataChanged(const QModelIndex &topLeft, const QModelIndex &bottomRight, const QVector<int> &roles = QVector<int>()) override; + void dataChanged(const QModelIndex &topLeft, const QModelIndex &bottomRight, + const QList<int> &roles = QList<int>()) override; void rowsInserted(const QModelIndex &parent, int start, int end) override; void rowsAboutToBeRemoved(const QModelIndex &parent, int start, int end) override; diff --git a/src/widgets/itemviews/qlistview_p.h b/src/widgets/itemviews/qlistview_p.h index 86331bb862..07f4ae4a90 100644 --- a/src/widgets/itemviews/qlistview_p.h +++ b/src/widgets/itemviews/qlistview_p.h @@ -126,7 +126,7 @@ public: virtual bool doBatchedItemLayout(const QListViewLayoutInfo &info, int max) = 0; virtual void clear() = 0; virtual void setRowCount(int) = 0; - virtual QVector<QModelIndex> intersectingSet(const QRect &area) const = 0; + virtual QList<QModelIndex> intersectingSet(const QRect &area) const = 0; virtual void dataChanged(const QModelIndex &, const QModelIndex &) = 0; virtual int horizontalScrollToValue(int index, QListView::ScrollHint hint, @@ -198,11 +198,11 @@ class QListModeViewBase : public QCommonListViewBase public: QListModeViewBase(QListView *q, QListViewPrivate *d); - QVector<int> flowPositions; - QVector<int> segmentPositions; - QVector<int> segmentStartRows; - QVector<int> segmentExtents; - QVector<int> scrollValueMap; + QList<int> flowPositions; + QList<int> segmentPositions; + QList<int> segmentStartRows; + QList<int> segmentExtents; + QList<int> scrollValueMap; // used when laying out in batches int batchSavedPosition; @@ -213,7 +213,7 @@ public: bool doBatchedItemLayout(const QListViewLayoutInfo &info, int max) override; void clear() override; void setRowCount(int rowCount) override { flowPositions.resize(rowCount); } - QVector<QModelIndex> intersectingSet(const QRect &area) const override; + QList<QModelIndex> intersectingSet(const QRect &area) const override; void dataChanged(const QModelIndex &, const QModelIndex &) override; int horizontalScrollToValue(int index, QListView::ScrollHint hint, @@ -251,14 +251,14 @@ public: QIconModeViewBase(QListView *q, QListViewPrivate *d) : QCommonListViewBase(q, d), interSectingVector(nullptr) {} QBspTree tree; - QVector<QListViewItem> items; + QList<QListViewItem> items; QBitArray moved; - QVector<QModelIndex> draggedItems; // indices to the tree.itemVector + QList<QModelIndex> draggedItems; // indices to the tree.itemVector mutable QPoint draggedItemsPos; // used when laying out in batches - QVector<QModelIndex> *interSectingVector; //used from within intersectingSet + QList<QModelIndex> *interSectingVector; // used from within intersectingSet //reimplementations int itemIndex(const QListViewItem &item) const override; @@ -266,7 +266,7 @@ public: bool doBatchedItemLayout(const QListViewLayoutInfo &info, int max) override; void clear() override; void setRowCount(int rowCount) override; - QVector<QModelIndex> intersectingSet(const QRect &area) const override; + QList<QModelIndex> intersectingSet(const QRect &area) const override; void scrollContentsBy(int dx, int dy, bool scrollElasticBand) override; void dataChanged(const QModelIndex &topLeft, const QModelIndex &bottomRight) override; @@ -285,14 +285,13 @@ private: void initBspTree(const QSize &contents); QPoint initDynamicLayout(const QListViewLayoutInfo &info); void doDynamicLayout(const QListViewLayoutInfo &info); - static void addLeaf(QVector<int> &leaf, const QRect &area, - uint visited, QBspTree::Data data); - QRect itemsRect(const QVector<QModelIndex> &indexes) const; + static void addLeaf(QList<int> &leaf, const QRect &area, uint visited, QBspTree::Data data); + QRect itemsRect(const QList<QModelIndex> &indexes) const; QRect draggedItemsRect() const; QPoint snapToGrid(const QPoint &pos) const; void updateContentsSize(); QPoint draggedItemsDelta() const; - void drawItems(QPainter *painter, const QVector<QModelIndex> &indexes) const; + void drawItems(QPainter *painter, const QList<QModelIndex> &indexes) const; void moveItem(int index, const QPoint &dest); }; @@ -309,7 +308,8 @@ public: bool doItemsLayout(int num); - inline QVector<QModelIndex> intersectingSet(const QRect &area, bool doLayout = true) const { + inline QList<QModelIndex> intersectingSet(const QRect &area, bool doLayout = true) const + { if (doLayout) executePostedLayout(); QRect a = (q_func()->isRightToLeft() ? flipX(area.normalized()) : area.normalized()); return commonListView->intersectingSet(a); @@ -363,7 +363,7 @@ public: QRect mapToViewport(const QRect &rect, bool extend = true) const; - QModelIndex closestIndex(const QRect &target, const QVector<QModelIndex> &candidates) const; + QModelIndex closestIndex(const QRect &target, const QList<QModelIndex> &candidates) const; QSize itemSize(const QStyleOptionViewItem &option, const QModelIndex &index) const; bool selectionAllowed(const QModelIndex &index) const override @@ -395,8 +395,9 @@ public: return isPersistent(idx) && hiddenRows.contains(idx); } // helper to avoid checking for isPersistent and creating persistent indexes as above in isHidden - QVector<int> hiddenRowIds() const { - QVector<int> rowIds; + QList<int> hiddenRowIds() const + { + QList<int> rowIds; rowIds.reserve(hiddenRows.size()); for (const auto &idx : hiddenRows) rowIds += idx.row(); @@ -404,7 +405,7 @@ public: } inline bool isHiddenOrDisabled(int row) const { return isHidden(row) || !isIndexEnabled(modelIndex(row)); } - void removeCurrentAndDisabled(QVector<QModelIndex> *indexes, const QModelIndex ¤t) const; + void removeCurrentAndDisabled(QList<QModelIndex> *indexes, const QModelIndex ¤t) const; void scrollElasticBandBy(int dx, int dy); diff --git a/src/widgets/itemviews/qlistwidget.cpp b/src/widgets/itemviews/qlistwidget.cpp index 2a0a1d683f..176f72a471 100644 --- a/src/widgets/itemviews/qlistwidget.cpp +++ b/src/widgets/itemviews/qlistwidget.cpp @@ -237,7 +237,7 @@ bool QListModel::clearItemData(const QModelIndex &index) if (std::all_of(beginIter, endIter, [](const QWidgetItemData& data) -> bool { return !data.value.isValid(); })) return true; //it's already cleared item->d->values.clear(); - emit dataChanged(index, index, QVector<int>{}); + emit dataChanged(index, index, QList<int> {}); return true; } @@ -336,7 +336,7 @@ void QListModel::sort(int column, Qt::SortOrder order) emit layoutAboutToBeChanged({}, QAbstractItemModel::VerticalSortHint); - QVector < QPair<QListWidgetItem*,int> > sorting(items.count()); + QList<QPair<QListWidgetItem *, int>> sorting(items.count()); for (int i = 0; i < items.count(); ++i) { QListWidgetItem *item = items.at(i); sorting[i].first = item; @@ -374,7 +374,7 @@ void QListModel::ensureSorted(int column, Qt::SortOrder order, int start, int en return; int count = end - start + 1; - QVector < QPair<QListWidgetItem*,int> > sorting(count); + QList<QPair<QListWidgetItem *, int>> sorting(count); for (int i = 0; i < count; ++i) { sorting[i].first = items.at(start + i); sorting[i].second = start + i; @@ -454,7 +454,7 @@ QList<QListWidgetItem*>::iterator QListModel::sortedInsertionIterator( return std::lower_bound(begin, end, item, QListModelGreaterThan()); } -void QListModel::itemChanged(QListWidgetItem *item, const QVector<int> &roles) +void QListModel::itemChanged(QListWidgetItem *item, const QList<int> &roles) { const QModelIndex idx = index(item); emit dataChanged(idx, idx, roles); @@ -744,9 +744,9 @@ void QListWidgetItem::setData(int role, const QVariant &value) if (!found) d->values.append(QWidgetItemData(role, value)); if (QListModel *model = listModel()) { - const QVector<int> roles((role == Qt::DisplayRole) ? - QVector<int>({Qt::DisplayRole, Qt::EditRole}) : - QVector<int>({role})); + const QList<int> roles((role == Qt::DisplayRole) + ? QList<int>({ Qt::DisplayRole, Qt::EditRole }) + : QList<int>({ role })); model->itemChanged(this, roles); } } diff --git a/src/widgets/itemviews/qlistwidget.h b/src/widgets/itemviews/qlistwidget.h index cda8b277dd..d57d769aec 100644 --- a/src/widgets/itemviews/qlistwidget.h +++ b/src/widgets/itemviews/qlistwidget.h @@ -40,11 +40,11 @@ #ifndef QLISTWIDGET_H #define QLISTWIDGET_H -#include <QtWidgets/qtwidgetsglobal.h> #include <QtWidgets/qlistview.h> -#include <QtCore/qvariant.h> -#include <QtCore/qvector.h> +#include <QtWidgets/qtwidgetsglobal.h> +#include <QtCore/qlist.h> #include <QtCore/qitemselectionmodel.h> +#include <QtCore/qvariant.h> QT_REQUIRE_CONFIG(listwidget); diff --git a/src/widgets/itemviews/qlistwidget_p.h b/src/widgets/itemviews/qlistwidget_p.h index c37bb48416..ec5afa7f8d 100644 --- a/src/widgets/itemviews/qlistwidget_p.h +++ b/src/widgets/itemviews/qlistwidget_p.h @@ -121,7 +121,7 @@ public: const QList<QListWidgetItem*>::iterator &end, Qt::SortOrder order, QListWidgetItem *item); - void itemChanged(QListWidgetItem *item, const QVector<int> &roles = QVector<int>()); + void itemChanged(QListWidgetItem *item, const QList<int> &roles = QList<int>()); // dnd QStringList mimeTypes() const override; @@ -167,7 +167,7 @@ class QListWidgetItemPrivate public: QListWidgetItemPrivate(QListWidgetItem *item) : q(item), theid(-1) {} QListWidgetItem *q; - QVector<QWidgetItemData> values; + QList<QWidgetItemData> values; int theid; }; diff --git a/src/widgets/itemviews/qtableview_p.h b/src/widgets/itemviews/qtableview_p.h index e17773c4bd..2514ee7c33 100644 --- a/src/widgets/itemviews/qtableview_p.h +++ b/src/widgets/itemviews/qtableview_p.h @@ -190,8 +190,8 @@ public: int columnSectionAnchor; int columnResizeTimerID; int rowResizeTimerID; - QVector<int> columnsToUpdate; - QVector<int> rowsToUpdate; + QList<int> columnsToUpdate; + QList<int> rowsToUpdate; QHeaderView *horizontalHeader; QHeaderView *verticalHeader; #if QT_CONFIG(abstractbutton) diff --git a/src/widgets/itemviews/qtablewidget.cpp b/src/widgets/itemviews/qtablewidget.cpp index c051039cb0..f0c138e9ce 100644 --- a/src/widgets/itemviews/qtablewidget.cpp +++ b/src/widgets/itemviews/qtablewidget.cpp @@ -176,7 +176,7 @@ void QTableModel::setItem(int row, int column, QTableWidgetItem *item) && view->horizontalHeader()->sortIndicatorSection() == column) { // sorted insertion Qt::SortOrder order = view->horizontalHeader()->sortIndicatorOrder(); - QVector<QTableWidgetItem*> colItems = columnItems(column); + QList<QTableWidgetItem *> colItems = columnItems(column); if (row < colItems.count()) colItems.remove(row); int sortedRow; @@ -184,7 +184,7 @@ void QTableModel::setItem(int row, int column, QTableWidgetItem *item) // move to after all non-0 (sortable) items sortedRow = colItems.count(); } else { - QVector<QTableWidgetItem*>::iterator it; + QList<QTableWidgetItem *>::iterator it; it = sortedInsertionIterator(colItems.begin(), colItems.end(), order, item); sortedRow = qMax((int)(it - colItems.begin()), 0); } @@ -192,7 +192,7 @@ void QTableModel::setItem(int row, int column, QTableWidgetItem *item) emit layoutAboutToBeChanged({}, QAbstractItemModel::VerticalSortHint); // move the items @ row to sortedRow int cc = columnCount(); - QVector<QTableWidgetItem*> rowItems(cc); + QList<QTableWidgetItem *> rowItems(cc); for (int j = 0; j < cc; ++j) rowItems[j] = tableItems.at(tableIndex(row, j)); tableItems.remove(tableIndex(row, 0), cc); @@ -454,7 +454,7 @@ bool QTableModel::setItemData(const QModelIndex &index, const QMap<int, QVariant QTableWidgetItem *itm = item(index); if (itm) { itm->view = nullptr; // prohibits item from calling itemChanged() - QVector<int> rolesVec; + QList<int> rolesVec; for (QMap<int, QVariant>::ConstIterator it = roles.constBegin(); it != roles.constEnd(); ++it) { const int role = (it.key() == Qt::EditRole ? Qt::DisplayRole : it.key()); if (itm->data(role) != it.value()) { @@ -492,7 +492,7 @@ bool QTableModel::clearItemData(const QModelIndex &index) if (std::all_of(beginIter, endIter, [](const QWidgetItemData& data) -> bool { return !data.value.isValid(); })) return true; //it's already cleared itm->values.clear(); - emit dataChanged(index, index, QVector<int>{}); + emit dataChanged(index, index, QList<int> {}); return true; } @@ -512,8 +512,8 @@ Qt::ItemFlags QTableModel::flags(const QModelIndex &index) const void QTableModel::sort(int column, Qt::SortOrder order) { - QVector<QPair<QTableWidgetItem*, int> > sortable; - QVector<int> unsortable; + QList<QPair<QTableWidgetItem *, int>> sortable; + QList<int> unsortable; sortable.reserve(rowCount()); unsortable.reserve(rowCount()); @@ -528,7 +528,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); - QVector<QTableWidgetItem*> sorted_table(tableItems.count()); + QList<QTableWidgetItem *> sorted_table(tableItems.count()); QModelIndexList from; QModelIndexList to; const int numRows = rowCount(); @@ -565,7 +565,7 @@ void QTableModel::ensureSorted(int column, Qt::SortOrder order, int start, int end) { int count = end - start + 1; - QVector < QPair<QTableWidgetItem*,int> > sorting; + QList<QPair<QTableWidgetItem *, int>> sorting; sorting.reserve(count); for (int row = start; row <= end; ++row) { QTableWidgetItem *itm = item(row, column); @@ -580,10 +580,10 @@ void QTableModel::ensureSorted(int column, Qt::SortOrder order, const auto compare = (order == Qt::AscendingOrder ? &itemLessThan : &itemGreaterThan); std::stable_sort(sorting.begin(), sorting.end(), compare); QModelIndexList oldPersistentIndexes, newPersistentIndexes; - QVector<QTableWidgetItem*> newTable = tableItems; - QVector<QTableWidgetItem*> newVertical = verticalHeaderItems; - QVector<QTableWidgetItem*> colItems = columnItems(column); - QVector<QTableWidgetItem*>::iterator vit = colItems.begin(); + QList<QTableWidgetItem *> newTable = tableItems; + QList<QTableWidgetItem *> newVertical = verticalHeaderItems; + QList<QTableWidgetItem *> colItems = columnItems(column); + QList<QTableWidgetItem *>::iterator vit = colItems.begin(); bool changed = false; for (int i = 0; i < sorting.count(); ++i) { int oldRow = sorting.at(i).second; @@ -603,7 +603,7 @@ void QTableModel::ensureSorted(int column, Qt::SortOrder order, } // move the items @ oldRow to newRow int cc = columnCount(); - QVector<QTableWidgetItem*> rowItems(cc); + QList<QTableWidgetItem *> rowItems(cc); for (int j = 0; j < cc; ++j) rowItems[j] = newTable.at(tableIndex(oldRow, j)); newTable.remove(tableIndex(oldRow, 0), cc); @@ -640,9 +640,9 @@ void QTableModel::ensureSorted(int column, Qt::SortOrder order, Returns the non-0 items in column \a column. */ -QVector<QTableWidgetItem*> QTableModel::columnItems(int column) const +QList<QTableWidgetItem *> QTableModel::columnItems(int column) const { - QVector<QTableWidgetItem*> items; + QList<QTableWidgetItem *> items; int rc = rowCount(); items.reserve(rc); for (int row = 0; row < rc; ++row) { @@ -689,10 +689,10 @@ void QTableModel::updateRowIndexes(QModelIndexList &indexes, inserted in the interval (\a begin, \a end) according to the given sort \a order. */ -QVector<QTableWidgetItem*>::iterator QTableModel::sortedInsertionIterator( - const QVector<QTableWidgetItem*>::iterator &begin, - const QVector<QTableWidgetItem*>::iterator &end, - Qt::SortOrder order, QTableWidgetItem *item) +QList<QTableWidgetItem *>::iterator +QTableModel::sortedInsertionIterator(const QList<QTableWidgetItem *>::iterator &begin, + const QList<QTableWidgetItem *>::iterator &end, + Qt::SortOrder order, QTableWidgetItem *item) { if (order == Qt::AscendingOrder) return std::lower_bound(begin, end, item, QTableModelLessThan()); @@ -790,7 +790,7 @@ void QTableModel::clearContents() endResetModel(); } -void QTableModel::itemChanged(QTableWidgetItem *item, const QVector<int> &roles) +void QTableModel::itemChanged(QTableWidgetItem *item, const QList<int> &roles) { if (!item) return; @@ -1374,9 +1374,9 @@ void QTableWidgetItem::setData(int role, const QVariant &value) values.append(QWidgetItemData(role, value)); if (QTableModel *model = tableModel()) { - const QVector<int> roles((role == Qt::DisplayRole) ? - QVector<int>({Qt::DisplayRole, Qt::EditRole}) : - QVector<int>({role})); + const QList<int> roles((role == Qt::DisplayRole) + ? QList<int>({ Qt::DisplayRole, Qt::EditRole }) + : QList<int>({ role })); model->itemChanged(this, roles); } } diff --git a/src/widgets/itemviews/qtablewidget.h b/src/widgets/itemviews/qtablewidget.h index 65f9f60b37..6ef0601dd3 100644 --- a/src/widgets/itemviews/qtablewidget.h +++ b/src/widgets/itemviews/qtablewidget.h @@ -40,10 +40,10 @@ #ifndef QTABLEWIDGET_H #define QTABLEWIDGET_H -#include <QtWidgets/qtwidgetsglobal.h> #include <QtWidgets/qtableview.h> +#include <QtWidgets/qtwidgetsglobal.h> +#include <QtCore/qlist.h> #include <QtCore/qvariant.h> -#include <QtCore/qvector.h> QT_REQUIRE_CONFIG(tablewidget); @@ -168,7 +168,7 @@ private: private: int rtti; - QVector<QWidgetItemData> values; + QList<QWidgetItemData> values; QTableWidget *view; QTableWidgetItemPrivate *d; Qt::ItemFlags itemFlags; diff --git a/src/widgets/itemviews/qtablewidget_p.h b/src/widgets/itemviews/qtablewidget_p.h index 670b58ef6a..0117247635 100644 --- a/src/widgets/itemviews/qtablewidget_p.h +++ b/src/widgets/itemviews/qtablewidget_p.h @@ -145,12 +145,12 @@ public: const QPair<QTableWidgetItem*,int> &right); void ensureSorted(int column, Qt::SortOrder order, int start, int end); - QVector<QTableWidgetItem*> columnItems(int column) const; + QList<QTableWidgetItem *> columnItems(int column) const; void updateRowIndexes(QModelIndexList &indexes, int movedFromRow, int movedToRow); - static QVector<QTableWidgetItem*>::iterator sortedInsertionIterator( - const QVector<QTableWidgetItem*>::iterator &begin, - const QVector<QTableWidgetItem*>::iterator &end, - Qt::SortOrder order, QTableWidgetItem *item); + static QList<QTableWidgetItem *>::iterator + sortedInsertionIterator(const QList<QTableWidgetItem *>::iterator &begin, + const QList<QTableWidgetItem *>::iterator &end, Qt::SortOrder order, + QTableWidgetItem *item); bool isValid(const QModelIndex &index) const; inline long tableIndex(int row, int column) const @@ -158,7 +158,7 @@ public: void clear(); void clearContents(); - void itemChanged(QTableWidgetItem *item, const QVector<int> &roles = QVector<int>()); + void itemChanged(QTableWidgetItem *item, const QList<int> &roles = QList<int>()); QTableWidgetItem *createItem() const; const QTableWidgetItem *itemPrototype() const; @@ -175,9 +175,9 @@ public: private: const QTableWidgetItem *prototype; - QVector<QTableWidgetItem*> tableItems; - QVector<QTableWidgetItem*> verticalHeaderItems; - QVector<QTableWidgetItem*> horizontalHeaderItems; + QList<QTableWidgetItem *> tableItems; + QList<QTableWidgetItem *> verticalHeaderItems; + QList<QTableWidgetItem *> horizontalHeaderItems; // A cache must be mutable if get-functions should have const modifiers mutable QModelIndexList cachedIndexes; diff --git a/src/widgets/itemviews/qtreeview.cpp b/src/widgets/itemviews/qtreeview.cpp index 41928ddf1e..c4a2a31dde 100644 --- a/src/widgets/itemviews/qtreeview.cpp +++ b/src/widgets/itemviews/qtreeview.cpp @@ -674,7 +674,8 @@ void QTreeView::setFirstColumnSpanned(int row, const QModelIndex &parent, bool s /*! \reimp */ -void QTreeView::dataChanged(const QModelIndex &topLeft, const QModelIndex &bottomRight, const QVector<int> &roles) +void QTreeView::dataChanged(const QModelIndex &topLeft, const QModelIndex &bottomRight, + const QList<int> &roles) { Q_D(QTreeView); @@ -1444,8 +1445,11 @@ void QTreeViewPrivate::adjustViewOptionsForIndex(QStyleOptionViewItem *option, c option->showDecorationSelected = (selectionBehavior & QTreeView::SelectRows) || option->showDecorationSelected; - QVector<int> logicalIndices; // index = visual index of visible columns only. data = logical index. - QVector<QStyleOptionViewItem::ViewItemPosition> viewItemPosList; // vector of left/middle/end for each logicalIndex, visible columns only. + QList<int> + logicalIndices; // index = visual index of visible columns only. data = logical index. + QList<QStyleOptionViewItem::ViewItemPosition> + viewItemPosList; // vector of left/middle/end for each logicalIndex, visible columns + // only. const bool spanning = viewItems.at(row).spanning; const int left = (spanning ? header->visualIndex(0) : 0); const int right = (spanning ? header->visualIndex(0) : header->count() - 1 ); @@ -1466,7 +1470,7 @@ void QTreeViewPrivate::adjustViewOptionsForIndex(QStyleOptionViewItem *option, c void QTreeView::drawTree(QPainter *painter, const QRegion ®ion) const { Q_D(const QTreeView); - const QVector<QTreeViewItem> viewItems = d->viewItems; + const QList<QTreeViewItem> viewItems = d->viewItems; QStyleOptionViewItem option = d->viewOptionsV1(); const QStyle::State state = option.state; @@ -1489,7 +1493,7 @@ void QTreeView::drawTree(QPainter *painter, const QRegion ®ion) const QPoint hoverPos = d->viewport->mapFromGlobal(QCursor::pos()); d->hoverBranch = d->itemDecorationAt(hoverPos); - QVector<int> drawn; + QList<int> drawn; bool multipleRects = (region.rectCount() > 1); for (const QRect &a : region) { const QRect area = (multipleRects @@ -1542,7 +1546,9 @@ static inline bool ancestorOf(QObject *widget, QObject *other) return false; } -void QTreeViewPrivate::calcLogicalIndices(QVector<int> *logicalIndices, QVector<QStyleOptionViewItem::ViewItemPosition> *itemPositions, int left, int right) const +void QTreeViewPrivate::calcLogicalIndices( + QList<int> *logicalIndices, QList<QStyleOptionViewItem::ViewItemPosition> *itemPositions, + int left, int right) const { const int columnCount = header->count(); /* 'left' and 'right' are the left-most and right-most visible visual indices. @@ -1682,8 +1688,9 @@ void QTreeView::drawRow(QPainter *painter, const QStyleOptionViewItem &option, && index.parent() == hover.parent() && index.row() == hover.row(); - QVector<int> logicalIndices; - QVector<QStyleOptionViewItem::ViewItemPosition> viewItemPosList; // vector of left/middle/end for each logicalIndex + QList<int> logicalIndices; + QList<QStyleOptionViewItem::ViewItemPosition> + viewItemPosList; // vector of left/middle/end for each logicalIndex d->calcLogicalIndices(&logicalIndices, &viewItemPosList, left, right); for (int currentLogicalSection = 0; currentLogicalSection < logicalIndices.count(); ++currentLogicalSection) { @@ -2862,7 +2869,7 @@ int QTreeView::sizeHintForColumn(int column) const ensurePolished(); int w = 0; QStyleOptionViewItem option = d->viewOptionsV1(); - const QVector<QTreeViewItem> viewItems = d->viewItems; + const QList<QTreeViewItem> viewItems = d->viewItems; const int maximumProcessRows = d->header->resizeContentsPrecision(); // To avoid this to take forever. @@ -3799,8 +3806,8 @@ QRect QTreeViewPrivate::itemDecorationRect(const QModelIndex &index) const return q->style()->subElementRect(QStyle::SE_TreeViewDisclosureItem, &opt, q); } -QVector<QPair<int, int> > QTreeViewPrivate::columnRanges(const QModelIndex &topIndex, - const QModelIndex &bottomIndex) const +QList<QPair<int, int>> QTreeViewPrivate::columnRanges(const QModelIndex &topIndex, + const QModelIndex &bottomIndex) const { const int topVisual = header->visualIndex(topIndex.column()), bottomVisual = header->visualIndex(bottomIndex.column()); @@ -3820,7 +3827,7 @@ QVector<QPair<int, int> > QTreeViewPrivate::columnRanges(const QModelIndex &topI //let's sort the list std::sort(logicalIndexes.begin(), logicalIndexes.end()); - QVector<QPair<int, int> > ret; + QList<QPair<int, int>> ret; QPair<int, int> current; current.first = -2; // -1 is not enough because -1+1 = 0 current.second = -2; @@ -3854,8 +3861,8 @@ void QTreeViewPrivate::select(const QModelIndex &topIndex, const QModelIndex &bo const int top = viewIndex(topIndex), bottom = viewIndex(bottomIndex); - const QVector<QPair<int, int> > colRanges = columnRanges(topIndex, bottomIndex); - QVector<QPair<int, int> >::const_iterator it; + const QList<QPair<int, int>> colRanges = columnRanges(topIndex, bottomIndex); + QList<QPair<int, int>>::const_iterator it; for (it = colRanges.begin(); it != colRanges.end(); ++it) { const int left = (*it).first, right = (*it).second; diff --git a/src/widgets/itemviews/qtreeview.h b/src/widgets/itemviews/qtreeview.h index bc29accedd..be09aae59b 100644 --- a/src/widgets/itemviews/qtreeview.h +++ b/src/widgets/itemviews/qtreeview.h @@ -143,8 +143,8 @@ public: void doItemsLayout() override; void reset() override; - - void dataChanged(const QModelIndex &topLeft, const QModelIndex &bottomRight, const QVector<int> &roles = QVector<int>()) override; + void dataChanged(const QModelIndex &topLeft, const QModelIndex &bottomRight, + const QList<int> &roles = QList<int>()) override; void selectAll() override; Q_SIGNALS: diff --git a/src/widgets/itemviews/qtreeview_p.h b/src/widgets/itemviews/qtreeview_p.h index 1206850b71..e9c64d4054 100644 --- a/src/widgets/itemviews/qtreeview_p.h +++ b/src/widgets/itemviews/qtreeview_p.h @@ -53,11 +53,11 @@ #include <QtWidgets/private/qtwidgetsglobal_p.h> #include "private/qabstractitemview_p.h" +#include <QtCore/qabstractitemmodel.h> +#include <QtCore/qlist.h> #if QT_CONFIG(animation) #include <QtCore/qvariantanimation.h> #endif -#include <QtCore/qabstractitemmodel.h> -#include <QtCore/qvector.h> QT_REQUIRE_CONFIG(treeview); @@ -170,8 +170,8 @@ public: int itemDecorationAt(const QPoint &pos) const; QRect itemDecorationRect(const QModelIndex &index) const; - - QVector<QPair<int, int> > columnRanges(const QModelIndex &topIndex, const QModelIndex &bottomIndex) const; + QList<QPair<int, int>> columnRanges(const QModelIndex &topIndex, + const QModelIndex &bottomIndex) const; void select(const QModelIndex &start, const QModelIndex &stop, QItemSelectionModel::SelectionFlags command); QPair<int,int> startAndEndColumns(const QRect &rect) const; @@ -182,12 +182,14 @@ public: // logicalIndices: vector of currently visibly logical indices // itemPositions: vector of view item positions (beginning/middle/end/onlyone) - void calcLogicalIndices(QVector<int> *logicalIndices, QVector<QStyleOptionViewItem::ViewItemPosition> *itemPositions, int left, int right) const; + void calcLogicalIndices(QList<int> *logicalIndices, + QList<QStyleOptionViewItem::ViewItemPosition> *itemPositions, int left, + int right) const; int widthHintForIndex(const QModelIndex &index, int hint, const QStyleOptionViewItem &option, int i) const; QHeaderView *header; int indent; - mutable QVector<QTreeViewItem> viewItems; + mutable QList<QTreeViewItem> viewItems; mutable int lastViewedItem; int defaultItemHeight; // this is just a number; contentsHeight() / numItems bool uniformRowHeights; // used when all rows have the same height diff --git a/src/widgets/itemviews/qtreewidget.cpp b/src/widgets/itemviews/qtreewidget.cpp index 5bcd6c8b3a..a186a243fd 100644 --- a/src/widgets/itemviews/qtreewidget.cpp +++ b/src/widgets/itemviews/qtreewidget.cpp @@ -407,7 +407,7 @@ bool QTreeModel::clearItemData(const QModelIndex &index) } itm->d->display[index.column()] = QVariant(); itm->values[index.column()].clear(); - emit dataChanged(index, index, QVector<int>{}); + emit dataChanged(index, index, QList<int> {}); return true; } @@ -491,7 +491,7 @@ bool QTreeModel::insertColumns(int column, int count, const QModelIndex &parent) QTreeWidgetItem *child = children.at(row); if (child->children.count()) itemstack.push(child); - child->values.insert(column, count, QVector<QWidgetItemData>()); + child->values.insert(column, count, QList<QWidgetItemData>()); } } @@ -622,7 +622,7 @@ void QTreeModel::ensureSorted(int column, Qt::SortOrder order, QList<QTreeWidgetItem*> lst = itm->children; int count = end - start + 1; - QVector < QPair<QTreeWidgetItem*,int> > sorting(count); + QList<QPair<QTreeWidgetItem *, int>> sorting(count); for (int i = 0; i < count; ++i) { sorting[i].first = lst.at(start + i); sorting[i].second = start + i; @@ -798,7 +798,7 @@ bool QTreeModel::isChanging() const if column is -1 then all columns have changed */ -void QTreeModel::emitDataChanged(QTreeWidgetItem *item, int column, const QVector<int> &roles) +void QTreeModel::emitDataChanged(QTreeWidgetItem *item, int column, const QList<int> &roles) { if (signalsBlocked()) return; @@ -864,7 +864,7 @@ void QTreeModel::sortItems(QList<QTreeWidgetItem*> *items, int column, Qt::SortO return; // store the original order of indexes - QVector< QPair<QTreeWidgetItem*,int> > sorting(items->count()); + QList<QPair<QTreeWidgetItem *, int>> sorting(items->count()); for (int i = 0; i < sorting.count(); ++i) { sorting[i].first = items->at(i); sorting[i].second = i; @@ -1836,7 +1836,7 @@ void QTreeWidgetItem::setData(int column, int role, const QVariant &value) default: if (column < values.count()) { bool found = false; - const QVector<QWidgetItemData> column_values = values.at(column); + const QList<QWidgetItemData> column_values = values.at(column); for (int i = 0; i < column_values.count(); ++i) { if (column_values.at(i).role == role) { if (column_values.at(i).value == value) @@ -1858,9 +1858,9 @@ void QTreeWidgetItem::setData(int column, int role, const QVariant &value) } if (model) { - const QVector<int> roles((role == Qt::DisplayRole || role == Qt::EditRole) ? - QVector<int>({Qt::DisplayRole, Qt::EditRole}) : - QVector<int>({role})); + const QList<int> roles((role == Qt::DisplayRole || role == Qt::EditRole) + ? QList<int>({ Qt::DisplayRole, Qt::EditRole }) + : QList<int>({ role })); model->emitDataChanged(this, column, roles); if (role == Qt::CheckStateRole) { QTreeWidgetItem *p; @@ -1888,7 +1888,7 @@ QVariant QTreeWidgetItem::data(int column, int role) const Q_FALLTHROUGH(); default: if (column >= 0 && column < values.size()) { - const QVector<QWidgetItemData> &column_values = values.at(column); + const QList<QWidgetItemData> &column_values = values.at(column); for (const auto &column_value : column_values) { if (column_value.role == role) return column_value.value; diff --git a/src/widgets/itemviews/qtreewidget.h b/src/widgets/itemviews/qtreewidget.h index 259bdec52b..72e4661028 100644 --- a/src/widgets/itemviews/qtreewidget.h +++ b/src/widgets/itemviews/qtreewidget.h @@ -40,11 +40,11 @@ #ifndef QTREEWIDGET_H #define QTREEWIDGET_H -#include <QtWidgets/qtwidgetsglobal.h> #include <QtWidgets/qtreeview.h> #include <QtWidgets/qtreewidgetitemiterator.h> +#include <QtWidgets/qtwidgetsglobal.h> +#include <QtCore/qlist.h> #include <QtCore/qvariant.h> -#include <QtCore/qvector.h> QT_REQUIRE_CONFIG(treewidget); @@ -201,7 +201,7 @@ private: int rtti; // One item has a vector of column entries. Each column has a vector of (role, value) pairs. - QVector< QVector<QWidgetItemData> > values; + QList<QList<QWidgetItemData>> values; QTreeWidget *view; QTreeWidgetItemPrivate *d; QTreeWidgetItem *par; diff --git a/src/widgets/itemviews/qtreewidget_p.h b/src/widgets/itemviews/qtreewidget_p.h index f4c754789f..be9ee1cfbd 100644 --- a/src/widgets/itemviews/qtreewidget_p.h +++ b/src/widgets/itemviews/qtreewidget_p.h @@ -139,7 +139,7 @@ public: protected: QTreeModel(QTreeModelPrivate &, QTreeWidget *parent = nullptr); - void emitDataChanged(QTreeWidgetItem *item, int column, const QVector<int> &roles); + void emitDataChanged(QTreeWidgetItem *item, int column, const QList<int> &roles); void beginInsertItems(QTreeWidgetItem *parent, int row, int count); void endInsertItems(); void beginRemoveItems(QTreeWidgetItem *parent, int row, int count); |