diff options
author | Ulf Hermann <ulf.hermann@qt.io> | 2020-04-29 10:32:26 +0200 |
---|---|---|
committer | Ulf Hermann <ulf.hermann@qt.io> | 2020-05-19 08:36:04 +0200 |
commit | 19ea4e630c70cdab1f7eec4f1a8f278df8915720 (patch) | |
tree | cb5ad929688d5eb5becd74964862db6127b857af /src | |
parent | d29f3d7a62780d74f62330b0e3a0703a72155852 (diff) |
Clean up registration of QEasingCurve
We don't need to register the Type enum for both QtQml and QtQuick.
QtQml is enough. Removing this makes the whole manual value type
registration obsolete. Furthermore, we want QEasingCurve as QML_FOREIGN
as we have several classes with properties of that type. To keep it nice
and tidy, we make the uppercase-named enum holder class a separate type.
Unfortunately, the Type enums differ in one entry:
QEasingCurve::BezierSpline is called Easing.Bezier in QML. Therefore, we
need to keep the custom enum around. We can change all users in
qtdeclarative to use the name from QEasingCurve, though.
Change-Id: Ibbc78d8bbf8938e2a8722f8c09833a0c73394c3d
Reviewed-by: Fabian Kosmale <fabian.kosmale@qt.io>
Diffstat (limited to 'src')
-rw-r--r-- | src/imports/builtins/builtins.qmltypes | 1 | ||||
-rw-r--r-- | src/qml/qml/qqmlvaluetype.cpp | 7 | ||||
-rw-r--r-- | src/qml/qml/qqmlvaluetype_p.h | 55 | ||||
-rw-r--r-- | src/quick/qtquick2.cpp | 1 | ||||
-rw-r--r-- | src/quick/util/qquickanimation.cpp | 4 | ||||
-rw-r--r-- | src/quick/util/qquickvaluetypes.cpp | 7 | ||||
-rw-r--r-- | src/quick/util/qquickvaluetypes_p.h | 6 |
7 files changed, 22 insertions, 59 deletions
diff --git a/src/imports/builtins/builtins.qmltypes b/src/imports/builtins/builtins.qmltypes index 87d599677a..d3897c7b95 100644 --- a/src/imports/builtins/builtins.qmltypes +++ b/src/imports/builtins/builtins.qmltypes @@ -1698,5 +1698,4 @@ Module { } } } - Component { name: "QEasingCurve"; prototype: "QQmlEasingValueType" } } diff --git a/src/qml/qml/qqmlvaluetype.cpp b/src/qml/qml/qqmlvaluetype.cpp index 254f1015e2..f326e86e64 100644 --- a/src/qml/qml/qqmlvaluetype.cpp +++ b/src/qml/qml/qqmlvaluetype.cpp @@ -214,13 +214,6 @@ const QMetaObject *QQmlValueTypeFactory::metaObjectForMetaType(int type) return factoryImpl()->metaObjectForMetaType(type); } -void QQmlValueTypeFactory::registerValueTypes(const char *uri, int versionMajor, int versionMinor) -{ -#if QT_CONFIG(easingcurve) - qmlRegisterValueTypeEnums<QQmlEasingValueType>(uri, versionMajor, versionMinor, "Easing"); -#endif -} - QQmlValueType::QQmlValueType(int typeId, const QMetaObject *gadgetMetaObject) : metaType(typeId) { diff --git a/src/qml/qml/qqmlvaluetype_p.h b/src/qml/qml/qqmlvaluetype_p.h index 056baf87d0..73e6d37908 100644 --- a/src/qml/qml/qqmlvaluetype_p.h +++ b/src/qml/qml/qqmlvaluetype_p.h @@ -123,8 +123,6 @@ public: static bool isValueType(int idx); static QQmlValueType *valueType(int idx); static const QMetaObject *metaObjectForMetaType(int type); - - static void registerValueTypes(const char *uri, int versionMajor, int versionMinor); }; struct QQmlPointFValueType @@ -265,19 +263,13 @@ public: }; #if QT_CONFIG(easingcurve) -struct QQmlEasingValueType +struct QQmlEasingEnums { - QEasingCurve v; Q_GADGET QML_NAMED_ELEMENT(Easing) QML_ADDED_IN_VERSION(2, 0) QML_UNCREATABLE("Use the Type enum.") - Q_PROPERTY(QQmlEasingValueType::Type type READ type WRITE setType FINAL) - Q_PROPERTY(qreal amplitude READ amplitude WRITE setAmplitude FINAL) - Q_PROPERTY(qreal overshoot READ overshoot WRITE setOvershoot FINAL) - Q_PROPERTY(qreal period READ period WRITE setPeriod FINAL) - Q_PROPERTY(QVariantList bezierCurve READ bezierCurve WRITE setBezierCurve FINAL) public: enum Type { Linear = QEasingCurve::Linear, @@ -303,10 +295,28 @@ public: InOutBounce = QEasingCurve::InOutBounce, OutInBounce = QEasingCurve::OutInBounce, InCurve = QEasingCurve::InCurve, OutCurve = QEasingCurve::OutCurve, SineCurve = QEasingCurve::SineCurve, CosineCurve = QEasingCurve::CosineCurve, - Bezier = QEasingCurve::BezierSpline + BezierSpline = QEasingCurve::BezierSpline, + + Bezier = BezierSpline // Evil! Don't use this! }; Q_ENUM(Type) +}; +struct QQmlEasingValueType : public QQmlEasingEnums +{ + QEasingCurve v; + Q_GADGET + QML_ANONYMOUS + QML_FOREIGN(QEasingCurve) + QML_ADDED_IN_VERSION(2, 0) + + Q_PROPERTY(Type type READ type WRITE setType FINAL) + Q_PROPERTY(qreal amplitude READ amplitude WRITE setAmplitude FINAL) + Q_PROPERTY(qreal overshoot READ overshoot WRITE setOvershoot FINAL) + Q_PROPERTY(qreal period READ period WRITE setPeriod FINAL) + Q_PROPERTY(QVariantList bezierCurve READ bezierCurve WRITE setBezierCurve FINAL) + +public: Type type() const; qreal amplitude() const; qreal overshoot() const; @@ -335,31 +345,6 @@ public: QString name() const; }; -template<typename T> -int qmlRegisterValueTypeEnums(const char *uri, int versionMajor, int versionMinor, const char *qmlName) -{ - QQmlPrivate::RegisterType type = { - 0, - - QMetaType::fromType<T*>(), QMetaType(), 0, nullptr, - - QString(), - - uri, QTypeRevision::fromVersion(versionMajor, versionMinor), qmlName, &T::staticMetaObject, - - nullptr, nullptr, - - 0, 0, 0, - - nullptr, nullptr, - - nullptr, - QTypeRevision::zero() - }; - - return QQmlPrivate::qmlregister(QQmlPrivate::TypeRegistration, &type); -} - QT_END_NAMESPACE #endif // QQMLVALUETYPE_P_H diff --git a/src/quick/qtquick2.cpp b/src/quick/qtquick2.cpp index 4ba7e896db..f380aeed4b 100644 --- a/src/quick/qtquick2.cpp +++ b/src/quick/qtquick2.cpp @@ -189,7 +189,6 @@ void QQmlQtQuick2Module::defineModule() qRegisterMetaType<QKeySequence::StandardKey>(); #endif - QQuickValueTypes::registerValueTypes(); QQuickItemsModule::defineModule(); #if QT_CONFIG(accessibility) diff --git a/src/quick/util/qquickanimation.cpp b/src/quick/util/qquickanimation.cpp index e5e25d141b..a65065564b 100644 --- a/src/quick/util/qquickanimation.cpp +++ b/src/quick/util/qquickanimation.cpp @@ -2393,7 +2393,7 @@ void QQuickPropertyAnimation::setTo(const QVariant &t) \li Easing curve for a bounce (exponentially decaying parabolic bounce) function easing out/in: deceleration until halfway, then acceleration. \li \inlineimage qeasingcurve-outinbounce.png \row - \li \c Easing.Bezier + \li \c Easing.BezierSpline \li Custom easing curve defined by the easing.bezierCurve property. \li \endtable @@ -2408,7 +2408,7 @@ void QQuickPropertyAnimation::setTo(const QVariant &t) \c easing.period is only applicable if easing.type is: \c Easing.InElastic, \c Easing.OutElastic, \c Easing.InOutElastic or \c Easing.OutInElastic. - \c easing.bezierCurve is only applicable if easing.type is: \c Easing.Bezier. This property is a list<real> containing + \c easing.bezierCurve is only applicable if easing.type is: \c Easing.BezierSpline. This property is a list<real> containing groups of three points defining a curve from 0,0 to 1,1 - control1, control2, end point: [cx1, cy1, cx2, cy2, endx, endy, ...]. The last point must be 1,1. diff --git a/src/quick/util/qquickvaluetypes.cpp b/src/quick/util/qquickvaluetypes.cpp index d836946214..8fc108de8c 100644 --- a/src/quick/util/qquickvaluetypes.cpp +++ b/src/quick/util/qquickvaluetypes.cpp @@ -46,13 +46,6 @@ QT_BEGIN_NAMESPACE -namespace QQuickValueTypes { - void registerValueTypes() - { - QQmlValueTypeFactory::registerValueTypes("QtQuick", 2, 0); - } -} - QString QQuickColorValueType::toString() const { return v.name(v.alpha() != 255 ? QColor::HexArgb : QColor::HexRgb); diff --git a/src/quick/util/qquickvaluetypes_p.h b/src/quick/util/qquickvaluetypes_p.h index a94f4ac6a7..8859e12322 100644 --- a/src/quick/util/qquickvaluetypes_p.h +++ b/src/quick/util/qquickvaluetypes_p.h @@ -66,12 +66,6 @@ QT_BEGIN_NAMESPACE -namespace QQuickValueTypes { - -void registerValueTypes(); - -} - class QQuickColorValueType { QColor v; |