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/qlistview.cpp | |
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/qlistview.cpp')
-rw-r--r-- | src/widgets/itemviews/qlistview.cpp | 79 |
1 files changed, 42 insertions, 37 deletions
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); |