summaryrefslogtreecommitdiffstats
path: root/src/declarative
diff options
context:
space:
mode:
authorAaron Kennedy <aaron.kennedy@nokia.com>2009-05-12 05:16:49 (GMT)
committerAaron Kennedy <aaron.kennedy@nokia.com>2009-05-12 05:16:49 (GMT)
commit0d1fecac0a0a6d914aa3c00ef6e2c4aadeecc0c0 (patch)
tree7b68f32c65087a38a2c64ae955ba157c78c88504 /src/declarative
parent7c0960a479a250d4c6b46d6fe094ab93564e515b (diff)
downloadQt-0d1fecac0a0a6d914aa3c00ef6e2c4aadeecc0c0.zip
Qt-0d1fecac0a0a6d914aa3c00ef6e2c4aadeecc0c0.tar.gz
Qt-0d1fecac0a0a6d914aa3c00ef6e2c4aadeecc0c0.tar.bz2
More QML tests
Diffstat (limited to 'src/declarative')
-rw-r--r--src/declarative/declarative.pro4
-rw-r--r--src/declarative/qml/qmlcompiler.cpp37
-rw-r--r--src/declarative/qml/qmlcompiler_p.h3
-rw-r--r--src/declarative/qml/qmlcompositetypemanager.cpp12
-rw-r--r--src/declarative/qml/qmlcompositetypemanager_p.h1
-rw-r--r--src/declarative/qml/qmlmetatype.cpp31
-rw-r--r--src/declarative/qml/qmlmetatype.h5
7 files changed, 19 insertions, 74 deletions
diff --git a/src/declarative/declarative.pro b/src/declarative/declarative.pro
index 1e8e82b..fac7c08 100644
--- a/src/declarative/declarative.pro
+++ b/src/declarative/declarative.pro
@@ -7,8 +7,12 @@ DEFINES += QT_NO_USING_NAMESPACE
win32-msvc*|win32-icc:QMAKE_LFLAGS += /BASE:0x66000000
solaris-cc*:QMAKE_CXXFLAGS_RELEASE -= -O2
+LIBS += -lgcov
+
unix:QMAKE_PKGCONFIG_REQUIRES = QtCore QtGui QtXml
+QMAKE_CXXFLAGS = -fprofile-arcs -ftest-coverage
+
include(../qbase.pri)
#modules
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