Fix build after QList->QVector changes in qtbase
Change-Id: I1575c247de26ba08fba349bf879ed3e017530975 Reviewed-by: Simon Hausmann <simon.hausmann@qt.io>
This commit is contained in:
parent
d4442d0719
commit
893100fba3
|
@ -65,6 +65,7 @@
|
|||
#include <private/qendian_p.h>
|
||||
#include <private/qv4staticvalue_p.h>
|
||||
#include <functional>
|
||||
#include <limits.h>
|
||||
|
||||
QT_BEGIN_NAMESPACE
|
||||
|
||||
|
|
|
@ -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;
|
||||
|
|
|
@ -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);
|
||||
}
|
||||
|
||||
/*!
|
||||
|
|
|
@ -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();
|
||||
|
|
|
@ -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();
|
||||
|
|
|
@ -31,6 +31,8 @@
|
|||
|
||||
#include <QtCore/qabstractitemmodel.h>
|
||||
|
||||
#include <limits.h>
|
||||
|
||||
class TestModel: public QAbstractItemModel
|
||||
{
|
||||
Q_OBJECT
|
||||
|
|
Loading…
Reference in New Issue