![]() |
Qt 6.x
The Qt SDK
|
#include <qqmlabstractbinding_p.h>
Classes | |
struct | RefCount |
Public Types | |
enum | Kind { ValueTypeProxy , QmlBinding , PropertyToPropertyBinding } |
enum | TargetTag { NoTargetTag = 0x0 , UpdatingBinding = 0x1 , BindingEnabled = 0x2 } |
enum | NextBindingTag { NoBindingTag = 0x0 , AddedToObject = 0x1 , CanUseAccessor = 0x2 } |
typedef QExplicitlySharedDataPointer< QQmlAbstractBinding > | Ptr |
Public Member Functions | |
virtual | ~QQmlAbstractBinding () |
virtual QString | expression () const |
virtual Kind | kind () const =0 |
QQmlPropertyIndex | targetPropertyIndex () const |
QObject * | targetObject () const |
void | setTarget (const QQmlProperty &) |
bool | setTarget (QObject *, const QQmlPropertyData &, const QQmlPropertyData *valueType) |
bool | setTarget (QObject *, int coreIndex, bool coreIsAlias, int valueTypeIndex) |
virtual void | setEnabled (bool e, QQmlPropertyData::WriteFlags f=QQmlPropertyData::DontRemoveBinding)=0 |
void | addToObject () |
Add this binding to object. | |
void | removeFromObject () |
Remove the binding from the object. | |
QQmlAbstractBinding * | nextBinding () const |
bool | canUseAccessor () const |
void | setCanUseAccessor (bool canUseAccessor) |
Static Public Member Functions | |
static void | printBindingLoopError (const QQmlProperty &prop) |
Public Attributes | |
RefCount | ref |
Protected Member Functions | |
QQmlAbstractBinding () | |
void | setAddedToObject (bool v) |
bool | isAddedToObject () const |
void | setNextBinding (QQmlAbstractBinding *) |
void | getPropertyData (const QQmlPropertyData **propertyData, QQmlPropertyData *valueTypeData) const |
bool | updatingFlag () const |
void | setUpdatingFlag (bool) |
bool | enabledFlag () const |
void | setEnabledFlag (bool) |
void | updateCanUseAccessor () |
Protected Attributes | |
QQmlPropertyIndex | m_targetIndex |
QTaggedPointer< QObject, TargetTags > | m_target |
QTaggedPointer< QQmlAbstractBinding, NextBindingTags > | m_nextBinding |
Friends | |
class | QQmlAnyBinding |
class | QQmlData |
class | QQmlValueTypeProxyBinding |
class | QQmlObjectCreator |
Definition at line 28 of file qqmlabstractbinding_p.h.
Definition at line 42 of file qqmlabstractbinding_p.h.
Enumerator | |
---|---|
ValueTypeProxy | |
QmlBinding | |
PropertyToPropertyBinding |
Definition at line 34 of file qqmlabstractbinding_p.h.
Enumerator | |
---|---|
NoBindingTag | |
AddedToObject | |
CanUseAccessor |
Definition at line 91 of file qqmlabstractbinding_p.h.
Enumerator | |
---|---|
NoTargetTag | |
UpdatingBinding | |
BindingEnabled |
Definition at line 84 of file qqmlabstractbinding_p.h.
|
protected |
Definition at line 13 of file qqmlabstractbinding.cpp.
References isAddedToObject(), and Q_ASSERT.
|
virtual |
Definition at line 19 of file qqmlabstractbinding.cpp.
References QTaggedPointer< T, Tag >::data(), QQmlAbstractBinding::RefCount::deref(), isAddedToObject(), m_nextBinding, Q_ASSERT, and ref.
void QQmlAbstractBinding::addToObject | ( | ) |
Add this binding to object.
This transfers ownership of the binding to the object, marks the object's property as being bound.
However, it does not enable the binding itself or call update() on it.
Definition at line 36 of file qqmlabstractbinding.cpp.
References QQmlPropertyIndex::coreIndex(), QQmlData::get(), isAddedToObject(), nextBinding(), proxy, Q_ASSERT, QQmlValueTypeProxyBinding, setAddedToObject(), setNextBinding(), targetObject(), targetPropertyIndex(), and ValueTypeProxy.
Referenced by QQmlPropertyPrivate::setBinding().
|
inline |
Definition at line 70 of file qqmlabstractbinding_p.h.
Referenced by QQmlBinding::update(), and QQmlPropertyToPropertyBinding::update().
|
inlineprotected |
Definition at line 163 of file qqmlabstractbinding_p.h.
References BindingEnabled, m_target, and QTaggedPointer< T, Tag >::tag().
Referenced by QQmlPropertyToPropertyBinding::setEnabled(), QQmlBinding::setEnabled(), QQmlBinding::update(), and QQmlPropertyToPropertyBinding::update().
|
virtual |
Reimplemented in QQmlBinding.
Definition at line 282 of file qqmlabstractbinding.cpp.
|
protected |
Definition at line 163 of file qqmlabstractbinding.cpp.
References QQmlPropertyIndex::coreIndex(), QTaggedPointer< T, Tag >::data(), QQmlPropertyData::flagsForProperty(), QQmlData::get(), QQmlPropertyIndex::hasValueTypeIndex(), m_target, m_targetIndex, QQmlMetaType::metaObjectForValueType(), QMetaProperty::metaType(), QMetaObject::property(), QQmlMetaType::propertyCache(), Q_ASSERT, Q_UNLIKELY, QQmlPropertyData::setCoreIndex(), QQmlPropertyData::setFlags(), QQmlPropertyData::setPropType(), and QQmlPropertyIndex::valueTypeIndex().
Referenced by QQmlTranslationBinding::doUpdate(), QQmlBinding::update(), QQmlPropertyToPropertyBinding::update(), GenericBinding< StaticPropType >::write(), QObjectPointerBinding::write(), GenericBinding< StaticPropType >::write(), and QObjectPointerBinding::write().
|
inlineprotected |
Definition at line 134 of file qqmlabstractbinding_p.h.
References AddedToObject, m_nextBinding, and QTaggedPointer< T, Tag >::tag().
Referenced by QQmlAbstractBinding(), ~QQmlAbstractBinding(), addToObject(), QQmlBinding::doUpdate(), QQmlTranslationBinding::doUpdate(), and removeFromObject().
|
pure virtual |
Implemented in QQmlBinding, QQmlPropertyToPropertyBinding, and QQmlValueTypeProxyBinding.
Referenced by QQmlPropertyPrivate::binding(), removeFromObject(), removeOldBinding(), and QQuickStateGroupPrivate::updateAutoState().
|
inline |
Definition at line 139 of file qqmlabstractbinding_p.h.
References QTaggedPointer< T, Tag >::data(), and m_nextBinding.
Referenced by QQmlValueTypeProxyBinding::~QQmlValueTypeProxyBinding(), addToObject(), QQmlPropertyPrivate::binding(), QQmlValueTypeProxyBinding::binding(), QQmlData::destroyed(), QQmlData::flushPendingBinding(), QQmlValueTypeProxyBinding::removeBindings(), removeFromObject(), and removeOldBinding().
|
static |
Definition at line 158 of file qqmlabstractbinding.cpp.
References QString::arg(), QQmlProperty::name, QQmlProperty::object, and qmlWarning().
Referenced by QQmlBinding::update(), and QQmlPropertyToPropertyBinding::update().
void QQmlAbstractBinding::removeFromObject | ( | ) |
Remove the binding from the object.
Definition at line 92 of file qqmlabstractbinding.cpp.
References QQmlPropertyIndex::coreIndex(), QExplicitlySharedDataPointer< T >::data(), QQmlData::get(), QQmlPropertyIndex::hasValueTypeIndex(), isAddedToObject(), kind(), next, nextBinding(), Q_ASSERT, setAddedToObject(), setNextBinding(), targetObject(), targetPropertyIndex(), and ValueTypeProxy.
Referenced by QQmlObjectCreator::finalize().
|
inlineprotected |
Definition at line 129 of file qqmlabstractbinding_p.h.
Referenced by QQmlValueTypeProxyBinding::~QQmlValueTypeProxyBinding(), addToObject(), QQmlData::destroyed(), and removeFromObject().
|
inline |
Definition at line 72 of file qqmlabstractbinding_p.h.
Referenced by updateCanUseAccessor().
|
pure virtual |
Implemented in QQmlPropertyToPropertyBinding, QQmlBinding, and QQmlValueTypeProxyBinding.
Referenced by QQuickPropertyChanges::changeValue(), QQmlData::flushPendingBinding(), removeOldBinding(), QQmlPropertyPrivate::setBinding(), and QQmlValueTypeProxyBinding::setEnabled().
|
inlineprotected |
Definition at line 168 of file qqmlabstractbinding_p.h.
References BindingEnabled, m_target, QTaggedPointer< T, Tag >::setTag(), and QTaggedPointer< T, Tag >::tag().
Referenced by QQmlPropertyToPropertyBinding::setEnabled(), and QQmlBinding::setEnabled().
|
inlineprotected |
Definition at line 144 of file qqmlabstractbinding_p.h.
References QTaggedPointer< T, Tag >::data(), QQmlAbstractBinding::RefCount::deref(), m_nextBinding, and ref.
Referenced by addToObject(), QQmlValueTypeProxyBinding::removeBindings(), and removeFromObject().
void QQmlAbstractBinding::setTarget | ( | const QQmlProperty & | prop | ) |
Definition at line 197 of file qqmlabstractbinding.cpp.
References QQmlPropertyPrivate::get(), QQmlProperty::object, and setTarget().
Referenced by QQmlPropertyToPropertyBinding::QQmlPropertyToPropertyBinding(), QQmlCppBinding::createBindingForNonBindable(), QQmlCppBinding::createTranslationBindingForNonBindable(), QV4::QObjectWrapper::setProperty(), setTarget(), setTarget(), and QV4::QQmlValueTypeWrapper::virtualPut().
bool QQmlAbstractBinding::setTarget | ( | QObject * | object, |
const QQmlPropertyData & | core, | ||
const QQmlPropertyData * | valueType | ||
) |
Definition at line 203 of file qqmlabstractbinding.cpp.
References QQmlPropertyData::coreIndex(), QQmlPropertyData::isAlias(), and setTarget().
bool QQmlAbstractBinding::setTarget | ( | QObject * | object, |
int | coreIndex, | ||
bool | coreIsAlias, | ||
int | valueTypeIndex | ||
) |
Definition at line 227 of file qqmlabstractbinding.cpp.
References QQmlVMEMetaObject::aliasTarget(), QQmlPropertyData::coreIndex(), QTaggedPointer< T, Tag >::data(), QMetaType::flags(), QQmlData::get(), QQmlVMEMetaObject::getForProperty(), getObjectPropertyData(), QQmlPropertyData::isAlias(), m_target, m_targetIndex, QMetaType::PointerToQObject, QQmlMetaType::propertyCache(), QQmlPropertyData::propType(), and QQmlPropertyData::readProperty().
|
inlineprotected |
Definition at line 158 of file qqmlabstractbinding_p.h.
References m_target, QTaggedPointer< T, Tag >::setTag(), QTaggedPointer< T, Tag >::tag(), and UpdatingBinding.
Referenced by QQmlBinding::update(), and QQmlPropertyToPropertyBinding::update().
|
inline |
Definition at line 55 of file qqmlabstractbinding_p.h.
Referenced by QQmlPropertyToPropertyBinding::QQmlPropertyToPropertyBinding(), addToObject(), GenericBinding< StaticPropType >::doStore(), QQmlTranslationBinding::doUpdate(), removeFromObject(), QQmlPropertyPrivate::setBinding(), QQmlBinding::update(), QQmlPropertyToPropertyBinding::update(), updateCanUseAccessor(), GenericBinding< StaticPropType >::write(), QObjectPointerBinding::write(), GenericBinding< StaticPropType >::write(), and QObjectPointerBinding::write().
|
inline |
Definition at line 51 of file qqmlabstractbinding_p.h.
Referenced by QQmlPropertyToPropertyBinding::QQmlPropertyToPropertyBinding(), addToObject(), QQmlPropertyPrivate::binding(), QQmlValueTypeProxyBinding::binding(), QQmlValueTypeProxyBinding::removeBindings(), removeFromObject(), removeOldBinding(), and QQmlPropertyPrivate::setBinding().
|
protected |
Definition at line 188 of file qqmlabstractbinding.cpp.
References QQmlInterceptorMetaObject::get(), QQmlPropertyIndex::isValid(), m_targetIndex, setCanUseAccessor(), and targetObject().
Referenced by QQmlPropertyToPropertyBinding::setEnabled(), and QQmlBinding::setEnabled().
|
inlineprotected |
Definition at line 153 of file qqmlabstractbinding_p.h.
References m_target, QTaggedPointer< T, Tag >::tag(), and UpdatingBinding.
Referenced by QQmlBinding::update(), and QQmlPropertyToPropertyBinding::update().
|
friend |
Definition at line 30 of file qqmlabstractbinding_p.h.
|
friend |
Definition at line 99 of file qqmlabstractbinding_p.h.
|
friend |
Definition at line 101 of file qqmlabstractbinding_p.h.
|
friend |
Definition at line 100 of file qqmlabstractbinding_p.h.
Referenced by addToObject().
|
protected |
Definition at line 123 of file qqmlabstractbinding_p.h.
Referenced by ~QQmlAbstractBinding(), isAddedToObject(), nextBinding(), and setNextBinding().
|
protected |
Definition at line 120 of file qqmlabstractbinding_p.h.
Referenced by QQmlValueTypeProxyBinding::QQmlValueTypeProxyBinding(), QQmlBinding::dependencies(), QQmlBinding::doUpdate(), enabledFlag(), getPropertyData(), setEnabledFlag(), setTarget(), setUpdatingFlag(), QQmlBinding::slowWrite(), QQmlBinding::slowWrite(), updatingFlag(), and GenericBinding< StaticPropType >::write().
|
protected |
Definition at line 117 of file qqmlabstractbinding_p.h.
Referenced by QQmlValueTypeProxyBinding::QQmlValueTypeProxyBinding(), getPropertyData(), setTarget(), and updateCanUseAccessor().
RefCount QQmlAbstractBinding::ref |
Definition at line 82 of file qqmlabstractbinding_p.h.
Referenced by ~QQmlAbstractBinding(), QQmlData::destroyed(), QQmlAnyBinding::operator=(), QQmlAnyBinding::operator=(), QQmlPropertyPrivate::setBinding(), and setNextBinding().