aboutsummaryrefslogtreecommitdiffstats
path: root/src/qml/qml/qqmlprivate.h
diff options
context:
space:
mode:
authorFabian Kosmale <fabian.kosmale@qt.io>2021-06-02 16:12:43 +0200
committerFabian Kosmale <fabian.kosmale@qt.io>2021-06-02 23:16:29 +0200
commit4386de70cb0e88d3738acdf5220a3b0f1142996e (patch)
tree9b5456f49ae5037b7220e27b57ce1e94516b835f /src/qml/qml/qqmlprivate.h
parentba2928c787cf0988a7f6a7d424faea96ff707846 (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.h18
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)
{