From db51bfb8553cec39caf5a17e82ff8e471718493f Mon Sep 17 00:00:00 2001 From: Glenn Watson Date: Thu, 12 Jul 2012 14:21:04 +1000 Subject: Fix objectName test in tst_qdeclarativeecmascript. The QtQuick1 library relied on special case handling of the objectName property in qtbase. With Qt5, there is a normal notify signal for objectNameChanged. Remove the QtQuick1 special cases and fall through to the default code path. Task-number: QTBUG-26334 Change-Id: I70f31947b6c74c7125d6f99a33e9b02d7ef52273 Reviewed-by: Michael Brasser --- src/declarative/qml/qdeclarativedata_p.h | 1 - src/declarative/qml/qdeclarativeengine.cpp | 7 ------- src/declarative/qml/qdeclarativefastproperties.cpp | 9 --------- src/declarative/qml/qdeclarativeobjectscriptclass.cpp | 9 ++------- .../qdeclarativeecmascript/tst_qdeclarativeecmascript.cpp | 1 - 5 files changed, 2 insertions(+), 25 deletions(-) diff --git a/src/declarative/qml/qdeclarativedata_p.h b/src/declarative/qml/qdeclarativedata_p.h index 80157bbf..6a4b47d3 100644 --- a/src/declarative/qml/qdeclarativedata_p.h +++ b/src/declarative/qml/qdeclarativedata_p.h @@ -148,7 +148,6 @@ public: } bool hasExtendedData() const { return extendedData != 0; } - QDeclarativeNotifier *objectNameNotifier() const; QHash *attachedProperties() const; private: diff --git a/src/declarative/qml/qdeclarativeengine.cpp b/src/declarative/qml/qdeclarativeengine.cpp index 76c5933d..5d241880 100644 --- a/src/declarative/qml/qdeclarativeengine.cpp +++ b/src/declarative/qml/qdeclarativeengine.cpp @@ -1102,7 +1102,6 @@ public: ~QDeclarativeDataExtended(); QHash attachedProperties; - QDeclarativeNotifier objectNameNotifier; }; QDeclarativeDataExtended::QDeclarativeDataExtended() @@ -1113,12 +1112,6 @@ QDeclarativeDataExtended::~QDeclarativeDataExtended() { } -QDeclarativeNotifier *QDeclarativeData::objectNameNotifier() const -{ - if (!extendedData) extendedData = new QDeclarativeDataExtended; - return &extendedData->objectNameNotifier; -} - QHash *QDeclarativeData::attachedProperties() const { if (!extendedData) extendedData = new QDeclarativeDataExtended; diff --git a/src/declarative/qml/qdeclarativefastproperties.cpp b/src/declarative/qml/qdeclarativefastproperties.cpp index ff2ae9d6..4fa53dfb 100644 --- a/src/declarative/qml/qdeclarativefastproperties.cpp +++ b/src/declarative/qml/qdeclarativefastproperties.cpp @@ -51,19 +51,10 @@ QT_BEGIN_NAMESPACE // primarily read from bindings is a candidate for inclusion as a fast // property. -static void QObject_objectName(QObject *object, void *output, QDeclarativeNotifierEndpoint *endpoint) -{ - if (endpoint) - endpoint->connect(QDeclarativeData::get(object, true)->objectNameNotifier()); - *((QString *)output) = object->objectName(); -} - QDeclarativeFastProperties::QDeclarativeFastProperties() { add(&QDeclarativeItem::staticMetaObject, QDeclarativeItem::staticMetaObject.indexOfProperty("parent"), QDeclarativeItemPrivate::parentProperty); - add(&QObject::staticMetaObject, QObject::staticMetaObject.indexOfProperty("objectName"), - QObject_objectName); } int QDeclarativeFastProperties::accessorIndexForProperty(const QMetaObject *metaObject, int propertyIndex) diff --git a/src/declarative/qml/qdeclarativeobjectscriptclass.cpp b/src/declarative/qml/qdeclarativeobjectscriptclass.cpp index 2e0f9f95..89d5040c 100644 --- a/src/declarative/qml/qdeclarativeobjectscriptclass.cpp +++ b/src/declarative/qml/qdeclarativeobjectscriptclass.cpp @@ -253,13 +253,8 @@ QDeclarativeObjectScriptClass::property(QObject *obj, const Identifier &name) } } else { if (enginePriv->captureProperties && !(lastData->flags & QDeclarativePropertyCache::Data::IsConstant)) { - if (lastData->coreIndex == 0) { - enginePriv->capturedProperties << - QDeclarativeEnginePrivate::CapturedProperty(QDeclarativeData::get(obj, true)->objectNameNotifier()); - } else { - enginePriv->capturedProperties << - QDeclarativeEnginePrivate::CapturedProperty(obj, lastData->coreIndex, lastData->notifyIndex); - } + enginePriv->capturedProperties << + QDeclarativeEnginePrivate::CapturedProperty(obj, lastData->coreIndex, lastData->notifyIndex); } if (QDeclarativeValueTypeFactory::isValueType((uint)lastData->propType)) { diff --git a/tests/auto/declarative/qdeclarativeecmascript/tst_qdeclarativeecmascript.cpp b/tests/auto/declarative/qdeclarativeecmascript/tst_qdeclarativeecmascript.cpp index f07f7010..d561fbb3 100644 --- a/tests/auto/declarative/qdeclarativeecmascript/tst_qdeclarativeecmascript.cpp +++ b/tests/auto/declarative/qdeclarativeecmascript/tst_qdeclarativeecmascript.cpp @@ -2845,7 +2845,6 @@ void tst_qdeclarativeecmascript::objectName() o->setObjectName("world"); - QEXPECT_FAIL("", "QTBUG-26334 - set object name fails", Abort); QCOMPARE(o->property("test1").toString(), QString("world")); QCOMPARE(o->property("test2").toString(), QString("orl")); -- cgit v1.2.3