summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJing Bai <jing.bai@digia.com>2012-12-04 19:39:01 +0100
committerThe Qt Project <gerrit-noreply@qt-project.org>2012-12-05 14:33:25 +0100
commitf291ccc0b160c87308d0845877b3a9dd492dc712 (patch)
treedcbd7a8d2f49c0dde57bf4dae09fcc0c3ea531eb
parent905537e032095790b4ac1607c5ca0de2ad412476 (diff)
remove unnessary reference to QGuiApplicationv5.0.0-rc1
In QDeclarativeEngine initialization,it goes through all types, including Font in Gui. This causes a crash when using QDeclarativeEngine with QCoreApplication. Task-number: QTBUG-28375 Change-Id: Idce2a046db7e52a1c13b8c5c0315e36873f7e27d Reviewed-by: Pierre Rossi <pierre.rossi@gmail.com>
-rw-r--r--src/declarative/qml/qdeclarativevaluetype.cpp12
1 files changed, 11 insertions, 1 deletions
diff --git a/src/declarative/qml/qdeclarativevaluetype.cpp b/src/declarative/qml/qdeclarativevaluetype.cpp
index 00b9a4de..9043760a 100644
--- a/src/declarative/qml/qdeclarativevaluetype.cpp
+++ b/src/declarative/qml/qdeclarativevaluetype.cpp
@@ -80,9 +80,19 @@ int qmlRegisterValueTypeEnums(const char *uri, int versionMajor, int versionMino
QDeclarativeValueTypeFactory::QDeclarativeValueTypeFactory()
{
+ static int isGuiApp = -1;
+ memset(valueTypes, 0, sizeof(valueTypes));
+ /*FIXME: is there a better way to tell if an app is Gui or not?*/
+ if (isGuiApp == -1)
+ isGuiApp = (int) qApp->inherits("QGuiApplication");
// ### Optimize
- for (unsigned int ii = 0; ii < (QVariant::UserType - 1); ++ii)
+ for (unsigned int ii = 0; ii <= QVariant::LastCoreType; ++ii)
valueTypes[ii] = valueType(ii);
+
+ if (isGuiApp) {
+ for (unsigned int ii = QVariant::LastCoreType + 1; ii < (QVariant::UserType - 1); ++ii)
+ valueTypes[ii] = valueType(ii);
+ }
}
QDeclarativeValueTypeFactory::~QDeclarativeValueTypeFactory()