aboutsummaryrefslogtreecommitdiffstats
path: root/src/qml/debugger/qqmlenginedebugservice.cpp
diff options
context:
space:
mode:
authorSimjees Abraham <simjees.abraham@nokia.com>2012-05-16 15:20:59 +0200
committerQt by Nokia <qt-info@nokia.com>2012-05-21 12:40:55 +0200
commitfe652f6cfb6b8eef57854e90ee6d8a9d51573722 (patch)
tree19b62756526bc85cb15c45920984680eb634efa0 /src/qml/debugger/qqmlenginedebugservice.cpp
parentd3ee501379c744206ce499a8f6697c7b547fdaeb (diff)
Qml : Resetting binding corrected
Resetting the binding for property corrected in case the property is nested (eg: font.bold) Task-number: QTCREATORBUG-6294 Change-Id: I39cca54c17860c4e6df1cf864cc2f70214d50c8f Reviewed-by: Christiaan Janssen <christiaan.janssen@nokia.com>
Diffstat (limited to 'src/qml/debugger/qqmlenginedebugservice.cpp')
-rw-r--r--src/qml/debugger/qqmlenginedebugservice.cpp27
1 files changed, 20 insertions, 7 deletions
diff --git a/src/qml/debugger/qqmlenginedebugservice.cpp b/src/qml/debugger/qqmlenginedebugservice.cpp
index 068bc36ebc..764ba6bbe6 100644
--- a/src/qml/debugger/qqmlenginedebugservice.cpp
+++ b/src/qml/debugger/qqmlenginedebugservice.cpp
@@ -651,7 +651,11 @@ bool QQmlEngineDebugService::resetBinding(int objectId, const QString &propertyN
QQmlContext *context = qmlContext(object);
if (object && context) {
- if (object->property(propertyName.toLatin1()).isValid()) {
+ QString parentProperty = propertyName;
+ if (propertyName.indexOf(QLatin1Char('.')) != -1)
+ parentProperty = propertyName.left(propertyName.indexOf(QLatin1Char('.')));
+
+ if (object->property(parentProperty.toLatin1()).isValid()) {
QQmlProperty property(object, propertyName);
QQmlAbstractBinding *oldBinding = QQmlPropertyPrivate::binding(property);
if (oldBinding) {
@@ -669,7 +673,7 @@ bool QQmlEngineDebugService::resetBinding(int objectId, const QString &propertyN
// overwrite with default value
if (QQmlType *objType = QQmlMetaType::qmlType(object->metaObject())) {
if (QObject *emptyObject = objType->create()) {
- if (emptyObject->property(propertyName.toLatin1()).isValid()) {
+ if (emptyObject->property(parentProperty.toLatin1()).isValid()) {
QVariant defaultValue = QQmlProperty(emptyObject, propertyName).read();
if (defaultValue.isValid()) {
setBinding(objectId, propertyName, defaultValue, true);
@@ -679,15 +683,24 @@ bool QQmlEngineDebugService::resetBinding(int objectId, const QString &propertyN
}
}
}
- } else if (hasValidSignal(object, propertyName)) {
+ return true;
+ }
+
+ if (hasValidSignal(object, propertyName)) {
QQmlProperty property(object, propertyName, context);
QQmlPropertyPrivate::setSignalExpression(property, 0);
- } else {
- if (m_statesDelegate)
- m_statesDelegate->resetBindingForInvalidProperty(object, propertyName);
+ return true;
}
+
+ if (m_statesDelegate) {
+ m_statesDelegate->resetBindingForInvalidProperty(object, propertyName);
+ return true;
+ }
+
+ return false;
}
- return true;
+ // object or context null.
+ return false;
}
bool QQmlEngineDebugService::setMethodBody(int objectId, const QString &method, const QString &body)