diff options
author | Ulf Hermann <ulf.hermann@qt.io> | 2024-04-18 14:48:25 +0200 |
---|---|---|
committer | Ulf Hermann <ulf.hermann@qt.io> | 2024-04-24 16:49:06 +0200 |
commit | e6430658b8c1053975308a116fc5667de62e0d1e (patch) | |
tree | 4d0099c54ba4711b8c585a94d5dcda3fc5f44e96 /src | |
parent | f510ea1438e2edd1674d35101071756b96da87a9 (diff) |
QtQml: Inline methods for looking up common metatypes
These are ... common, after all.
Change-Id: I937a298e7030692470b431a67401cdab1dea8f62
Reviewed-by: Olivier De Cannière <olivier.decanniere@qt.io>
Reviewed-by: Fabian Kosmale <fabian.kosmale@qt.io>
Diffstat (limited to 'src')
-rw-r--r-- | src/qml/qml/qqmlpropertycachecreator.cpp | 57 | ||||
-rw-r--r-- | src/qml/qml/qqmlpropertycachecreator_p.h | 58 |
2 files changed, 56 insertions, 59 deletions
diff --git a/src/qml/qml/qqmlpropertycachecreator.cpp b/src/qml/qml/qqmlpropertycachecreator.cpp index f6efe8d358..06b405c7e4 100644 --- a/src/qml/qml/qqmlpropertycachecreator.cpp +++ b/src/qml/qml/qqmlpropertycachecreator.cpp @@ -5,67 +5,10 @@ #include <private/qqmlengine_p.h> -#if QT_CONFIG(regularexpression) -#include <QtCore/qregularexpression.h> -#endif - QT_BEGIN_NAMESPACE QAtomicInt QQmlPropertyCacheCreatorBase::classIndexCounter(0); - -QMetaType QQmlPropertyCacheCreatorBase::metaTypeForPropertyType(QV4::CompiledData::CommonType type) -{ - switch (type) { - case QV4::CompiledData::CommonType::Void: return QMetaType(); - case QV4::CompiledData::CommonType::Var: return QMetaType::fromType<QVariant>(); - case QV4::CompiledData::CommonType::Int: return QMetaType::fromType<int>(); - case QV4::CompiledData::CommonType::Bool: return QMetaType::fromType<bool>(); - case QV4::CompiledData::CommonType::Real: return QMetaType::fromType<qreal>(); - case QV4::CompiledData::CommonType::String: return QMetaType::fromType<QString>(); - case QV4::CompiledData::CommonType::Url: return QMetaType::fromType<QUrl>(); - case QV4::CompiledData::CommonType::Time: return QMetaType::fromType<QTime>(); - case QV4::CompiledData::CommonType::Date: return QMetaType::fromType<QDate>(); - case QV4::CompiledData::CommonType::DateTime: return QMetaType::fromType<QDateTime>(); -#if QT_CONFIG(regularexpression) - case QV4::CompiledData::CommonType::RegExp: return QMetaType::fromType<QRegularExpression>(); -#else - case QV4::CompiledData::CommonType::RegExp: return QMetaType(); -#endif - case QV4::CompiledData::CommonType::Rect: return QMetaType::fromType<QRectF>(); - case QV4::CompiledData::CommonType::Point: return QMetaType::fromType<QPointF>(); - case QV4::CompiledData::CommonType::Size: return QMetaType::fromType<QSizeF>(); - case QV4::CompiledData::CommonType::Invalid: break; - }; - return QMetaType {}; -} - -QMetaType QQmlPropertyCacheCreatorBase::listTypeForPropertyType(QV4::CompiledData::CommonType type) -{ - switch (type) { - case QV4::CompiledData::CommonType::Void: return QMetaType(); - case QV4::CompiledData::CommonType::Var: return QMetaType::fromType<QList<QVariant>>(); - case QV4::CompiledData::CommonType::Int: return QMetaType::fromType<QList<int>>(); - case QV4::CompiledData::CommonType::Bool: return QMetaType::fromType<QList<bool>>(); - case QV4::CompiledData::CommonType::Real: return QMetaType::fromType<QList<qreal>>(); - case QV4::CompiledData::CommonType::String: return QMetaType::fromType<QList<QString>>(); - case QV4::CompiledData::CommonType::Url: return QMetaType::fromType<QList<QUrl>>(); - case QV4::CompiledData::CommonType::Time: return QMetaType::fromType<QList<QTime>>(); - case QV4::CompiledData::CommonType::Date: return QMetaType::fromType<QList<QDate>>(); - case QV4::CompiledData::CommonType::DateTime: return QMetaType::fromType<QList<QDateTime>>(); -#if QT_CONFIG(regularexpression) - case QV4::CompiledData::CommonType::RegExp: return QMetaType::fromType<QList<QRegularExpression>>(); -#else - case QV4::CompiledData::CommonType::RegExp: return QMetaType(); -#endif - case QV4::CompiledData::CommonType::Rect: return QMetaType::fromType<QList<QRectF>>(); - case QV4::CompiledData::CommonType::Point: return QMetaType::fromType<QList<QPointF>>(); - case QV4::CompiledData::CommonType::Size: return QMetaType::fromType<QList<QSizeF>>(); - case QV4::CompiledData::CommonType::Invalid: break; - }; - return QMetaType {}; -} - template<typename BaseNameHandler, typename FailHandler> auto processUrlForClassName( const QUrl &url, BaseNameHandler &&baseNameHandler, FailHandler &&failHandler) diff --git a/src/qml/qml/qqmlpropertycachecreator_p.h b/src/qml/qml/qqmlpropertycachecreator_p.h index 93987a1123..4d49ca6ed4 100644 --- a/src/qml/qml/qqmlpropertycachecreator_p.h +++ b/src/qml/qml/qqmlpropertycachecreator_p.h @@ -24,6 +24,11 @@ #include <private/qqmlsignalnames_p.h> #include <QScopedValueRollback> + +#if QT_CONFIG(regularexpression) +#include <QtCore/qregularexpression.h> +#endif + #include <vector> QT_BEGIN_NAMESPACE @@ -67,8 +72,57 @@ struct QQmlPropertyCacheCreatorBase public: static QAtomicInt Q_AUTOTEST_EXPORT classIndexCounter; - static QMetaType metaTypeForPropertyType(QV4::CompiledData::CommonType type); - static QMetaType listTypeForPropertyType(QV4::CompiledData::CommonType type); + static QMetaType metaTypeForPropertyType(QV4::CompiledData::CommonType type) + { + switch (type) { + case QV4::CompiledData::CommonType::Void: return QMetaType(); + case QV4::CompiledData::CommonType::Var: return QMetaType::fromType<QVariant>(); + case QV4::CompiledData::CommonType::Int: return QMetaType::fromType<int>(); + case QV4::CompiledData::CommonType::Bool: return QMetaType::fromType<bool>(); + case QV4::CompiledData::CommonType::Real: return QMetaType::fromType<qreal>(); + case QV4::CompiledData::CommonType::String: return QMetaType::fromType<QString>(); + case QV4::CompiledData::CommonType::Url: return QMetaType::fromType<QUrl>(); + case QV4::CompiledData::CommonType::Time: return QMetaType::fromType<QTime>(); + case QV4::CompiledData::CommonType::Date: return QMetaType::fromType<QDate>(); + case QV4::CompiledData::CommonType::DateTime: return QMetaType::fromType<QDateTime>(); +#if QT_CONFIG(regularexpression) + case QV4::CompiledData::CommonType::RegExp: return QMetaType::fromType<QRegularExpression>(); +#else + case QV4::CompiledData::CommonType::RegExp: return QMetaType(); +#endif + case QV4::CompiledData::CommonType::Rect: return QMetaType::fromType<QRectF>(); + case QV4::CompiledData::CommonType::Point: return QMetaType::fromType<QPointF>(); + case QV4::CompiledData::CommonType::Size: return QMetaType::fromType<QSizeF>(); + case QV4::CompiledData::CommonType::Invalid: break; + }; + return QMetaType {}; + } + + static QMetaType listTypeForPropertyType(QV4::CompiledData::CommonType type) + { + switch (type) { + case QV4::CompiledData::CommonType::Void: return QMetaType(); + case QV4::CompiledData::CommonType::Var: return QMetaType::fromType<QList<QVariant>>(); + case QV4::CompiledData::CommonType::Int: return QMetaType::fromType<QList<int>>(); + case QV4::CompiledData::CommonType::Bool: return QMetaType::fromType<QList<bool>>(); + case QV4::CompiledData::CommonType::Real: return QMetaType::fromType<QList<qreal>>(); + case QV4::CompiledData::CommonType::String: return QMetaType::fromType<QList<QString>>(); + case QV4::CompiledData::CommonType::Url: return QMetaType::fromType<QList<QUrl>>(); + case QV4::CompiledData::CommonType::Time: return QMetaType::fromType<QList<QTime>>(); + case QV4::CompiledData::CommonType::Date: return QMetaType::fromType<QList<QDate>>(); + case QV4::CompiledData::CommonType::DateTime: return QMetaType::fromType<QList<QDateTime>>(); +#if QT_CONFIG(regularexpression) + case QV4::CompiledData::CommonType::RegExp: return QMetaType::fromType<QList<QRegularExpression>>(); +#else + case QV4::CompiledData::CommonType::RegExp: return QMetaType(); +#endif + case QV4::CompiledData::CommonType::Rect: return QMetaType::fromType<QList<QRectF>>(); + case QV4::CompiledData::CommonType::Point: return QMetaType::fromType<QList<QPointF>>(); + case QV4::CompiledData::CommonType::Size: return QMetaType::fromType<QList<QSizeF>>(); + case QV4::CompiledData::CommonType::Invalid: break; + }; + return QMetaType {}; + } static bool canCreateClassNameTypeByUrl(const QUrl &url); static QByteArray createClassNameTypeByUrl(const QUrl &url); |