summaryrefslogtreecommitdiffstats
path: root/src/declarative/qml/qdeclarativevaluetype.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/declarative/qml/qdeclarativevaluetype.cpp')
-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()