Task-number: QTBUG-16878

Change-Id: I0d074c13b32670697f4811060ddf4edbdf6c6451
Reviewed-on: http://codereview.qt.nokia.com/2133
Reviewed-by: Aaron Kennedy <aaron.kennedy@nokia.com>
Reviewed-by: Qt Sanity Bot <qt_sanity_bot@ovi.com>
This commit is contained in:
Aaron Kennedy 2011-07-26 10:44:16 +10:00 committed by Qt by Nokia
parent 2b449b0c5e
commit f5eb5ad7a0
4 changed files with 25 additions and 0 deletions

View File

@ -0,0 +1,4 @@
import Test.VersionOrder 2.0
MyQmlObject {
}

View File

@ -74,6 +74,9 @@ void registerTypes()
qmlRegisterType<MyQmlObject>("Test.Version",1,0,"MyQmlObject"); qmlRegisterType<MyQmlObject>("Test.Version",1,0,"MyQmlObject");
qmlRegisterType<MyTypeObject>("Test.Version",1,0,"MyTypeObject"); qmlRegisterType<MyTypeObject>("Test.Version",1,0,"MyTypeObject");
qmlRegisterType<MyTypeObject>("Test.Version",2,0,"MyTypeObject"); qmlRegisterType<MyTypeObject>("Test.Version",2,0,"MyTypeObject");
qmlRegisterType<MyVersion2Class>("Test.VersionOrder", 2,0, "MyQmlObject");
qmlRegisterType<MyQmlObject>("Test.VersionOrder", 1,0, "MyQmlObject");
} }
QVariant myCustomVariantTypeConverter(const QString &data) QVariant myCustomVariantTypeConverter(const QString &data)

View File

@ -794,6 +794,11 @@ protected:
qreal m_p5; qreal m_p5;
}; };
class MyVersion2Class : public QObject
{
Q_OBJECT
};
QML_DECLARE_TYPE(MyRevisionedBaseClassRegistered) QML_DECLARE_TYPE(MyRevisionedBaseClassRegistered)
QML_DECLARE_TYPE(MyRevisionedBaseClassUnregistered) QML_DECLARE_TYPE(MyRevisionedBaseClassUnregistered)
QML_DECLARE_TYPE(MyRevisionedClass) QML_DECLARE_TYPE(MyRevisionedClass)

View File

@ -136,6 +136,7 @@ private slots:
void reservedWords(); void reservedWords();
void inlineAssignmentsOverrideBindings(); void inlineAssignmentsOverrideBindings();
void nestedComponentRoots(); void nestedComponentRoots();
void registrationOrder();
void basicRemote_data(); void basicRemote_data();
void basicRemote(); void basicRemote();
@ -2056,6 +2057,18 @@ void tst_qdeclarativelanguage::propertyInit()
} }
} }
// Test that registration order doesn't break type availability
// QTBUG-16878
void tst_qdeclarativelanguage::registrationOrder()
{
QDeclarativeComponent component(&engine, TEST_FILE("registrationOrder.qml"));
QObject *o = component.create();
QVERIFY(o != 0);
QVERIFY(o->metaObject() == &MyVersion2Class::staticMetaObject);
delete o;
}
QTEST_MAIN(tst_qdeclarativelanguage) QTEST_MAIN(tst_qdeclarativelanguage)
#include "tst_qdeclarativelanguage.moc" #include "tst_qdeclarativelanguage.moc"