aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--src/qmltyperegistrar/qmltypescreator.cpp6
-rw-r--r--tests/auto/qml/qmltyperegistrar/tst_qmltyperegistrar.cpp7
-rw-r--r--tests/auto/qml/qmltyperegistrar/tst_qmltyperegistrar.h10
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;