diff options
author | Fabian Kosmale <fabian.kosmale@qt.io> | 2021-06-02 16:12:43 +0200 |
---|---|---|
committer | Fabian Kosmale <fabian.kosmale@qt.io> | 2021-06-02 23:16:29 +0200 |
commit | 4386de70cb0e88d3738acdf5220a3b0f1142996e (patch) | |
tree | 9b5456f49ae5037b7220e27b57ce1e94516b835f /src/qml/qml/qqmlprivate.h | |
parent | ba2928c787cf0988a7f6a7d424faea96ff707846 (diff) |
Add QML_EXTRA_VERSION for adding extra QML versions
Currently internal, as the only user might be qtcharts.
Change-Id: I40fc5295de6375c082d82ebeeb73bf4cd6dc7e4a
Reviewed-by: Fabian Kosmale <fabian.kosmale@qt.io>
Reviewed-by: Ulf Hermann <ulf.hermann@qt.io>
Diffstat (limited to 'src/qml/qml/qqmlprivate.h')
-rw-r--r-- | src/qml/qml/qqmlprivate.h | 18 |
1 files changed, 16 insertions, 2 deletions
diff --git a/src/qml/qml/qqmlprivate.h b/src/qml/qml/qqmlprivate.h index 2038d7042a..71855df966 100644 --- a/src/qml/qml/qqmlprivate.h +++ b/src/qml/qml/qqmlprivate.h @@ -724,13 +724,16 @@ namespace QQmlPrivate bool alreadyCalled = false; }; - static int indexOfOwnClassInfo(const QMetaObject *metaObject, const char *key) + static int indexOfOwnClassInfo(const QMetaObject *metaObject, const char *key, int startOffset = -1) { if (!metaObject || !key) return -1; const int offset = metaObject->classInfoOffset(); - for (int i = metaObject->classInfoCount() + offset - 1; i >= offset; --i) + const int start = (startOffset == -1) + ? (metaObject->classInfoCount() + offset - 1) + : startOffset; + for (int i = start; i >= offset; --i) if (qstrcmp(key, metaObject->classInfo(i).name()) == 0) { return i; } @@ -751,6 +754,17 @@ namespace QQmlPrivate QByteArray(metaObject->classInfo(index).value()).toInt()); } + inline QList<QTypeRevision> revisionClassInfos(const QMetaObject *metaObject, const char *key) + { + QList<QTypeRevision> revisions; + for (int index = indexOfOwnClassInfo(metaObject, key); index != -1; + index = indexOfOwnClassInfo(metaObject, key, index - 1)) { + revisions.push_back(QTypeRevision::fromEncodedVersion( + QByteArray(metaObject->classInfo(index).value()).toInt())); + } + return revisions; + } + inline bool boolClassInfo(const QMetaObject *metaObject, const char *key, bool defaultValue = false) { |