diff options
-rw-r--r-- | src/qmltyperegistrar/qmltypescreator.cpp | 6 | ||||
-rw-r--r-- | tests/auto/qml/qmltyperegistrar/tst_qmltyperegistrar.cpp | 7 | ||||
-rw-r--r-- | tests/auto/qml/qmltyperegistrar/tst_qmltyperegistrar.h | 10 |
3 files changed, 23 insertions, 0 deletions
diff --git a/src/qmltyperegistrar/qmltypescreator.cpp b/src/qmltyperegistrar/qmltypescreator.cpp index 26261795c7..1119f88282 100644 --- a/src/qmltyperegistrar/qmltypescreator.cpp +++ b/src/qmltyperegistrar/qmltypescreator.cpp @@ -213,6 +213,12 @@ void QmlTypesCreator::writeEnums(const QJsonArray &enums) m_qml.writeStartObject(QLatin1String("Enum")); m_qml.writeScriptBinding(QLatin1String("name"), enquote(obj.value(QLatin1String("name")).toString())); + auto alias = obj.find(QLatin1String("alias")); + if (alias != obj.end()) + m_qml.writeScriptBinding(alias.key(), enquote(alias->toString())); + auto isFlag = obj.find(QLatin1String("isFlag")); + if (isFlag != obj.end() && isFlag->toBool()) + m_qml.writeBooleanBinding(isFlag.key(), true); m_qml.writeArrayBinding(QLatin1String("values"), valueList); m_qml.writeEndObject(); } diff --git a/tests/auto/qml/qmltyperegistrar/tst_qmltyperegistrar.cpp b/tests/auto/qml/qmltyperegistrar/tst_qmltyperegistrar.cpp index 8bdee2f937..b3304963d8 100644 --- a/tests/auto/qml/qmltyperegistrar/tst_qmltyperegistrar.cpp +++ b/tests/auto/qml/qmltyperegistrar/tst_qmltyperegistrar.cpp @@ -58,4 +58,11 @@ void tst_qmltyperegistrar::qmltypesHasFileNames() QVERIFY(qmltypesData.contains("file: \"tst_qmltyperegistrar.h\"")); } +void tst_qmltyperegistrar::qmltypesHasFlags() +{ + QVERIFY(qmltypesData.contains("name: \"Flags\"")); + QVERIFY(qmltypesData.contains("alias: \"Flag\"")); + QVERIFY(qmltypesData.contains("isFlag: true")); +} + QTEST_MAIN(tst_qmltyperegistrar) diff --git a/tests/auto/qml/qmltyperegistrar/tst_qmltyperegistrar.h b/tests/auto/qml/qmltyperegistrar/tst_qmltyperegistrar.h index 37d49efa40..07a28e1976 100644 --- a/tests/auto/qml/qmltyperegistrar/tst_qmltyperegistrar.h +++ b/tests/auto/qml/qmltyperegistrar/tst_qmltyperegistrar.h @@ -37,6 +37,15 @@ class Local : public Foreign { Q_OBJECT QML_ELEMENT +public: + enum Flag { + Flag1 = 0x1, + Flag2 = 0x2, + Flag3 = 0x4, + Flag4 = 0x8 + }; + Q_DECLARE_FLAGS(Flags, Flag) + Q_FLAG(Flags) }; class tst_qmltyperegistrar : public QObject @@ -48,6 +57,7 @@ private slots: void qmltypesHasForeign(); void qmltypesHasHppClassAndNoext(); void qmltypesHasFileNames(); + void qmltypesHasFlags(); private: QByteArray qmltypesData; |