aboutsummaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorUlf Hermann <ulf.hermann@qt.io>2024-04-18 14:48:25 +0200
committerUlf Hermann <ulf.hermann@qt.io>2024-04-24 16:49:06 +0200
commite6430658b8c1053975308a116fc5667de62e0d1e (patch)
tree4d0099c54ba4711b8c585a94d5dcda3fc5f44e96 /src
parentf510ea1438e2edd1674d35101071756b96da87a9 (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.cpp57
-rw-r--r--src/qml/qml/qqmlpropertycachecreator_p.h58
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);