forked from qt-creator/qt-creator
QmlPuppet: Adding keepBindingFromGettingDeleted to QmlPrivateGate
Change-Id: I51d0d29939b6fbd3fc309c092654f373abd8f179 Reviewed-by: Tim Jenssen <tim.jenssen@theqtcompany.com>
This commit is contained in:
committed by
Thomas Hartmann
parent
c6047e06e6
commit
f3abe73956
@@ -425,8 +425,8 @@ void ObjectNodeInstance::setPropertyVariant(const PropertyName &name, const QVar
|
|||||||
nodeInstanceServer()->removeFilePropertyFromFileSystemWatcher(object(), name, path);
|
nodeInstanceServer()->removeFilePropertyFromFileSystemWatcher(object(), name, path);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (hasValidResetBinding(name)) { //####
|
if (hasValidResetBinding(name)) {
|
||||||
QQmlPropertyPrivate::setBinding(property, 0, QQmlPropertyPrivate::BypassInterceptor | QQmlPropertyPrivate::DontRemoveBinding);
|
QmlPrivateGate::keepBindingFromGettingDeleted(object(), context(), name);
|
||||||
}
|
}
|
||||||
|
|
||||||
bool isWritten = property.write(convertSpecialCharacter(adjustedValue));
|
bool isWritten = property.write(convertSpecialCharacter(adjustedValue));
|
||||||
|
@@ -113,6 +113,14 @@ void DesignerCustomObjectData::setPropertyBinding(QObject *object, QQmlContext *
|
|||||||
data->setPropertyBinding(context, propertyName, expression);
|
data->setPropertyBinding(context, propertyName, expression);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void DesignerCustomObjectData::keepBindingFromGettingDeleted(QObject *object, QQmlContext *context, const PropertyName &propertyName)
|
||||||
|
{
|
||||||
|
DesignerCustomObjectData* data = get(object);
|
||||||
|
|
||||||
|
if (data)
|
||||||
|
data->keepBindingFromGettingDeleted(context, propertyName);
|
||||||
|
}
|
||||||
|
|
||||||
void DesignerCustomObjectData::populateResetHashes()
|
void DesignerCustomObjectData::populateResetHashes()
|
||||||
{
|
{
|
||||||
PropertyNameList propertyNameList = QmlPrivateGate::propertyNameListForWritableProperties(object());
|
PropertyNameList propertyNameList = QmlPrivateGate::propertyNameListForWritableProperties(object());
|
||||||
@@ -245,6 +253,13 @@ void DesignerCustomObjectData::setPropertyBinding(QQmlContext *context, const Pr
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void DesignerCustomObjectData::keepBindingFromGettingDeleted(QQmlContext *context, const PropertyName &propertyName)
|
||||||
|
{
|
||||||
|
QQmlProperty property(object(), propertyName, context);
|
||||||
|
QQmlPropertyPrivate::setBinding(property, 0, QQmlPropertyPrivate::BypassInterceptor
|
||||||
|
| QQmlPropertyPrivate::DontRemoveBinding);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
} // namespace QmlPrivateGate
|
} // namespace QmlPrivateGate
|
||||||
} // namespace Internal
|
} // namespace Internal
|
||||||
|
@@ -58,6 +58,7 @@ public:
|
|||||||
static bool hasValidResetBinding(QObject *object, const PropertyName &propertyName);
|
static bool hasValidResetBinding(QObject *object, const PropertyName &propertyName);
|
||||||
static bool hasBindingForProperty(QObject *object, QQmlContext *context, const PropertyName &propertyName, bool *hasChanged);
|
static bool hasBindingForProperty(QObject *object, QQmlContext *context, const PropertyName &propertyName, bool *hasChanged);
|
||||||
static void setPropertyBinding(QObject *object, QQmlContext *context, const PropertyName &propertyName, const QString &expression);
|
static void setPropertyBinding(QObject *object, QQmlContext *context, const PropertyName &propertyName, const QString &expression);
|
||||||
|
static void keepBindingFromGettingDeleted(QObject *object, QQmlContext *context, const PropertyName &propertyName);
|
||||||
|
|
||||||
private:
|
private:
|
||||||
DesignerCustomObjectData(QObject *object);
|
DesignerCustomObjectData(QObject *object);
|
||||||
@@ -69,6 +70,7 @@ private:
|
|||||||
QQmlAbstractBinding *getResetBinding(const PropertyName &propertyName) const;
|
QQmlAbstractBinding *getResetBinding(const PropertyName &propertyName) const;
|
||||||
bool hasBindingForProperty(QQmlContext *context, const PropertyName &propertyName, bool *hasChanged) const;
|
bool hasBindingForProperty(QQmlContext *context, const PropertyName &propertyName, bool *hasChanged) const;
|
||||||
void setPropertyBinding(QQmlContext *context, const PropertyName &propertyName, const QString &expression);
|
void setPropertyBinding(QQmlContext *context, const PropertyName &propertyName, const QString &expression);
|
||||||
|
void keepBindingFromGettingDeleted(QQmlContext *context, const PropertyName &propertyName);
|
||||||
|
|
||||||
QObject *m_object;
|
QObject *m_object;
|
||||||
QHash<PropertyName, QVariant> m_resetValueHash;
|
QHash<PropertyName, QVariant> m_resetValueHash;
|
||||||
|
@@ -510,6 +510,11 @@ void doComponentCompleteRecursive(QObject *object, NodeInstanceServer *nodeInsta
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void keepBindingFromGettingDeleted(QObject *object, QQmlContext *context, const PropertyName &propertyName)
|
||||||
|
{
|
||||||
|
DesignerCustomObjectData::keepBindingFromGettingDeleted(object, context, propertyName);
|
||||||
|
}
|
||||||
|
|
||||||
ComponentCompleteDisabler::ComponentCompleteDisabler()
|
ComponentCompleteDisabler::ComponentCompleteDisabler()
|
||||||
{
|
{
|
||||||
DesignerSupport::disableComponentComplete();
|
DesignerSupport::disableComponentComplete();
|
||||||
|
@@ -88,6 +88,7 @@ public:
|
|||||||
bool hasValidResetBinding(QObject *object, const PropertyName &propertyName);
|
bool hasValidResetBinding(QObject *object, const PropertyName &propertyName);
|
||||||
bool hasBindingForProperty(QObject *object, QQmlContext *context, const PropertyName &propertyName, bool *hasChanged);
|
bool hasBindingForProperty(QObject *object, QQmlContext *context, const PropertyName &propertyName, bool *hasChanged);
|
||||||
void setPropertyBinding(QObject *object, QQmlContext *context, const PropertyName &propertyName, const QString &expression);
|
void setPropertyBinding(QObject *object, QQmlContext *context, const PropertyName &propertyName, const QString &expression);
|
||||||
|
void keepBindingFromGettingDeleted(QObject *object, QQmlContext *context, const PropertyName &propertyName);
|
||||||
|
|
||||||
void doComponentCompleteRecursive(QObject *object, NodeInstanceServer *nodeInstanceServer);
|
void doComponentCompleteRecursive(QObject *object, NodeInstanceServer *nodeInstanceServer);
|
||||||
|
|
||||||
|
Reference in New Issue
Block a user