From 2f5c906d18c7613d87c1e7abdd51ac4b2338224c Mon Sep 17 00:00:00 2001 From: Marco Bubke <marco.bubke@nokia.com> Date: Mon, 26 Apr 2010 13:54:36 +0200 Subject: [PATCH] Improve NodeInstanceMetaObject workaround for NaN values The old was wrong in the assumption that the pointer is allways a variant. Reviewed-by: kkoehne --- .../core/instances/nodeinstancemetaobject.cpp | 13 +++++++++++++ 1 file changed, 13 insertions(+) diff --git a/src/plugins/qmldesigner/core/instances/nodeinstancemetaobject.cpp b/src/plugins/qmldesigner/core/instances/nodeinstancemetaobject.cpp index bdd11310325..6d0a53514e7 100644 --- a/src/plugins/qmldesigner/core/instances/nodeinstancemetaobject.cpp +++ b/src/plugins/qmldesigner/core/instances/nodeinstancemetaobject.cpp @@ -34,11 +34,24 @@ int NodeInstanceMetaObject::metaCall(QMetaObject::Call call, int id, void **a) int metaCallReturnValue = -1; if (call == QMetaObject::WriteProperty + && property(id).userType() == QMetaType::QVariant && reinterpret_cast<QVariant *>(a[0])->type() == QVariant::Double && qIsNaN(reinterpret_cast<QVariant *>(a[0])->toDouble())) { return -1; } + if (call == QMetaObject::WriteProperty + && property(id).userType() == QMetaType::Double + && qIsNaN(*reinterpret_cast<double*>(a[0]))) { + return -1; + } + + if (call == QMetaObject::WriteProperty + && property(id).userType() == QMetaType::Float + && qIsNaN(*reinterpret_cast<float*>(a[0]))) { + return -1; + } + QVariant oldValue; if (call == QMetaObject::WriteProperty && !property(id).hasNotifySignal()) -- GitLab