summaryrefslogtreecommitdiffstats
path: root/src/widgets/itemviews/qlistview.cpp
diff options
context:
space:
mode:
authorJarek Kobus <jaroslaw.kobus@qt.io>2020-06-22 14:52:01 +0200
committerJarek Kobus <jaroslaw.kobus@qt.io>2020-07-02 21:57:06 +0200
commit2a6cdec718934ca2cc7f6f9c616ebe62f6912123 (patch)
treec8b9ed8db47912dccd2e8d125d23760936820c29 /src/widgets/itemviews/qlistview.cpp
parentd4c04acc65657d29df5b790281a8d1ba896dd868 (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.cpp79
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 &current) const
+void QListViewPrivate::removeCurrentAndDisabled(QList<QModelIndex> *indexes,
+ const QModelIndex &current) 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);