diff --git a/share/qtcreator/qml/qmlpuppet/qml2puppet/instances/objectnodeinstance.cpp b/share/qtcreator/qml/qmlpuppet/qml2puppet/instances/objectnodeinstance.cpp index 3db4add25c0..589c47883fc 100644 --- a/share/qtcreator/qml/qmlpuppet/qml2puppet/instances/objectnodeinstance.cpp +++ b/share/qtcreator/qml/qmlpuppet/qml2puppet/instances/objectnodeinstance.cpp @@ -94,7 +94,7 @@ static bool isPropertyBlackListed(const QmlDesigner::PropertyName &propertyName) namespace QmlDesigner { namespace Internal { -QHash ObjectNodeInstance::m_enumationValueHash; +QHash ObjectNodeInstance::m_enumationValueHash; ObjectNodeInstance::ObjectNodeInstance(QObject *object) : m_object(object), @@ -1328,27 +1328,31 @@ void ObjectNodeInstance::doComponentCompleteRecursive(QObject *object, NodeInsta } } -static QHash enumationValuesFromMetaEnum(const QMetaEnum &metaEnum) +static QHash enumationValuesFromMetaEnum(const QMetaEnum &metaEnum) { - QHash enumationValues; + QHash enumationValues; for (int index = 0; index < metaEnum.keyCount(); index++) { EnumerationName enumerationName = EnumerationName(metaEnum.scope()) + "." + metaEnum.key(index); - enumationValues.insert(enumerationName, metaEnum.value(index)); + enumationValues.insert(enumerationName, QVariant::fromValue(metaEnum.value(index))); + qDebug() << __FUNCTION__ << enumerationName << metaEnum.value(index); } return enumationValues; } -static QHash collectEnumationValues(const Enumeration &enumeration) +static QHash collectEnumationValues(const Enumeration &enumeration) { - QHash enumationValues; + QHash enumationValues; EnumerationName enumerationScope = enumeration.scope(); - const QMetaObject *metaObject = QMetaType::metaObjectForType(QMetaType::type(enumerationScope.data())); + const QMetaObject *metaObject = QMetaType::metaObjectForType(QMetaType::type(enumerationScope.constData())); if (metaObject) { int enumeratorCount = metaObject->enumeratorOffset() + metaObject->enumeratorCount(); for (int index = metaObject->enumeratorOffset(); index < enumeratorCount; index++) enumationValues.unite(enumationValuesFromMetaEnum(metaObject->enumerator(index))); + } else { + enumationValues.insert(enumeration.toEnumerationName(), QVariant::fromValue(enumeration.nameToString())); } + return enumationValues; } @@ -1358,7 +1362,7 @@ QVariant ObjectNodeInstance::enumationValue(const Enumeration &enumeration) if (!m_enumationValueHash.contains(enumerationName)) m_enumationValueHash.unite(collectEnumationValues(enumeration)); - return QVariant::fromValue(m_enumationValueHash.value(enumerationName)); + return m_enumationValueHash.value(enumerationName); } ObjectNodeInstance::Pointer ObjectNodeInstance::parentInstance() const diff --git a/share/qtcreator/qml/qmlpuppet/qml2puppet/instances/objectnodeinstance.h b/share/qtcreator/qml/qmlpuppet/qml2puppet/instances/objectnodeinstance.h index 2d4635b372f..239b7744912 100644 --- a/share/qtcreator/qml/qmlpuppet/qml2puppet/instances/objectnodeinstance.h +++ b/share/qtcreator/qml/qmlpuppet/qml2puppet/instances/objectnodeinstance.h @@ -220,7 +220,7 @@ private: qint32 m_instanceId; bool m_deleteHeldInstance; bool m_isInLayoutable; - static QHash m_enumationValueHash; + static QHash m_enumationValueHash; }; } // namespace Internal