diff options
author | Jing Bai <jing.bai@digia.com> | 2012-12-04 19:39:01 +0100 |
---|---|---|
committer | The Qt Project <gerrit-noreply@qt-project.org> | 2012-12-05 14:33:25 +0100 |
commit | f291ccc0b160c87308d0845877b3a9dd492dc712 (patch) | |
tree | dcbd7a8d2f49c0dde57bf4dae09fcc0c3ea531eb | |
parent | 905537e032095790b4ac1607c5ca0de2ad412476 (diff) | |
download | qtquick1-5.0.0-rc1.tar.gz |
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.cpp | 12 |
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() |