diff options
author | Lars Knoll <lars.knoll@qt.io> | 2019-10-31 09:48:21 +0100 |
---|---|---|
committer | Lars Knoll <lars.knoll@qt.io> | 2019-10-31 10:44:44 +0100 |
commit | 893100fba3f3a2e4d4ffe108202fdac67a3d4357 (patch) | |
tree | 2085bfd550d5008c97ceb01aca4f632b1709c9d7 | |
parent | d4442d07190783265120ea7f870d548d7d434749 (diff) |
Fix build after QList->QVector changes in qtbase
Change-Id: I1575c247de26ba08fba349bf879ed3e017530975
Reviewed-by: Simon Hausmann <simon.hausmann@qt.io>
-rw-r--r-- | src/qml/common/qv4compileddata_p.h | 1 | ||||
-rw-r--r-- | src/qml/jsruntime/qv4sequenceobject.cpp | 20 | ||||
-rw-r--r-- | src/quick/items/qquickevents.cpp | 2 | ||||
-rw-r--r-- | src/quick/items/qquicklistview.cpp | 10 | ||||
-rw-r--r-- | tests/auto/qml/qqmlecmascript/tst_qqmlecmascript.cpp | 8 | ||||
-rw-r--r-- | tests/auto/qml/qqmlitemmodels/qtestmodel.h | 2 |
6 files changed, 14 insertions, 29 deletions
diff --git a/src/qml/common/qv4compileddata_p.h b/src/qml/common/qv4compileddata_p.h index 11de506a53..7abf530996 100644 --- a/src/qml/common/qv4compileddata_p.h +++ b/src/qml/common/qv4compileddata_p.h @@ -65,6 +65,7 @@ #include <private/qendian_p.h> #include <private/qv4staticvalue_p.h> #include <functional> +#include <limits.h> QT_BEGIN_NAMESPACE diff --git a/src/qml/jsruntime/qv4sequenceobject.cpp b/src/qml/jsruntime/qv4sequenceobject.cpp index 77a98247ac..7caa122698 100644 --- a/src/qml/jsruntime/qv4sequenceobject.cpp +++ b/src/qml/jsruntime/qv4sequenceobject.cpp @@ -80,7 +80,6 @@ static void generateWarning(QV4::ExecutionEngine *v4, const QString& description #if QT_CONFIG(qml_itemmodel) #define FOREACH_QML_SEQUENCE_TYPE_FOR_ITEMMODEL(F) \ F(QModelIndex, QModelIndex, QModelIndexList, QModelIndex()) \ - F(QModelIndex, QModelIndexVector, QVector<QModelIndex>, QModelIndex()) \ F(QModelIndex, QModelIndexStdVector, std::vector<QModelIndex>, QModelIndex()) \ F(QItemSelectionRange, QItemSelectionRange, QItemSelection, QItemSelectionRange()) #else @@ -88,9 +87,6 @@ static void generateWarning(QV4::ExecutionEngine *v4, const QString& description #endif #define FOREACH_QML_SEQUENCE_TYPE(F) \ - F(int, IntVector, QVector<int>, 0) \ - F(qreal, RealVector, QVector<qreal>, 0.0) \ - F(bool, BoolVector, QVector<bool>, false) \ F(int, IntStdVector, std::vector<int>, 0) \ F(qreal, RealStdVector, std::vector<qreal>, 0.0) \ F(bool, BoolStdVector, std::vector<bool>, false) \ @@ -99,10 +95,8 @@ static void generateWarning(QV4::ExecutionEngine *v4, const QString& description F(bool, Bool, QList<bool>, false) \ F(QString, String, QList<QString>, QString()) \ F(QString, QString, QStringList, QString()) \ - F(QString, StringVector, QVector<QString>, QString()) \ F(QString, StringStdVector, std::vector<QString>, QString()) \ F(QUrl, Url, QList<QUrl>, QUrl()) \ - F(QUrl, UrlVector, QVector<QUrl>, QUrl()) \ F(QUrl, UrlStdVector, std::vector<QUrl>, QUrl()) \ FOREACH_QML_SEQUENCE_TYPE_FOR_ITEMMODEL(F) @@ -654,12 +648,6 @@ void Heap::QQmlSequence<Container>::init(QObject *object, int propertyIndex, boo namespace QV4 { -typedef QQmlSequence<QVector<int> > QQmlIntVectorList; -DEFINE_OBJECT_TEMPLATE_VTABLE(QQmlIntVectorList); -typedef QQmlSequence<QVector<qreal> > QQmlRealVectorList; -DEFINE_OBJECT_TEMPLATE_VTABLE(QQmlRealVectorList); -typedef QQmlSequence<QVector<bool> > QQmlBoolVectorList; -DEFINE_OBJECT_TEMPLATE_VTABLE(QQmlBoolVectorList); typedef QQmlSequence<std::vector<int> > QQmlIntStdVectorList; DEFINE_OBJECT_TEMPLATE_VTABLE(QQmlIntStdVectorList); typedef QQmlSequence<std::vector<qreal> > QQmlRealStdVectorList; @@ -670,23 +658,17 @@ typedef QQmlSequence<QStringList> QQmlQStringList; DEFINE_OBJECT_TEMPLATE_VTABLE(QQmlQStringList); typedef QQmlSequence<QList<QString> > QQmlStringList; DEFINE_OBJECT_TEMPLATE_VTABLE(QQmlStringList); -typedef QQmlSequence<QVector<QString> > QQmlStringVectorList; -DEFINE_OBJECT_TEMPLATE_VTABLE(QQmlStringVectorList); typedef QQmlSequence<std::vector<QString> > QQmlStringStdVectorList; -DEFINE_OBJECT_TEMPLATE_VTABLE(QQmlStringStdVectorList); typedef QQmlSequence<QList<int> > QQmlIntList; DEFINE_OBJECT_TEMPLATE_VTABLE(QQmlIntList); +DEFINE_OBJECT_TEMPLATE_VTABLE(QQmlStringStdVectorList); typedef QQmlSequence<QList<QUrl> > QQmlUrlList; DEFINE_OBJECT_TEMPLATE_VTABLE(QQmlUrlList); -typedef QQmlSequence<QVector<QUrl> > QQmlUrlVectorList; -DEFINE_OBJECT_TEMPLATE_VTABLE(QQmlUrlVectorList); typedef QQmlSequence<std::vector<QUrl> > QQmlUrlStdVectorList; DEFINE_OBJECT_TEMPLATE_VTABLE(QQmlUrlStdVectorList); #if QT_CONFIG(qml_itemmodel) typedef QQmlSequence<QModelIndexList> QQmlQModelIndexList; DEFINE_OBJECT_TEMPLATE_VTABLE(QQmlQModelIndexList); -typedef QQmlSequence<QVector<QModelIndex> > QQmlQModelIndexVectorList; -DEFINE_OBJECT_TEMPLATE_VTABLE(QQmlQModelIndexVectorList); typedef QQmlSequence<std::vector<QModelIndex> > QQmlQModelIndexStdVectorList; DEFINE_OBJECT_TEMPLATE_VTABLE(QQmlQModelIndexStdVectorList); typedef QQmlSequence<QItemSelection> QQmlQItemSelectionRangeList; diff --git a/src/quick/items/qquickevents.cpp b/src/quick/items/qquickevents.cpp index 7d51a55a0c..f2d419da31 100644 --- a/src/quick/items/qquickevents.cpp +++ b/src/quick/items/qquickevents.cpp @@ -1806,7 +1806,7 @@ const QTouchEvent::TouchPoint *QQuickPointerTouchEvent::touchPointById(int point auto it = std::find_if(tps.constBegin(), tps.constEnd(), [pointId](QTouchEvent::TouchPoint const& tp) { return tp.id() == pointId; } ); // return the pointer to the actual TP in QTouchEvent::_touchPoints - return (it == tps.constEnd() ? nullptr : it.operator->()); + return (it == tps.constEnd() ? nullptr : &*it); } /*! diff --git a/src/quick/items/qquicklistview.cpp b/src/quick/items/qquicklistview.cpp index 725d35f325..23925871e5 100644 --- a/src/quick/items/qquicklistview.cpp +++ b/src/quick/items/qquicklistview.cpp @@ -455,7 +455,7 @@ qreal QQuickListViewPrivate::lastPosition() const // All visible items are in delayRemove state invisibleCount = model->count(); } - pos = (*(--visibleItems.constEnd()))->endPosition(); + pos = (*(visibleItems.constEnd() - 1))->endPosition(); if (invisibleCount > 0) pos += invisibleCount * (averageSize + spacing); } else if (model && model->count()) { @@ -480,7 +480,7 @@ qreal QQuickListViewPrivate::positionAt(int modelIndex) const return (*visibleItems.constBegin())->position() - count * (averageSize + spacing) - cs; } else { int count = modelIndex - findLastVisibleIndex(visibleIndex) - 1; - return (*(--visibleItems.constEnd()))->endPosition() + spacing + count * (averageSize + spacing); + return (*(visibleItems.constEnd() - 1))->endPosition() + spacing + count * (averageSize + spacing); } } return 0; @@ -496,7 +496,7 @@ qreal QQuickListViewPrivate::endPositionAt(int modelIndex) const return (*visibleItems.constBegin())->position() - (count - 1) * (averageSize + spacing) - spacing; } else { int count = modelIndex - findLastVisibleIndex(visibleIndex) - 1; - return (*(--visibleItems.constEnd()))->endPosition() + count * (averageSize + spacing); + return (*(visibleItems.constEnd() - 1))->endPosition() + count * (averageSize + spacing); } } return 0; @@ -522,7 +522,7 @@ qreal QQuickListViewPrivate::snapPosAt(qreal pos) return snapItem->itemPosition(); if (visibleItems.count()) { qreal firstPos = (*visibleItems.constBegin())->position(); - qreal endPos = (*(--visibleItems.constEnd()))->position(); + qreal endPos = (*(visibleItems.constEnd() - 1))->position(); if (pos < firstPos) { return firstPos - qRound((firstPos - pos) / averageSize) * averageSize; } else if (pos > endPos) @@ -667,7 +667,7 @@ bool QQuickListViewPrivate::addVisibleItems(qreal fillFrom, qreal fillTo, qreal qreal itemEnd = visiblePos; if (visibleItems.count()) { visiblePos = (*visibleItems.constBegin())->position(); - itemEnd = (*(--visibleItems.constEnd()))->endPosition() + spacing; + itemEnd = (*(visibleItems.constEnd() - 1))->endPosition() + spacing; } int modelIndex = findLastVisibleIndex(); diff --git a/tests/auto/qml/qqmlecmascript/tst_qqmlecmascript.cpp b/tests/auto/qml/qqmlecmascript/tst_qqmlecmascript.cpp index f4de83eb87..a002658fee 100644 --- a/tests/auto/qml/qqmlecmascript/tst_qqmlecmascript.cpp +++ b/tests/auto/qml/qqmlecmascript/tst_qqmlecmascript.cpp @@ -5737,7 +5737,7 @@ void tst_qqmlecmascript::sequenceConversionRead() QVERIFY(seq != nullptr); // we haven't registered QList<NonRegisteredType> as a sequence type. - QString warningOne = QLatin1String("QMetaProperty::read: Unable to handle unregistered datatype 'QList<NonRegisteredType>' for property 'MySequenceConversionObject::typeListProperty'"); + QString warningOne = QLatin1String("QMetaProperty::read: Unable to handle unregistered datatype 'QVector<NonRegisteredType>' for property 'MySequenceConversionObject::typeListProperty'"); QString warningTwo = qmlFile.toString() + QLatin1String(":18: TypeError: Cannot read property 'length' of undefined"); QTest::ignoreMessage(QtWarningMsg, warningOne.toLatin1().constData()); QTest::ignoreMessage(QtWarningMsg, warningTwo.toLatin1().constData()); @@ -5747,7 +5747,7 @@ void tst_qqmlecmascript::sequenceConversionRead() // QList<NonRegisteredType> has not been registered as a sequence type. QCOMPARE(object->property("pointListLength").toInt(), 0); QVERIFY(!object->property("pointList").isValid()); - QTest::ignoreMessage(QtWarningMsg, "QMetaProperty::read: Unable to handle unregistered datatype 'QList<NonRegisteredType>' for property 'MySequenceConversionObject::typeListProperty'"); + QTest::ignoreMessage(QtWarningMsg, "QMetaProperty::read: Unable to handle unregistered datatype 'QVector<NonRegisteredType>' for property 'MySequenceConversionObject::typeListProperty'"); QQmlProperty seqProp(seq, "typeListProperty", &engine); QVERIFY(!seqProp.read().isValid()); // not a valid/known sequence type @@ -5790,7 +5790,7 @@ void tst_qqmlecmascript::sequenceConversionWrite() QVERIFY(seq != nullptr); // we haven't registered QList<QPoint> as a sequence type, so writing shouldn't work. - QString warningOne = qmlFile.toString() + QLatin1String(":16: Error: Cannot assign QJSValue to QList<QPoint>"); + QString warningOne = qmlFile.toString() + QLatin1String(":16: Error: Cannot assign QJSValue to QVector<QPoint>"); QTest::ignoreMessage(QtWarningMsg, warningOne.toLatin1().constData()); QMetaObject::invokeMethod(object, "performTest"); @@ -5904,7 +5904,7 @@ void tst_qqmlecmascript::sequenceConversionBindings() { QUrl qmlFile = testFileUrl("sequenceConversion.bindings.error.qml"); - QString warning = QString(QLatin1String("%1:17:9: Unable to assign QList<int> to QList<bool>")).arg(qmlFile.toString()); + QString warning = QString(QLatin1String("%1:17:9: Unable to assign QVector<int> to QVector<bool>")).arg(qmlFile.toString()); QTest::ignoreMessage(QtWarningMsg, warning.toLatin1().constData()); QQmlComponent component(&engine, qmlFile); QObject *object = component.create(); diff --git a/tests/auto/qml/qqmlitemmodels/qtestmodel.h b/tests/auto/qml/qqmlitemmodels/qtestmodel.h index 6a022b3135..de42253708 100644 --- a/tests/auto/qml/qqmlitemmodels/qtestmodel.h +++ b/tests/auto/qml/qqmlitemmodels/qtestmodel.h @@ -31,6 +31,8 @@ #include <QtCore/qabstractitemmodel.h> +#include <limits.h> + class TestModel: public QAbstractItemModel { Q_OBJECT |