diff options
author | Aaron Kennedy <aaron.kennedy@nokia.com> | 2009-05-12 05:16:49 (GMT) |
---|---|---|
committer | Aaron Kennedy <aaron.kennedy@nokia.com> | 2009-05-12 05:16:49 (GMT) |
commit | 0d1fecac0a0a6d914aa3c00ef6e2c4aadeecc0c0 (patch) | |
tree | 7b68f32c65087a38a2c64ae955ba157c78c88504 /src/declarative/qml | |
parent | 7c0960a479a250d4c6b46d6fe094ab93564e515b (diff) | |
download | Qt-0d1fecac0a0a6d914aa3c00ef6e2c4aadeecc0c0.zip Qt-0d1fecac0a0a6d914aa3c00ef6e2c4aadeecc0c0.tar.gz Qt-0d1fecac0a0a6d914aa3c00ef6e2c4aadeecc0c0.tar.bz2 |
More QML tests
Diffstat (limited to 'src/declarative/qml')
-rw-r--r-- | src/declarative/qml/qmlcompiler.cpp | 37 | ||||
-rw-r--r-- | src/declarative/qml/qmlcompiler_p.h | 3 | ||||
-rw-r--r-- | src/declarative/qml/qmlcompositetypemanager.cpp | 12 | ||||
-rw-r--r-- | src/declarative/qml/qmlcompositetypemanager_p.h | 1 | ||||
-rw-r--r-- | src/declarative/qml/qmlmetatype.cpp | 31 | ||||
-rw-r--r-- | src/declarative/qml/qmlmetatype.h | 5 |
6 files changed, 15 insertions, 74 deletions
diff --git a/src/declarative/qml/qmlcompiler.cpp b/src/declarative/qml/qmlcompiler.cpp index f17b50d..a703ec3 100644 --- a/src/declarative/qml/qmlcompiler.cpp +++ b/src/declarative/qml/qmlcompiler.cpp @@ -93,7 +93,7 @@ int QmlCompiledData::indexForFloat(float *data, int count) { Q_ASSERT(count > 0); - for (int ii = 0; ii < floatData.count() - count; ++ii) { + for (int ii = 0; ii <= floatData.count() - count; ++ii) { bool found = true; for (int jj = 0; jj < count; ++jj) { if (floatData.at(ii + jj) != data[jj]) { @@ -117,7 +117,7 @@ int QmlCompiledData::indexForInt(int *data, int count) { Q_ASSERT(count > 0); - for (int ii = 0; ii < floatData.count() - count; ++ii) { + for (int ii = 0; ii <= intData.count() - count; ++ii) { bool found = true; for (int jj = 0; jj < count; ++jj) { if (intData.at(ii + jj) != data[jj]) { @@ -240,13 +240,8 @@ QmlCompiler::generateStoreInstruction(QmlCompiledData &cdata, { instr.type = QmlInstruction::StoreString; instr.storeString.propertyIndex = coreIdx; - if (string->startsWith(QLatin1Char('\'')) && string->endsWith(QLatin1Char('\''))) { - QString unquotedString = string->mid(1, string->length() - 2); - primitive = cdata.indexForString(unquotedString); - } else { - if (primitive == -1) - primitive = cdata.indexForString(*string); - } + if (primitive == -1) + primitive = cdata.indexForString(*string); instr.storeString.value = primitive; } break; @@ -488,18 +483,13 @@ bool QmlCompiler::compile(QmlEngine *engine, ref.component = tref.unit->toComponent(engine); ref.ref = tref.unit; ref.ref->addref(); - } else if (tref.parser) - ref.parser = tref.parser; + } ref.className = unit->data.types().at(ii).toLatin1(); out->types << ref; } Object *root = unit->data.tree(); - if (!root) { - exceptionDescription = QLatin1String("Can't compile because of earlier errors"); - output = 0; - return false; - } + Q_ASSERT(root); compileTree(root); @@ -1498,26 +1488,25 @@ QObject *QmlCompiledData::TypeReference::createInstance(QmlContext *ctxt) const if (rv) QmlEngine::setContextForObject(rv, ctxt); return rv; - } else if (component) { + } else { + Q_ASSERT(component); QObject *rv = component->create(ctxt); QmlContext *ctxt = qmlContext(rv); if(ctxt) { static_cast<QmlContextPrivate *>(QObjectPrivate::get(ctxt))->typeName = className; } return rv; - } else { - return 0; - } + } } const QMetaObject *QmlCompiledData::TypeReference::metaObject() const { - if (type) + if (type) { return type->metaObject(); - else if (component) + } else { + Q_ASSERT(component); return &static_cast<QmlComponentPrivate *>(QObjectPrivate::get(component))->cc->root; - else - return 0; + } } QT_END_NAMESPACE diff --git a/src/declarative/qml/qmlcompiler_p.h b/src/declarative/qml/qmlcompiler_p.h index 9d2f8f7..246dd70 100644 --- a/src/declarative/qml/qmlcompiler_p.h +++ b/src/declarative/qml/qmlcompiler_p.h @@ -72,12 +72,11 @@ public: struct TypeReference { TypeReference() - : type(0), component(0), parser(0), ref(0) {} + : type(0), component(0), ref(0) {} QByteArray className; QmlType *type; QmlComponent *component; - QmlCustomParser *parser; QmlRefCount *ref; QObject *createInstance(QmlContext *) const; diff --git a/src/declarative/qml/qmlcompositetypemanager.cpp b/src/declarative/qml/qmlcompositetypemanager.cpp index f646ca9..e1124a6 100644 --- a/src/declarative/qml/qmlcompositetypemanager.cpp +++ b/src/declarative/qml/qmlcompositetypemanager.cpp @@ -123,7 +123,7 @@ QmlCompositeTypeData::toCompiledComponent(QmlEngine *engine) } QmlCompositeTypeData::TypeReference::TypeReference() -: type(0), unit(0), parser(0) +: type(0), unit(0) { } @@ -309,18 +309,8 @@ void QmlCompositeTypeManager::compile(QmlCompositeTypeData *unit) continue; } - QmlCustomParser *parser = - QmlMetaType::customParser(type); - - if (parser) { - ref.parser = parser; - unit->types << ref; - continue; - } - ref.type = QmlMetaType::qmlType(type); if (ref.type) { - ref.parser = parser; unit->types << ref; continue; } diff --git a/src/declarative/qml/qmlcompositetypemanager_p.h b/src/declarative/qml/qmlcompositetypemanager_p.h index c12dedc..f03b2cb 100644 --- a/src/declarative/qml/qmlcompositetypemanager_p.h +++ b/src/declarative/qml/qmlcompositetypemanager_p.h @@ -92,7 +92,6 @@ struct QmlCompositeTypeData : public QmlRefCount QmlType *type; QmlCompositeTypeData *unit; - QmlCustomParser *parser; }; QList<TypeReference> types; diff --git a/src/declarative/qml/qmlmetatype.cpp b/src/declarative/qml/qmlmetatype.cpp index 63e5c58..7825e5c 100644 --- a/src/declarative/qml/qmlmetatype.cpp +++ b/src/declarative/qml/qmlmetatype.cpp @@ -87,8 +87,6 @@ struct QmlMetaTypeData Names nameToType; typedef QHash<const QMetaObject *, QmlType *> MetaObjects; MetaObjects metaObjectToType; - typedef QHash<QByteArray, QmlCustomParser *> CustomParsers; - CustomParsers customParsers; typedef QHash<int, QmlMetaType::StringConverter> StringConverters; StringConverters stringConverters; @@ -448,30 +446,6 @@ int QmlMetaType::registerType(const QmlPrivate::MetaTypeIds &id, QmlPrivate::Fun return index; } -void QmlMetaType::registerCustomParser(const char *qmlName, - QmlCustomParser *parser) -{ - QWriteLocker lock(metaTypeDataLock()); - QmlMetaTypeData *data = metaTypeData(); - - Q_ASSERT(parser); - if (data->customParsers.contains(qmlName)) { - delete parser; - return; - } - - data->customParsers.insert(qmlName, parser); -} - -QmlCustomParser *QmlMetaType::customParser(const QByteArray &name) -{ - QReadLocker lock(metaTypeDataLock()); - QmlMetaTypeData *data = metaTypeData(); - - return data->customParsers.value(name); -} - - int QmlMetaType::qmlParserStatusCast(int userType) { QReadLocker lock(metaTypeDataLock()); @@ -1167,9 +1141,4 @@ bool QmlMetaType::copy(int type, void *data, const void *copy) return false; } -void qmlRegisterCustomParser(const char *qmlName, QmlCustomParser *parser) -{ - QmlMetaType::registerCustomParser(qmlName, parser); -} - QT_END_NAMESPACE diff --git a/src/declarative/qml/qmlmetatype.h b/src/declarative/qml/qmlmetatype.h index 99f8e93..7ab01a5 100644 --- a/src/declarative/qml/qmlmetatype.h +++ b/src/declarative/qml/qmlmetatype.h @@ -61,9 +61,6 @@ class Q_DECLARATIVE_EXPORT QmlMetaType public: static int registerType(const QmlPrivate::MetaTypeIds &, QmlPrivate::Func, const char *, const QMetaObject *, QmlAttachedPropertiesFunc, int pStatus, int object, QmlPrivate::CreateFunc extFunc, const QMetaObject *extmo, QmlCustomParser *); static int registerInterface(const QmlPrivate::MetaTypeIds &, QmlPrivate::Func, const char *); - static void registerCustomParser(const char *, QmlCustomParser *); - - static QmlCustomParser *customParser(const QByteArray &); static bool copy(int type, void *data, const void *copy = 0); @@ -269,8 +266,6 @@ int qmlRegisterCustomType(const char *qmlName, const char *typeName, QmlCustomPa 0, 0, parser); } -void qmlRegisterCustomParser(const char *qmlName, QmlCustomParser *); - QT_END_NAMESPACE QT_END_HEADER |