diff options
Diffstat (limited to 'src/corelib/itemmodels')
-rw-r--r-- | src/corelib/itemmodels/qabstractitemmodel.cpp | 136 | ||||
-rw-r--r-- | src/corelib/itemmodels/qconcatenatetablesproxymodel.cpp | 12 | ||||
-rw-r--r-- | src/corelib/itemmodels/qidentityproxymodel.cpp | 12 | ||||
-rw-r--r-- | src/corelib/itemmodels/qitemselectionmodel.cpp | 14 | ||||
-rw-r--r-- | src/corelib/itemmodels/qsortfilterproxymodel.cpp | 167 | ||||
-rw-r--r-- | src/corelib/itemmodels/qstringlistmodel.cpp | 6 | ||||
-rw-r--r-- | src/corelib/itemmodels/qtransposeproxymodel.cpp | 7 |
7 files changed, 161 insertions, 193 deletions
diff --git a/src/corelib/itemmodels/qabstractitemmodel.cpp b/src/corelib/itemmodels/qabstractitemmodel.cpp index 5c6cc7b587..27885bcb9b 100644 --- a/src/corelib/itemmodels/qabstractitemmodel.cpp +++ b/src/corelib/itemmodels/qabstractitemmodel.cpp @@ -44,7 +44,7 @@ #include <qsize.h> #include <qmimedata.h> #include <qdebug.h> -#include <qvector.h> +#include <qlist.h> #if QT_CONFIG(regularexpression) # include <qregularexpression.h> #endif @@ -658,10 +658,9 @@ void QAbstractItemModelPrivate::rowsAboutToBeInserted(const QModelIndex &parent, { Q_Q(QAbstractItemModel); Q_UNUSED(last); - QVector<QPersistentModelIndexData *> persistent_moved; + QList<QPersistentModelIndexData *> persistent_moved; if (first < q->rowCount(parent)) { - for (auto it = persistent.indexes.constBegin(); it != persistent.indexes.constEnd(); ++it) { - QPersistentModelIndexData *data = *it; + for (auto *data : qAsConst(persistent.indexes)) { const QModelIndex &index = data->index; if (index.row() >= first && index.isValid() && index.parent() == parent) { persistent_moved.append(data); @@ -674,11 +673,9 @@ void QAbstractItemModelPrivate::rowsAboutToBeInserted(const QModelIndex &parent, void QAbstractItemModelPrivate::rowsInserted(const QModelIndex &parent, int first, int last) { - QVector<QPersistentModelIndexData *> persistent_moved = persistent.moved.pop(); - int count = (last - first) + 1; // it is important to only use the delta, because the change could be nested - for (QVector<QPersistentModelIndexData *>::const_iterator it = persistent_moved.constBegin(); - it != persistent_moved.constEnd(); ++it) { - QPersistentModelIndexData *data = *it; + const QList<QPersistentModelIndexData *> persistent_moved = persistent.moved.pop(); + const int count = (last - first) + 1; // it is important to only use the delta, because the change could be nested + for (auto *data : persistent_moved) { QModelIndex old = data->index; persistent.indexes.erase(persistent.indexes.constFind(old)); data->index = q_func()->index(old.row() + count, old.column(), parent); @@ -692,18 +689,14 @@ void QAbstractItemModelPrivate::rowsInserted(const QModelIndex &parent, void QAbstractItemModelPrivate::itemsAboutToBeMoved(const QModelIndex &srcParent, int srcFirst, int srcLast, const QModelIndex &destinationParent, int destinationChild, Qt::Orientation orientation) { - QVector<QPersistentModelIndexData *> persistent_moved_explicitly; - QVector<QPersistentModelIndexData *> persistent_moved_in_source; - QVector<QPersistentModelIndexData *> persistent_moved_in_destination; - - const auto begin = persistent.indexes.constBegin(); - const auto end = persistent.indexes.constEnd(); + QList<QPersistentModelIndexData *> persistent_moved_explicitly; + QList<QPersistentModelIndexData *> persistent_moved_in_source; + QList<QPersistentModelIndexData *> persistent_moved_in_destination; const bool sameParent = (srcParent == destinationParent); const bool movingUp = (srcFirst > destinationChild); - for (auto it = begin; it != end; ++it) { - QPersistentModelIndexData *data = *it; + for (auto *data : qAsConst(persistent.indexes)) { const QModelIndex &index = data->index; const QModelIndex &parent = index.parent(); const bool isSourceIndex = (parent == srcParent); @@ -754,16 +747,10 @@ void QAbstractItemModelPrivate::itemsAboutToBeMoved(const QModelIndex &srcParent column value depending on the value of \a orientation. The indexes may also be moved to a different parent if \a parent differs from the existing parent for the index. */ -void QAbstractItemModelPrivate::movePersistentIndexes(const QVector<QPersistentModelIndexData *> &indexes, int change, const QModelIndex &parent, Qt::Orientation orientation) +void QAbstractItemModelPrivate::movePersistentIndexes(const QList<QPersistentModelIndexData *> &indexes, int change, + const QModelIndex &parent, Qt::Orientation orientation) { - QVector<QPersistentModelIndexData *>::const_iterator it; - const QVector<QPersistentModelIndexData *>::const_iterator begin = indexes.constBegin(); - const QVector<QPersistentModelIndexData *>::const_iterator end = indexes.constEnd(); - - for (it = begin; it != end; ++it) - { - QPersistentModelIndexData *data = *it; - + for (auto *data : indexes) { int row = data->index.row(); int column = data->index.column(); @@ -784,9 +771,9 @@ void QAbstractItemModelPrivate::movePersistentIndexes(const QVector<QPersistentM void QAbstractItemModelPrivate::itemsMoved(const QModelIndex &sourceParent, int sourceFirst, int sourceLast, const QModelIndex &destinationParent, int destinationChild, Qt::Orientation orientation) { - QVector<QPersistentModelIndexData *> moved_in_destination = persistent.moved.pop(); - QVector<QPersistentModelIndexData *> moved_in_source = persistent.moved.pop(); - QVector<QPersistentModelIndexData *> moved_explicitly = persistent.moved.pop(); + const QList<QPersistentModelIndexData *> moved_in_destination = persistent.moved.pop(); + const QList<QPersistentModelIndexData *> moved_in_source = persistent.moved.pop(); + const QList<QPersistentModelIndexData *> moved_explicitly = persistent.moved.pop(); const bool sameParent = (sourceParent == destinationParent); const bool movingUp = (sourceFirst > destinationChild); @@ -803,12 +790,11 @@ void QAbstractItemModelPrivate::itemsMoved(const QModelIndex &sourceParent, int void QAbstractItemModelPrivate::rowsAboutToBeRemoved(const QModelIndex &parent, int first, int last) { - QVector<QPersistentModelIndexData *> persistent_moved; - QVector<QPersistentModelIndexData *> persistent_invalidated; + QList<QPersistentModelIndexData *> persistent_moved; + QList<QPersistentModelIndexData *> persistent_invalidated; // find the persistent indexes that are affected by the change, either by being in the removed subtree // or by being on the same level and below the removed rows - for (auto it = persistent.indexes.constBegin(); it != persistent.indexes.constEnd(); ++it) { - QPersistentModelIndexData *data = *it; + for (auto *data : qAsConst(persistent.indexes)) { bool level_changed = false; QModelIndex current = data->index; while (current.isValid()) { @@ -832,11 +818,9 @@ void QAbstractItemModelPrivate::rowsAboutToBeRemoved(const QModelIndex &parent, void QAbstractItemModelPrivate::rowsRemoved(const QModelIndex &parent, int first, int last) { - QVector<QPersistentModelIndexData *> persistent_moved = persistent.moved.pop(); - int count = (last - first) + 1; // it is important to only use the delta, because the change could be nested - for (QVector<QPersistentModelIndexData *>::const_iterator it = persistent_moved.constBegin(); - it != persistent_moved.constEnd(); ++it) { - QPersistentModelIndexData *data = *it; + const QList<QPersistentModelIndexData *> persistent_moved = persistent.moved.pop(); + const int count = (last - first) + 1; // it is important to only use the delta, because the change could be nested + for (auto *data : persistent_moved) { QModelIndex old = data->index; persistent.indexes.erase(persistent.indexes.constFind(old)); data->index = q_func()->index(old.row() - count, old.column(), parent); @@ -846,10 +830,8 @@ void QAbstractItemModelPrivate::rowsRemoved(const QModelIndex &parent, qWarning() << "QAbstractItemModel::endRemoveRows: Invalid index (" << old.row() - count << ',' << old.column() << ") in model" << q_func(); } } - QVector<QPersistentModelIndexData *> persistent_invalidated = persistent.invalidated.pop(); - for (QVector<QPersistentModelIndexData *>::const_iterator it = persistent_invalidated.constBegin(); - it != persistent_invalidated.constEnd(); ++it) { - QPersistentModelIndexData *data = *it; + const QList<QPersistentModelIndexData *> persistent_invalidated = persistent.invalidated.pop(); + for (auto *data : persistent_invalidated) { auto pit = persistent.indexes.constFind(data->index); if (pit != persistent.indexes.cend()) persistent.indexes.erase(pit); @@ -862,10 +844,9 @@ void QAbstractItemModelPrivate::columnsAboutToBeInserted(const QModelIndex &pare { Q_Q(QAbstractItemModel); Q_UNUSED(last); - QVector<QPersistentModelIndexData *> persistent_moved; + QList<QPersistentModelIndexData *> persistent_moved; if (first < q->columnCount(parent)) { - for (auto it = persistent.indexes.constBegin(); it != persistent.indexes.constEnd(); ++it) { - QPersistentModelIndexData *data = *it; + for (auto *data : qAsConst(persistent.indexes)) { const QModelIndex &index = data->index; if (index.column() >= first && index.isValid() && index.parent() == parent) persistent_moved.append(data); @@ -877,11 +858,9 @@ void QAbstractItemModelPrivate::columnsAboutToBeInserted(const QModelIndex &pare void QAbstractItemModelPrivate::columnsInserted(const QModelIndex &parent, int first, int last) { - QVector<QPersistentModelIndexData *> persistent_moved = persistent.moved.pop(); - int count = (last - first) + 1; // it is important to only use the delta, because the change could be nested - for (QVector<QPersistentModelIndexData *>::const_iterator it = persistent_moved.constBegin(); - it != persistent_moved.constEnd(); ++it) { - QPersistentModelIndexData *data = *it; + const QList<QPersistentModelIndexData *> persistent_moved = persistent.moved.pop(); + const int count = (last - first) + 1; // it is important to only use the delta, because the change could be nested + for (auto *data : persistent_moved) { QModelIndex old = data->index; persistent.indexes.erase(persistent.indexes.constFind(old)); data->index = q_func()->index(old.row(), old.column() + count, parent); @@ -890,18 +869,17 @@ void QAbstractItemModelPrivate::columnsInserted(const QModelIndex &parent, } else { qWarning() << "QAbstractItemModel::endInsertColumns: Invalid index (" << old.row() << ',' << old.column() + count << ") in model" << q_func(); } - } + } } void QAbstractItemModelPrivate::columnsAboutToBeRemoved(const QModelIndex &parent, int first, int last) { - QVector<QPersistentModelIndexData *> persistent_moved; - QVector<QPersistentModelIndexData *> persistent_invalidated; + QList<QPersistentModelIndexData *> persistent_moved; + QList<QPersistentModelIndexData *> persistent_invalidated; // find the persistent indexes that are affected by the change, either by being in the removed subtree // or by being on the same level and to the right of the removed columns - for (auto it = persistent.indexes.constBegin(); it != persistent.indexes.constEnd(); ++it) { - QPersistentModelIndexData *data = *it; + for (auto *data : qAsConst(persistent.indexes)) { bool level_changed = false; QModelIndex current = data->index; while (current.isValid()) { @@ -926,11 +904,9 @@ void QAbstractItemModelPrivate::columnsAboutToBeRemoved(const QModelIndex &paren void QAbstractItemModelPrivate::columnsRemoved(const QModelIndex &parent, int first, int last) { - QVector<QPersistentModelIndexData *> persistent_moved = persistent.moved.pop(); - int count = (last - first) + 1; // it is important to only use the delta, because the change could be nested - for (QVector<QPersistentModelIndexData *>::const_iterator it = persistent_moved.constBegin(); - it != persistent_moved.constEnd(); ++it) { - QPersistentModelIndexData *data = *it; + const QList<QPersistentModelIndexData *> persistent_moved = persistent.moved.pop(); + const int count = (last - first) + 1; // it is important to only use the delta, because the change could be nested + for (auto *data : persistent_moved) { QModelIndex old = data->index; persistent.indexes.erase(persistent.indexes.constFind(old)); data->index = q_func()->index(old.row(), old.column() - count, parent); @@ -940,10 +916,8 @@ void QAbstractItemModelPrivate::columnsRemoved(const QModelIndex &parent, qWarning() << "QAbstractItemModel::endRemoveColumns: Invalid index (" << old.row() << ',' << old.column() - count << ") in model" << q_func(); } } - QVector<QPersistentModelIndexData *> persistent_invalidated = persistent.invalidated.pop(); - for (QVector<QPersistentModelIndexData *>::const_iterator it = persistent_invalidated.constBegin(); - it != persistent_invalidated.constEnd(); ++it) { - QPersistentModelIndexData *data = *it; + const QList<QPersistentModelIndexData *> persistent_invalidated = persistent.invalidated.pop(); + for (auto *data : persistent_invalidated) { auto index = persistent.indexes.constFind(data->index); if (index != persistent.indexes.constEnd()) persistent.indexes.erase(index); @@ -1565,7 +1539,7 @@ QAbstractItemModel::~QAbstractItemModel() */ /*! - \fn void QAbstractItemModel::dataChanged(const QModelIndex &topLeft, const QModelIndex &bottomRight, const QVector<int> &roles = QVector<int>()) + \fn void QAbstractItemModel::dataChanged(const QModelIndex &topLeft, const QModelIndex &bottomRight, const QList<int> &roles = QList<int>()) This signal is emitted whenever the data in an existing item changes. @@ -2555,9 +2529,8 @@ bool QAbstractItemModel::setHeaderData(int section, Qt::Orientation orientation, */ void QAbstractItemModel::encodeData(const QModelIndexList &indexes, QDataStream &stream) const { - QModelIndexList::ConstIterator it = indexes.begin(); - for (; it != indexes.end(); ++it) - stream << (*it).row() << (*it).column() << itemData(*it); + for (const auto &index : indexes) + stream << index.row() << index.column() << itemData(index); } /*! @@ -2570,8 +2543,8 @@ bool QAbstractItemModel::decodeData(int row, int column, const QModelIndex &pare int left = INT_MAX; int bottom = 0; int right = 0; - QVector<int> rows, columns; - QVector<QMap<int, QVariant> > data; + QList<int> rows, columns; + QList<QMap<int, QVariant>> data; while (!stream.atEnd()) { int r, c; @@ -2592,7 +2565,7 @@ bool QAbstractItemModel::decodeData(int row, int column, const QModelIndex &pare int dragColumnCount = right - left + 1; // Compute the number of continuous rows upon insertion and modify the rows to match - QVector<int> rowsToInsert(bottom + 1); + QList<int> rowsToInsert(bottom + 1); for (int i = 0; i < rows.count(); ++i) rowsToInsert[rows.at(i)] = 1; for (int i = 0; i < rowsToInsert.count(); ++i) { @@ -2617,7 +2590,7 @@ bool QAbstractItemModel::decodeData(int row, int column, const QModelIndex &pare row = qMax(0, row); column = qMax(0, column); - QVector<QPersistentModelIndex> newIndexes(data.size()); + QList<QPersistentModelIndex> newIndexes(data.size()); // set the data in the table for (int j = 0; j < data.size(); ++j) { int relativeRow = rows.at(j) - top; @@ -3258,7 +3231,7 @@ void QAbstractItemModel::changePersistentIndexList(const QModelIndexList &from, Q_D(QAbstractItemModel); if (d->persistent.indexes.isEmpty()) return; - QVector<QPersistentModelIndexData *> toBeReinserted; + QList<QPersistentModelIndexData *> toBeReinserted; toBeReinserted.reserve(to.count()); for (int i = 0; i < from.count(); ++i) { if (from.at(i) == to.at(i)) @@ -3273,11 +3246,8 @@ void QAbstractItemModel::changePersistentIndexList(const QModelIndexList &from, } } - for (QVector<QPersistentModelIndexData *>::const_iterator it = toBeReinserted.constBegin(); - it != toBeReinserted.constEnd() ; ++it) { - QPersistentModelIndexData *data = *it; + for (auto *data : qAsConst(toBeReinserted)) d->persistent.insertMultiAtEnd(data->index, data); - } } /*! @@ -3290,10 +3260,8 @@ QModelIndexList QAbstractItemModel::persistentIndexList() const Q_D(const QAbstractItemModel); QModelIndexList result; result.reserve(d->persistent.indexes.count()); - for (auto it = d->persistent.indexes.constBegin(); it != d->persistent.indexes.constEnd(); ++it) { - QPersistentModelIndexData *data = *it; + for (auto *data : qAsConst(d->persistent.indexes)) result.append(data->index); - } return result; } @@ -3768,8 +3736,8 @@ bool QAbstractTableModel::dropMimeData(const QMimeData *data, Qt::DropAction act if (parent.isValid() && row == -1 && column == -1) { int top = INT_MAX; int left = INT_MAX; - QVector<int> rows, columns; - QVector<QMap<int, QVariant> > data; + QList<int> rows, columns; + QList<QMap<int, QVariant>> data; while (!stream.atEnd()) { int r, c; @@ -3819,8 +3787,8 @@ bool QAbstractListModel::dropMimeData(const QMimeData *data, Qt::DropAction acti if (parent.isValid() && row == -1 && column == -1) { int top = INT_MAX; int left = INT_MAX; - QVector<int> rows, columns; - QVector<QMap<int, QVariant> > data; + QList<int> rows, columns; + QList<QMap<int, QVariant>> data; while (!stream.atEnd()) { int r, c; diff --git a/src/corelib/itemmodels/qconcatenatetablesproxymodel.cpp b/src/corelib/itemmodels/qconcatenatetablesproxymodel.cpp index 0e29714677..05baa7eed2 100644 --- a/src/corelib/itemmodels/qconcatenatetablesproxymodel.cpp +++ b/src/corelib/itemmodels/qconcatenatetablesproxymodel.cpp @@ -69,7 +69,7 @@ public: void _q_slotColumnsInserted(const QModelIndex &parent, int, int); void _q_slotColumnsAboutToBeRemoved(const QModelIndex &parent, int start, int end); void _q_slotColumnsRemoved(const QModelIndex &parent, int, int); - void _q_slotDataChanged(const QModelIndex &from, const QModelIndex &to, const QVector<int> &roles); + void _q_slotDataChanged(const QModelIndex &from, const QModelIndex &to, const QList<int> &roles); void _q_slotSourceLayoutAboutToBeChanged(const QList<QPersistentModelIndex> &sourceParents, QAbstractItemModel::LayoutChangeHint hint); void _q_slotSourceLayoutChanged(const QList<QPersistentModelIndex> &sourceParents, QAbstractItemModel::LayoutChangeHint hint); void _q_slotModelAboutToBeReset(); @@ -80,7 +80,7 @@ public: bool mapDropCoordinatesToSource(int row, int column, const QModelIndex &parent, int *sourceRow, int *sourceColumn, QModelIndex *sourceParent, QAbstractItemModel **sourceModel) const; - QVector<QAbstractItemModel *> m_models; + QList<QAbstractItemModel *> m_models; int m_rowCount; // have to maintain it here since we can't compute during model destruction int m_columnCount; @@ -88,8 +88,8 @@ public: int m_newColumnCount; // for layoutAboutToBeChanged/layoutChanged - QVector<QPersistentModelIndex> layoutChangePersistentIndexes; - QVector<QModelIndex> layoutChangeProxyIndexes; + QList<QPersistentModelIndex> layoutChangePersistentIndexes; + QList<QModelIndex> layoutChangeProxyIndexes; }; QConcatenateTablesProxyModelPrivate::QConcatenateTablesProxyModelPrivate() @@ -470,7 +470,7 @@ void QConcatenateTablesProxyModel::addSourceModel(QAbstractItemModel *sourceMode Q_D(QConcatenateTablesProxyModel); Q_ASSERT(sourceModel); Q_ASSERT(!d->m_models.contains(sourceModel)); - connect(sourceModel, SIGNAL(dataChanged(QModelIndex,QModelIndex,QVector<int>)), this, SLOT(_q_slotDataChanged(QModelIndex,QModelIndex,QVector<int>))); + connect(sourceModel, SIGNAL(dataChanged(QModelIndex,QModelIndex,QList<int>)), this, SLOT(_q_slotDataChanged(QModelIndex,QModelIndex,QList<int>))); connect(sourceModel, SIGNAL(rowsInserted(QModelIndex,int,int)), this, SLOT(_q_slotRowsInserted(QModelIndex,int,int))); connect(sourceModel, SIGNAL(rowsRemoved(QModelIndex,int,int)), this, SLOT(_q_slotRowsRemoved(QModelIndex,int,int))); connect(sourceModel, SIGNAL(rowsAboutToBeInserted(QModelIndex,int,int)), this, SLOT(_q_slotRowsAboutToBeInserted(QModelIndex,int,int))); @@ -617,7 +617,7 @@ void QConcatenateTablesProxyModelPrivate::_q_slotColumnsRemoved(const QModelInde } } -void QConcatenateTablesProxyModelPrivate::_q_slotDataChanged(const QModelIndex &from, const QModelIndex &to, const QVector<int> &roles) +void QConcatenateTablesProxyModelPrivate::_q_slotDataChanged(const QModelIndex &from, const QModelIndex &to, const QList<int> &roles) { Q_Q(QConcatenateTablesProxyModel); Q_ASSERT(from.isValid()); diff --git a/src/corelib/itemmodels/qidentityproxymodel.cpp b/src/corelib/itemmodels/qidentityproxymodel.cpp index 8210e27f8a..209626a0ee 100644 --- a/src/corelib/itemmodels/qidentityproxymodel.cpp +++ b/src/corelib/itemmodels/qidentityproxymodel.cpp @@ -69,7 +69,7 @@ class QIdentityProxyModelPrivate : public QAbstractProxyModelPrivate void _q_sourceColumnsAboutToBeMoved(const QModelIndex &sourceParent, int sourceStart, int sourceEnd, const QModelIndex &destParent, int dest); void _q_sourceColumnsMoved(const QModelIndex &sourceParent, int sourceStart, int sourceEnd, const QModelIndex &destParent, int dest); - void _q_sourceDataChanged(const QModelIndex &topLeft, const QModelIndex &bottomRight, const QVector<int> &roles); + void _q_sourceDataChanged(const QModelIndex &topLeft, const QModelIndex &bottomRight, const QList<int> &roles); void _q_sourceHeaderDataChanged(Qt::Orientation orientation, int first, int last); void _q_sourceLayoutAboutToBeChanged(const QList<QPersistentModelIndex> &sourceParents, QAbstractItemModel::LayoutChangeHint hint); @@ -390,8 +390,8 @@ void QIdentityProxyModel::setSourceModel(QAbstractItemModel* newSourceModel) this, SLOT(_q_sourceModelAboutToBeReset())); disconnect(sourceModel(), SIGNAL(modelReset()), this, SLOT(_q_sourceModelReset())); - disconnect(sourceModel(), SIGNAL(dataChanged(QModelIndex,QModelIndex,QVector<int>)), - this, SLOT(_q_sourceDataChanged(QModelIndex,QModelIndex,QVector<int>))); + disconnect(sourceModel(), SIGNAL(dataChanged(QModelIndex,QModelIndex,QList<int>)), + this, SLOT(_q_sourceDataChanged(QModelIndex,QModelIndex,QList<int>))); disconnect(sourceModel(), SIGNAL(headerDataChanged(Qt::Orientation,int,int)), this, SLOT(_q_sourceHeaderDataChanged(Qt::Orientation,int,int))); disconnect(sourceModel(), SIGNAL(layoutAboutToBeChanged(QList<QPersistentModelIndex>,QAbstractItemModel::LayoutChangeHint)), @@ -431,8 +431,8 @@ void QIdentityProxyModel::setSourceModel(QAbstractItemModel* newSourceModel) SLOT(_q_sourceModelAboutToBeReset())); connect(sourceModel(), SIGNAL(modelReset()), SLOT(_q_sourceModelReset())); - connect(sourceModel(), SIGNAL(dataChanged(QModelIndex,QModelIndex,QVector<int>)), - SLOT(_q_sourceDataChanged(QModelIndex,QModelIndex,QVector<int>))); + connect(sourceModel(), SIGNAL(dataChanged(QModelIndex,QModelIndex,QList<int>)), + SLOT(_q_sourceDataChanged(QModelIndex,QModelIndex,QList<int>))); connect(sourceModel(), SIGNAL(headerDataChanged(Qt::Orientation,int,int)), SLOT(_q_sourceHeaderDataChanged(Qt::Orientation,int,int))); connect(sourceModel(), SIGNAL(layoutAboutToBeChanged(QList<QPersistentModelIndex>,QAbstractItemModel::LayoutChangeHint)), @@ -499,7 +499,7 @@ void QIdentityProxyModelPrivate::_q_sourceColumnsRemoved(const QModelIndex &pare q->endRemoveColumns(); } -void QIdentityProxyModelPrivate::_q_sourceDataChanged(const QModelIndex &topLeft, const QModelIndex &bottomRight, const QVector<int> &roles) +void QIdentityProxyModelPrivate::_q_sourceDataChanged(const QModelIndex &topLeft, const QModelIndex &bottomRight, const QList<int> &roles) { Q_ASSERT(topLeft.isValid() ? topLeft.model() == model : true); Q_ASSERT(bottomRight.isValid() ? bottomRight.model() == model : true); diff --git a/src/corelib/itemmodels/qitemselectionmodel.cpp b/src/corelib/itemmodels/qitemselectionmodel.cpp index fe7be8753b..5eed378f9e 100644 --- a/src/corelib/itemmodels/qitemselectionmodel.cpp +++ b/src/corelib/itemmodels/qitemselectionmodel.cpp @@ -306,7 +306,7 @@ bool QItemSelectionRange::operator<(const QItemSelectionRange &other) const */ -static void rowLengthsFromRange(const QItemSelectionRange &range, QVector<QPair<QPersistentModelIndex, uint> > &result) +static void rowLengthsFromRange(const QItemSelectionRange &range, QList<QPair<QPersistentModelIndex, uint>> &result) { if (range.isValid() && range.model()) { const QModelIndex topLeft = range.topLeft(); @@ -495,9 +495,9 @@ QModelIndexList QItemSelection::indexes() const return qSelectionIndexes<QModelIndexList>(*this); } -static QVector<QPair<QPersistentModelIndex, uint> > qSelectionPersistentRowLengths(const QItemSelection &sel) +static QList<QPair<QPersistentModelIndex, uint>> qSelectionPersistentRowLengths(const QItemSelection &sel) { - QVector<QPair<QPersistentModelIndex, uint> > result; + QList<QPair<QPersistentModelIndex, uint>> result; for (const QItemSelectionRange &range : sel) rowLengthsFromRange(range, result); return result; @@ -902,14 +902,14 @@ void QItemSelectionModelPrivate::_q_layoutAboutToBeChanged(const QList<QPersiste savedPersistentRowLengths = qSelectionPersistentRowLengths(ranges); savedPersistentCurrentRowLengths = qSelectionPersistentRowLengths(currentSelection); } else { - savedPersistentIndexes = qSelectionIndexes<QVector<QPersistentModelIndex>>(ranges); - savedPersistentCurrentIndexes = qSelectionIndexes<QVector<QPersistentModelIndex>>(currentSelection); + savedPersistentIndexes = qSelectionIndexes<QList<QPersistentModelIndex>>(ranges); + savedPersistentCurrentIndexes = qSelectionIndexes<QList<QPersistentModelIndex>>(currentSelection); } } /*! \internal */ -static QItemSelection mergeRowLengths(const QVector<QPair<QPersistentModelIndex, uint> > &rowLengths) +static QItemSelection mergeRowLengths(const QList<QPair<QPersistentModelIndex, uint>> &rowLengths) { if (rowLengths.isEmpty()) return QItemSelection(); @@ -949,7 +949,7 @@ static QItemSelection mergeRowLengths(const QVector<QPair<QPersistentModelIndex, Merges \a indexes into an item selection made up of ranges. Assumes that the indexes are sorted. */ -static QItemSelection mergeIndexes(const QVector<QPersistentModelIndex> &indexes) +static QItemSelection mergeIndexes(const QList<QPersistentModelIndex> &indexes) { QItemSelection colSpans; // merge columns diff --git a/src/corelib/itemmodels/qsortfilterproxymodel.cpp b/src/corelib/itemmodels/qsortfilterproxymodel.cpp index 03db159618..728be151c6 100644 --- a/src/corelib/itemmodels/qsortfilterproxymodel.cpp +++ b/src/corelib/itemmodels/qsortfilterproxymodel.cpp @@ -51,7 +51,7 @@ QT_BEGIN_NAMESPACE -typedef QVector<QPair<QModelIndex, QPersistentModelIndex> > QModelIndexPairList; +typedef QList<QPair<QModelIndex, QPersistentModelIndex>> QModelIndexPairList; struct QSortFilterProxyModelDataChanged { @@ -62,7 +62,7 @@ struct QSortFilterProxyModelDataChanged QModelIndex bottomRight; }; -static inline QSet<int> qVectorToSet(const QVector<int> &vector) +static inline QSet<int> qListToSet(const QList<int> &vector) { return {vector.begin(), vector.end()}; } @@ -154,11 +154,11 @@ public: }; struct Mapping { - QVector<int> source_rows; - QVector<int> source_columns; - QVector<int> proxy_rows; - QVector<int> proxy_columns; - QVector<QModelIndex> mapped_children; + QList<int> source_rows; + QList<int> source_columns; + QList<int> proxy_rows; + QList<int> proxy_columns; + QList<QModelIndex> mapped_children; QModelIndex source_parent; }; @@ -215,7 +215,7 @@ public: void _q_sourceDataChanged(const QModelIndex &source_top_left, const QModelIndex &source_bottom_right, - const QVector<int> &roles); + const QList<int> &roles); void _q_sourceHeaderDataChanged(Qt::Orientation orientation, int start, int end); void _q_sourceAboutToBeReset(); @@ -258,27 +258,27 @@ public: void sort(); bool update_source_sort_column(); int find_source_sort_column() const; - void sort_source_rows(QVector<int> &source_rows, + void sort_source_rows(QList<int> &source_rows, const QModelIndex &source_parent) const; - QVector<QPair<int, QVector<int > > > proxy_intervals_for_source_items_to_add( - const QVector<int> &proxy_to_source, const QVector<int> &source_items, + QList<QPair<int, QList<int>>> proxy_intervals_for_source_items_to_add( + const QList<int> &proxy_to_source, const QList<int> &source_items, const QModelIndex &source_parent, Qt::Orientation orient) const; - QVector<QPair<int, int > > proxy_intervals_for_source_items( - const QVector<int> &source_to_proxy, const QVector<int> &source_items) const; + QList<QPair<int, int>> proxy_intervals_for_source_items( + const QList<int> &source_to_proxy, const QList<int> &source_items) const; void insert_source_items( - QVector<int> &source_to_proxy, QVector<int> &proxy_to_source, - const QVector<int> &source_items, const QModelIndex &source_parent, + QList<int> &source_to_proxy, QList<int> &proxy_to_source, + const QList<int> &source_items, const QModelIndex &source_parent, Qt::Orientation orient, bool emit_signal = true); void remove_source_items( - QVector<int> &source_to_proxy, QVector<int> &proxy_to_source, - const QVector<int> &source_items, const QModelIndex &source_parent, + QList<int> &source_to_proxy, QList<int> &proxy_to_source, + const QList<int> &source_items, const QModelIndex &source_parent, Qt::Orientation orient, bool emit_signal = true); void remove_proxy_interval( - QVector<int> &source_to_proxy, QVector<int> &proxy_to_source, + QList<int> &source_to_proxy, QList<int> &proxy_to_source, int proxy_start, int proxy_end, const QModelIndex &proxy_parent, Qt::Orientation orient, bool emit_signal = true); static inline void build_source_to_proxy_mapping( - const QVector<int> &proxy_to_source, QVector<int> &source_to_proxy, int start = 0); + const QList<int> &proxy_to_source, QList<int> &source_to_proxy, int start = 0); void source_items_inserted(const QModelIndex &source_parent, int start, int end, Qt::Orientation orient); void source_items_about_to_be_removed(const QModelIndex &source_parent, @@ -286,7 +286,7 @@ public: void source_items_removed(const QModelIndex &source_parent, int start, int end, Qt::Orientation orient); void proxy_item_range( - const QVector<int> &source_to_proxy, const QVector<int> &source_items, + const QList<int> &source_to_proxy, const QList<int> &source_items, int &proxy_low, int &proxy_high) const; QModelIndexPairList store_persistent_indexes() const; @@ -295,7 +295,7 @@ public: void filter_about_to_be_changed(const QModelIndex &source_parent = QModelIndex()); void filter_changed(Direction dir, const QModelIndex &source_parent = QModelIndex()); QSet<int> handle_filter_changed( - QVector<int> &source_to_proxy, QVector<int> &proxy_to_source, + QList<int> &source_to_proxy, QList<int> &proxy_to_source, const QModelIndex &source_parent, Qt::Orientation orient); void updateChildrenMapping(const QModelIndex &source_parent, Mapping *parent_mapping, @@ -303,7 +303,7 @@ public: void _q_sourceModelDestroyed() override; - bool needsReorder(const QVector<int> &source_rows, const QModelIndex &source_parent) const; + bool needsReorder(const QList<int> &source_rows, const QModelIndex &source_parent) const; bool filterAcceptsRowInternal(int source_row, const QModelIndex &source_parent) const; bool recursiveChildAcceptsRow(int source_row, const QModelIndex &source_parent) const; @@ -582,7 +582,7 @@ int QSortFilterProxyModelPrivate::find_source_sort_column() const Sorts the given \a source_rows according to current sort column and order. */ void QSortFilterProxyModelPrivate::sort_source_rows( - QVector<int> &source_rows, const QModelIndex &source_parent) const + QList<int> &source_rows, const QModelIndex &source_parent) const { Q_Q(const QSortFilterProxyModel); if (source_sort_column >= 0) { @@ -609,10 +609,10 @@ void QSortFilterProxyModelPrivate::sort_source_rows( The result is a vector of pairs, where each pair represents a (start, end) tuple, sorted in ascending order. */ -QVector<QPair<int, int > > QSortFilterProxyModelPrivate::proxy_intervals_for_source_items( - const QVector<int> &source_to_proxy, const QVector<int> &source_items) const +QList<QPair<int, int>> QSortFilterProxyModelPrivate::proxy_intervals_for_source_items( + const QList<int> &source_to_proxy, const QList<int> &source_items) const { - QVector<QPair<int, int> > proxy_intervals; + QList<QPair<int, int>> proxy_intervals; if (source_items.isEmpty()) return proxy_intervals; @@ -657,8 +657,8 @@ QVector<QPair<int, int > > QSortFilterProxyModelPrivate::proxy_intervals_for_sou rows/columnsRemoved(start, end) signals will be generated. */ void QSortFilterProxyModelPrivate::remove_source_items( - QVector<int> &source_to_proxy, QVector<int> &proxy_to_source, - const QVector<int> &source_items, const QModelIndex &source_parent, + QList<int> &source_to_proxy, QList<int> &proxy_to_source, + const QList<int> &source_items, const QModelIndex &source_parent, Qt::Orientation orient, bool emit_signal) { Q_Q(QSortFilterProxyModel); @@ -687,7 +687,7 @@ void QSortFilterProxyModelPrivate::remove_source_items( (inclusive) from this proxy model. */ void QSortFilterProxyModelPrivate::remove_proxy_interval( - QVector<int> &source_to_proxy, QVector<int> &proxy_to_source, int proxy_start, int proxy_end, + QList<int> &source_to_proxy, QList<int> &proxy_to_source, int proxy_start, int proxy_end, const QModelIndex &proxy_parent, Qt::Orientation orient, bool emit_signal) { Q_Q(QSortFilterProxyModel); @@ -725,19 +725,19 @@ void QSortFilterProxyModelPrivate::remove_proxy_interval( items), where items is a vector containing the (sorted) source items that should be inserted at that proxy model location. */ -QVector<QPair<int, QVector<int > > > QSortFilterProxyModelPrivate::proxy_intervals_for_source_items_to_add( - const QVector<int> &proxy_to_source, const QVector<int> &source_items, +QList<QPair<int, QList<int>>> QSortFilterProxyModelPrivate::proxy_intervals_for_source_items_to_add( + const QList<int> &proxy_to_source, const QList<int> &source_items, const QModelIndex &source_parent, Qt::Orientation orient) const { Q_Q(const QSortFilterProxyModel); - QVector<QPair<int, QVector<int> > > proxy_intervals; + QList<QPair<int, QList<int>>> proxy_intervals; if (source_items.isEmpty()) return proxy_intervals; int proxy_low = 0; int proxy_item = 0; int source_items_index = 0; - QVector<int> source_items_in_interval; + QList<int> source_items_in_interval; bool compare = (orient == Qt::Vertical && source_sort_column >= 0 && dynamic_sortfilter); while (source_items_index < source_items.size()) { source_items_in_interval.clear(); @@ -786,7 +786,7 @@ QVector<QPair<int, QVector<int > > > QSortFilterProxyModelPrivate::proxy_interva } // Add interval to result - proxy_intervals.append(QPair<int, QVector<int> >(proxy_item, source_items_in_interval)); + proxy_intervals.append(QPair<int, QList<int>>(proxy_item, source_items_in_interval)); } return proxy_intervals; } @@ -800,8 +800,8 @@ QVector<QPair<int, QVector<int > > > QSortFilterProxyModelPrivate::proxy_interva that the proper rows/columnsInserted(start, end) signals will be generated. */ void QSortFilterProxyModelPrivate::insert_source_items( - QVector<int> &source_to_proxy, QVector<int> &proxy_to_source, - const QVector<int> &source_items, const QModelIndex &source_parent, + QList<int> &source_to_proxy, QList<int> &proxy_to_source, + const QList<int> &source_items, const QModelIndex &source_parent, Qt::Orientation orient, bool emit_signal) { Q_Q(QSortFilterProxyModel); @@ -814,9 +814,9 @@ void QSortFilterProxyModelPrivate::insert_source_items( const auto end = proxy_intervals.rend(); for (auto it = proxy_intervals.rbegin(); it != end; ++it) { - const QPair<int, QVector<int> > &interval = *it; + const QPair<int, QList<int>> &interval = *it; const int proxy_start = interval.first; - const QVector<int> &source_items = interval.second; + const QList<int> &source_items = interval.second; const int proxy_end = proxy_start + source_items.size() - 1; if (emit_signal) { @@ -877,8 +877,8 @@ void QSortFilterProxyModelPrivate::source_items_inserted( } Mapping *m = it.value(); - QVector<int> &source_to_proxy = (orient == Qt::Vertical) ? m->proxy_rows : m->proxy_columns; - QVector<int> &proxy_to_source = (orient == Qt::Vertical) ? m->source_rows : m->source_columns; + QList<int> &source_to_proxy = (orient == Qt::Vertical) ? m->proxy_rows : m->proxy_columns; + QList<int> &proxy_to_source = (orient == Qt::Vertical) ? m->source_rows : m->source_columns; int delta_item_count = end - start + 1; int old_item_count = source_to_proxy.size(); @@ -905,7 +905,7 @@ void QSortFilterProxyModelPrivate::source_items_inserted( } // Figure out which items to add to mapping based on filter - QVector<int> source_items; + QList<int> source_items; for (int i = start; i <= end; ++i) { if ((orient == Qt::Vertical) ? filterAcceptsRowInternal(i, source_parent) @@ -919,8 +919,8 @@ void QSortFilterProxyModelPrivate::source_items_inserted( // If it was new rows make sure to create mappings for columns so that a // valid mapping can be retrieved later and vice-versa. - QVector<int> &orthogonal_proxy_to_source = (orient == Qt::Horizontal) ? m->source_rows : m->source_columns; - QVector<int> &orthogonal_source_to_proxy = (orient == Qt::Horizontal) ? m->proxy_rows : m->proxy_columns; + QList<int> &orthogonal_proxy_to_source = (orient == Qt::Horizontal) ? m->source_rows : m->source_columns; + QList<int> &orthogonal_source_to_proxy = (orient == Qt::Horizontal) ? m->proxy_rows : m->proxy_columns; if (orthogonal_source_to_proxy.isEmpty()) { const int ortho_end = (orient == Qt::Horizontal) ? model->rowCount(source_parent) : model->columnCount(source_parent); @@ -965,11 +965,11 @@ void QSortFilterProxyModelPrivate::source_items_about_to_be_removed( } Mapping *m = it.value(); - QVector<int> &source_to_proxy = (orient == Qt::Vertical) ? m->proxy_rows : m->proxy_columns; - QVector<int> &proxy_to_source = (orient == Qt::Vertical) ? m->source_rows : m->source_columns; + QList<int> &source_to_proxy = (orient == Qt::Vertical) ? m->proxy_rows : m->proxy_columns; + QList<int> &proxy_to_source = (orient == Qt::Vertical) ? m->source_rows : m->source_columns; // figure out which items to remove - QVector<int> source_items_to_remove; + QList<int> source_items_to_remove; int proxy_count = proxy_to_source.size(); for (int proxy_item = 0; proxy_item < proxy_count; ++proxy_item) { int source_item = proxy_to_source.at(proxy_item); @@ -998,8 +998,8 @@ void QSortFilterProxyModelPrivate::source_items_removed( } Mapping *m = it.value(); - QVector<int> &source_to_proxy = (orient == Qt::Vertical) ? m->proxy_rows : m->proxy_columns; - QVector<int> &proxy_to_source = (orient == Qt::Vertical) ? m->source_rows : m->source_columns; + QList<int> &source_to_proxy = (orient == Qt::Vertical) ? m->proxy_rows : m->proxy_columns; + QList<int> &proxy_to_source = (orient == Qt::Vertical) ? m->source_rows : m->source_columns; if (end >= source_to_proxy.size()) end = source_to_proxy.size() - 1; @@ -1042,8 +1042,8 @@ void QSortFilterProxyModelPrivate::updateChildrenMapping(const QModelIndex &sour Qt::Orientation orient, int start, int end, int delta_item_count, bool remove) { // see if any mapped children should be (re)moved - QVector<QPair<QModelIndex, Mapping*> > moved_source_index_mappings; - QVector<QModelIndex>::iterator it2 = parent_mapping->mapped_children.begin(); + QList<QPair<QModelIndex, Mapping *>> moved_source_index_mappings; + auto it2 = parent_mapping->mapped_children.begin(); for ( ; it2 != parent_mapping->mapped_children.end();) { const QModelIndex source_child_index = *it2; const int pos = (orient == Qt::Vertical) @@ -1081,10 +1081,9 @@ void QSortFilterProxyModelPrivate::updateChildrenMapping(const QModelIndex &sour } // reinsert moved, mapped indexes - QVector<QPair<QModelIndex, Mapping*> >::iterator it = moved_source_index_mappings.begin(); - for (; it != moved_source_index_mappings.end(); ++it) { - it->second->source_parent = it->first; - source_index_mapping.insert(it->first, it->second); + for (auto &pair : qAsConst(moved_source_index_mappings)) { + pair.second->source_parent = pair.first; + source_index_mapping.insert(pair.first, pair.second); } } @@ -1092,7 +1091,7 @@ void QSortFilterProxyModelPrivate::updateChildrenMapping(const QModelIndex &sour \internal */ void QSortFilterProxyModelPrivate::proxy_item_range( - const QVector<int> &source_to_proxy, const QVector<int> &source_items, + const QList<int> &source_to_proxy, const QList<int> &source_items, int &proxy_low, int &proxy_high) const { proxy_low = INT_MAX; @@ -1111,7 +1110,7 @@ void QSortFilterProxyModelPrivate::proxy_item_range( \internal */ void QSortFilterProxyModelPrivate::build_source_to_proxy_mapping( - const QVector<int> &proxy_to_source, QVector<int> &source_to_proxy, int start) + const QList<int> &proxy_to_source, QList<int> &source_to_proxy, int start) { if (start == 0) source_to_proxy.fill(-1); @@ -1197,8 +1196,8 @@ void QSortFilterProxyModelPrivate::filter_changed(Direction dir, const QModelInd // the iterator it2. // The m->mapped_children vector can be appended to with indexes which are no longer filtered // out (in create_mapping) when this function recurses for child indexes. - const QVector<QModelIndex> mappedChildren = m->mapped_children; - QVector<int> indexesToRemove; + const QList<QModelIndex> mappedChildren = m->mapped_children; + QList<int> indexesToRemove; for (int i = 0; i < mappedChildren.size(); ++i) { const QModelIndex &source_child_index = mappedChildren.at(i); if (rows_removed.contains(source_child_index.row()) || columns_removed.contains(source_child_index.column())) { @@ -1208,8 +1207,8 @@ void QSortFilterProxyModelPrivate::filter_changed(Direction dir, const QModelInd filter_changed(dir, source_child_index); } } - QVector<int>::const_iterator removeIt = indexesToRemove.constEnd(); - const QVector<int>::const_iterator removeBegin = indexesToRemove.constBegin(); + QList<int>::const_iterator removeIt = indexesToRemove.constEnd(); + const QList<int>::const_iterator removeBegin = indexesToRemove.constBegin(); // We can't just remove these items from mappedChildren while iterating above and then // do something like m->mapped_children = mappedChildren, because mapped_children might @@ -1227,12 +1226,12 @@ void QSortFilterProxyModelPrivate::filter_changed(Direction dir, const QModelInd returns the removed items indexes */ QSet<int> QSortFilterProxyModelPrivate::handle_filter_changed( - QVector<int> &source_to_proxy, QVector<int> &proxy_to_source, + QList<int> &source_to_proxy, QList<int> &proxy_to_source, const QModelIndex &source_parent, Qt::Orientation orient) { Q_Q(QSortFilterProxyModel); // Figure out which mapped items to remove - QVector<int> source_items_remove; + QList<int> source_items_remove; for (int i = 0; i < proxy_to_source.count(); ++i) { const int source_item = proxy_to_source.at(i); if ((orient == Qt::Vertical) @@ -1243,7 +1242,7 @@ QSet<int> QSortFilterProxyModelPrivate::handle_filter_changed( } } // Figure out which non-mapped items to insert - QVector<int> source_items_insert; + QList<int> source_items_insert; int source_count = source_to_proxy.size(); for (int source_item = 0; source_item < source_count; ++source_item) { if (source_to_proxy.at(source_item) == -1) { @@ -1264,10 +1263,10 @@ QSet<int> QSortFilterProxyModelPrivate::handle_filter_changed( insert_source_items(source_to_proxy, proxy_to_source, source_items_insert, source_parent, orient); } - return qVectorToSet(source_items_remove); + return qListToSet(source_items_remove); } -bool QSortFilterProxyModelPrivate::needsReorder(const QVector<int> &source_rows, const QModelIndex &source_parent) const +bool QSortFilterProxyModelPrivate::needsReorder(const QList<int> &source_rows, const QModelIndex &source_parent) const { Q_Q(const QSortFilterProxyModel); Q_ASSERT(source_sort_column != -1); @@ -1296,7 +1295,7 @@ bool QSortFilterProxyModelPrivate::needsReorder(const QVector<int> &source_rows, void QSortFilterProxyModelPrivate::_q_sourceDataChanged(const QModelIndex &source_top_left, const QModelIndex &source_bottom_right, - const QVector<int> &roles) + const QList<int> &roles) { Q_Q(QSortFilterProxyModel); if (!source_top_left.isValid() || !source_bottom_right.isValid()) @@ -1328,10 +1327,10 @@ void QSortFilterProxyModelPrivate::_q_sourceDataChanged(const QModelIndex &sourc Mapping *m = it.value(); // Figure out how the source changes affect us - QVector<int> source_rows_remove; - QVector<int> source_rows_insert; - QVector<int> source_rows_change; - QVector<int> source_rows_resort; + QList<int> source_rows_remove; + QList<int> source_rows_insert; + QList<int> source_rows_change; + QList<int> source_rows_resort; int end = qMin(source_bottom_right.row(), m->proxy_rows.count() - 1); for (int source_row = source_top_left.row(); source_row <= end; ++source_row) { if (dynamic_sortfilter) { @@ -1361,8 +1360,8 @@ void QSortFilterProxyModelPrivate::_q_sourceDataChanged(const QModelIndex &sourc if (!source_rows_remove.isEmpty()) { remove_source_items(m->proxy_rows, m->source_rows, source_rows_remove, source_parent, Qt::Vertical); - QSet<int> source_rows_remove_set = qVectorToSet(source_rows_remove); - QVector<QModelIndex>::iterator childIt = m->mapped_children.end(); + QSet<int> source_rows_remove_set = qListToSet(source_rows_remove); + QList<QModelIndex>::iterator childIt = m->mapped_children.end(); while (childIt != m->mapped_children.begin()) { --childIt; const QModelIndex source_child_index = *childIt; @@ -1433,14 +1432,14 @@ void QSortFilterProxyModelPrivate::_q_sourceHeaderDataChanged(Qt::Orientation or Q_Q(QSortFilterProxyModel); Mapping *m = create_mapping(QModelIndex()).value(); - const QVector<int> &source_to_proxy = (orientation == Qt::Vertical) ? m->proxy_rows : m->proxy_columns; + const QList<int> &source_to_proxy = (orientation == Qt::Vertical) ? m->proxy_rows : m->proxy_columns; - QVector<int> proxy_positions; + QList<int> proxy_positions; proxy_positions.reserve(end - start + 1); { Q_ASSERT(source_to_proxy.size() > end); - QVector<int>::const_iterator it = source_to_proxy.constBegin() + start; - const QVector<int>::const_iterator endIt = source_to_proxy.constBegin() + end + 1; + QList<int>::const_iterator it = source_to_proxy.constBegin() + start; + const QList<int>::const_iterator endIt = source_to_proxy.constBegin() + end + 1; for ( ; it != endIt; ++it) { if (*it != -1) proxy_positions.push_back(*it); @@ -1594,7 +1593,7 @@ void QSortFilterProxyModelPrivate::_q_sourceRowsInserted( return; // last_top_source should now become visible - _q_sourceDataChanged(last_top_source, last_top_source, QVector<int>()); + _q_sourceDataChanged(last_top_source, last_top_source, QList<int>()); } } @@ -1630,7 +1629,7 @@ void QSortFilterProxyModelPrivate::_q_sourceRowsRemoved( } if (to_hide.isValid()) - _q_sourceDataChanged(to_hide, to_hide, QVector<int>()); + _q_sourceDataChanged(to_hide, to_hide, QList<int>()); } } @@ -1934,8 +1933,8 @@ void QSortFilterProxyModel::setSourceModel(QAbstractItemModel *sourceModel) beginResetModel(); - disconnect(d->model, SIGNAL(dataChanged(QModelIndex,QModelIndex,QVector<int>)), - this, SLOT(_q_sourceDataChanged(QModelIndex,QModelIndex,QVector<int>))); + disconnect(d->model, SIGNAL(dataChanged(QModelIndex,QModelIndex,QList<int>)), + this, SLOT(_q_sourceDataChanged(QModelIndex,QModelIndex,QList<int>))); disconnect(d->model, SIGNAL(headerDataChanged(Qt::Orientation,int,int)), this, SLOT(_q_sourceHeaderDataChanged(Qt::Orientation,int,int))); @@ -1991,8 +1990,8 @@ void QSortFilterProxyModel::setSourceModel(QAbstractItemModel *sourceModel) QAbstractProxyModel::setSourceModel(sourceModel); - connect(d->model, SIGNAL(dataChanged(QModelIndex,QModelIndex,QVector<int>)), - this, SLOT(_q_sourceDataChanged(QModelIndex,QModelIndex,QVector<int>))); + connect(d->model, SIGNAL(dataChanged(QModelIndex,QModelIndex,QList<int>)), + this, SLOT(_q_sourceDataChanged(QModelIndex,QModelIndex,QList<int>))); connect(d->model, SIGNAL(headerDataChanged(Qt::Orientation,int,int)), this, SLOT(_q_sourceHeaderDataChanged(Qt::Orientation,int,int))); @@ -2311,7 +2310,7 @@ bool QSortFilterProxyModel::removeRows(int row, int count, const QModelIndex &pa } // remove corresponding source intervals // ### if this proves to be slow, we can switch to single-row removal - QVector<int> rows; + QList<int> rows; rows.reserve(count); for (int i = row; i < row + count; ++i) rows.append(m->source_rows.at(i)); @@ -2351,7 +2350,7 @@ bool QSortFilterProxyModel::removeColumns(int column, int count, const QModelInd return d->model->removeColumns(source_column, count, source_parent); } // remove corresponding source intervals - QVector<int> columns; + QList<int> columns; columns.reserve(count); for (int i = column; i < column + count; ++i) columns.append(m->source_columns.at(i)); diff --git a/src/corelib/itemmodels/qstringlistmodel.cpp b/src/corelib/itemmodels/qstringlistmodel.cpp index f5f67c516f..829d4cf3ed 100644 --- a/src/corelib/itemmodels/qstringlistmodel.cpp +++ b/src/corelib/itemmodels/qstringlistmodel.cpp @@ -43,7 +43,7 @@ #include "qstringlistmodel.h" -#include <QtCore/qvector.h> +#include <QtCore/qlist.h> #include <algorithm> @@ -344,7 +344,7 @@ void QStringListModel::sort(int, Qt::SortOrder order) { emit layoutAboutToBeChanged(QList<QPersistentModelIndex>(), VerticalSortHint); - QVector<QPair<QString, int> > list; + QList<QPair<QString, int>> list; const int lstCount = lst.count(); list.reserve(lstCount); for (int i = 0; i < lstCount; ++i) @@ -356,7 +356,7 @@ void QStringListModel::sort(int, Qt::SortOrder order) std::sort(list.begin(), list.end(), decendingLessThan); lst.clear(); - QVector<int> forwarding(lstCount); + QList<int> forwarding(lstCount); for (int i = 0; i < lstCount; ++i) { lst.append(list.at(i).first); forwarding[list.at(i).second] = i; diff --git a/src/corelib/itemmodels/qtransposeproxymodel.cpp b/src/corelib/itemmodels/qtransposeproxymodel.cpp index 207faa6151..c72128fa7d 100644 --- a/src/corelib/itemmodels/qtransposeproxymodel.cpp +++ b/src/corelib/itemmodels/qtransposeproxymodel.cpp @@ -39,7 +39,7 @@ #include "qtransposeproxymodel.h" #include <private/qtransposeproxymodel_p.h> -#include <QtCore/qvector.h> +#include <QtCore/qlist.h> #include <QtCore/qmetaobject.h> #include <QtCore/qsize.h> @@ -111,7 +111,8 @@ void QTransposeProxyModelPrivate::onLayoutAboutToBeChanged(const QList<QPersiste emit q->layoutAboutToBeChanged(proxyParents, proxyHint); } -void QTransposeProxyModelPrivate::onDataChanged(const QModelIndex& topLeft, const QModelIndex& bottomRight, const QVector<int>& roles) +void QTransposeProxyModelPrivate::onDataChanged(const QModelIndex &topLeft, const QModelIndex &bottomRight, + const QList<int> &roles) { Q_Q(QTransposeProxyModel); emit q->dataChanged(q->mapFromSource(topLeft), q->mapFromSource(bottomRight), roles); @@ -205,7 +206,7 @@ void QTransposeProxyModel::setSourceModel(QAbstractItemModel* newSourceModel) QAbstractProxyModel::setSourceModel(newSourceModel); if (d->model) { using namespace std::placeholders; - d->sourceConnections = QVector<QMetaObject::Connection>{ + d->sourceConnections = QList<QMetaObject::Connection>{ connect(d->model, &QAbstractItemModel::modelAboutToBeReset, this, &QTransposeProxyModel::beginResetModel), connect(d->model, &QAbstractItemModel::modelReset, this, &QTransposeProxyModel::endResetModel), connect(d->model, &QAbstractItemModel::dataChanged, this, std::bind(&QTransposeProxyModelPrivate::onDataChanged, d, _1, _2, _3)), |