Qt 6.x
The Qt SDK
Loading...
Searching...
No Matches
QtPrivate::QPropertyBindingData Class Reference

#include <qpropertyprivate.h>

+ Collaboration diagram for QtPrivate::QPropertyBindingData:

Public Member Functions

 QPropertyBindingData ()=default
 
 QPropertyBindingData (QPropertyBindingData &&other)
 
QPropertyBindingDataoperator= (QPropertyBindingData &&other)=delete
 
 ~QPropertyBindingData ()
 
bool hasBinding () const
 
bool isNotificationDelayed () const
 
QUntypedPropertyBinding setBinding (const QUntypedPropertyBinding &newBinding, QUntypedPropertyData *propertyDataPtr, QPropertyObserverCallback staticObserverCallback=nullptr, QPropertyBindingWrapper bindingWrapper=nullptr)
 
QPropertyBindingPrivatebinding () const
 
void evaluateIfDirty (const QUntypedPropertyData *) const
 
void removeBinding ()
 
void registerWithCurrentlyEvaluatingBinding (QtPrivate::BindingEvaluationState *currentBinding) const
 
void registerWithCurrentlyEvaluatingBinding () const
 
void notifyObservers (QUntypedPropertyData *propertyDataPtr) const
 
void notifyObservers (QUntypedPropertyData *propertyDataPtr, QBindingStorage *storage) const
 

Static Public Attributes

static constexpr quintptr BindingBit = 0x1
 
static constexpr quintptr DelayedNotificationBit = 0x2
 

Friends

struct QT_PREPEND_NAMESPACE (QPropertyBindingDataPointer)
 
class QT_PREPEND_NAMESPACE (QQmlPropertyBinding)
 
struct QT_PREPEND_NAMESPACE (QPropertyDelayedNotifications)
 
template<typename Class , typename T , auto Offset, auto Setter, auto Signal, auto Getter>
class QT_PREPEND_NAMESPACE (QObjectCompatProperty)
 

Detailed Description

A property normally consists of the actual property value and metadata for the binding system. QPropertyBindingData is the latter part. It stores a pointer to either

  • a (potentially empty) linked list of notifiers, in case there is no binding set,
  • an actual QUntypedPropertyBinding when the property has a binding,
  • or a pointer to QPropertyProxyBindingData when notifications occur inside a grouped update.
See also
QPropertyDelayedNotifications, beginPropertyUpdateGroup

Definition at line 232 of file qpropertyprivate.h.

Constructor & Destructor Documentation

◆ QPropertyBindingData() [1/2]

QtPrivate::QPropertyBindingData::QPropertyBindingData ( )
default

◆ QPropertyBindingData() [2/2]

QPropertyBindingData::QPropertyBindingData ( QPropertyBindingData &&  other)

Definition at line 533 of file qproperty.cpp.

References QPropertyBindingDataPointer::fixupAfterMove().

+ Here is the call graph for this function:

◆ ~QPropertyBindingData()

QPropertyBindingData::~QPropertyBindingData ( )

Definition at line 467 of file qproperty.cpp.

References binding(), isNotificationDelayed(), next, QPropertyProxyBindingData::originalBindingData, and QPropertyBindingPrivate::unlinkAndDeref().

+ Here is the call graph for this function:

Member Function Documentation

◆ binding()

QPropertyBindingPrivate * QtPrivate::QPropertyBindingData::binding ( ) const
inline

Definition at line 264 of file qpropertyprivate.h.

References d.

Referenced by ~QPropertyBindingData(), QObjectBindableProperty< Class, T, Offset, Signal >::hasBinding(), QObjectCompatProperty< Class, T, Offset, Setter, Signal, Getter >::hasBinding(), and setBinding().

+ Here is the caller graph for this function:

◆ evaluateIfDirty()

void QPropertyBindingData::evaluateIfDirty ( const QUntypedPropertyData ) const

Definition at line 572 of file qproperty.cpp.

◆ hasBinding()

bool QtPrivate::QPropertyBindingData::hasBinding ( ) const
inline

Definition at line 256 of file qpropertyprivate.h.

◆ isNotificationDelayed()

bool QtPrivate::QPropertyBindingData::isNotificationDelayed ( ) const
inline

Definition at line 257 of file qpropertyprivate.h.

Referenced by ~QPropertyBindingData(), QPropertyDelayedNotifications::addProperty(), and notifyObservers().

+ Here is the caller graph for this function:

◆ notifyObservers() [1/2]

void QPropertyBindingData::notifyObservers ( QUntypedPropertyData propertyDataPtr) const

Definition at line 617 of file qproperty.cpp.

References notifyObservers().

Referenced by notifyObservers().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ notifyObservers() [2/2]

void QPropertyBindingData::notifyObservers ( QUntypedPropertyData propertyDataPtr,
QBindingStorage storage 
) const

Definition at line 622 of file qproperty.cpp.

References isNotificationDelayed(), and storage.

+ Here is the call graph for this function:

◆ operator=()

QPropertyBindingData & QtPrivate::QPropertyBindingData::operator= ( QPropertyBindingData &&  other)
delete

◆ registerWithCurrentlyEvaluatingBinding() [1/2]

void QPropertyBindingData::registerWithCurrentlyEvaluatingBinding ( ) const

Definition at line 593 of file qproperty.cpp.

References bindingStatus, and QBindingStatus::currentlyEvaluatingBinding.

◆ registerWithCurrentlyEvaluatingBinding() [2/2]

void QtPrivate::QPropertyBindingData::registerWithCurrentlyEvaluatingBinding ( QtPrivate::BindingEvaluationState currentBinding) const
inline

Definition at line 281 of file qpropertyprivate.h.

Referenced by QtPrivate::PropertyAdaptorSlotObjectHelpers::getter().

+ Here is the caller graph for this function:

◆ removeBinding()

void QtPrivate::QPropertyBindingData::removeBinding ( )
inline

Definition at line 275 of file qpropertyprivate.h.

Referenced by QtPrivate::PropertyAdaptorSlotObjectHelpers::setter(), QObjectBindableProperty< Class, T, Offset, Signal >::setValue(), and QObjectBindableProperty< Class, T, Offset, Signal >::setValue().

+ Here is the caller graph for this function:

◆ setBinding()

QUntypedPropertyBinding QPropertyBindingData::setBinding ( const QUntypedPropertyBinding newBinding,
QUntypedPropertyData propertyDataPtr,
QPropertyObserverCallback  staticObserverCallback = nullptr,
QtPrivate::QPropertyBindingWrapper  guardCallback = nullptr 
)

Definition at line 481 of file qproperty.cpp.

References QtPrivate::RefCounted::addRef(), binding(), BindingBit, QPropertyBindingError::BindingLoop, QPropertyBindingPrivatePtr::data(), QPropertyObserverPointer::ptr, QStringLiteral, and QPropertyBindingPrivate::setProperty().

Referenced by QObjectBindableProperty< Class, T, Offset, Signal >::setBinding(), QObjectCompatProperty< Class, T, Offset, Setter, Signal, Getter >::setBinding(), and QtPrivate::PropertyAdaptorSlotObjectHelpers::setBinding().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

Friends And Related Symbol Documentation

◆ QT_PREPEND_NAMESPACE [1/4]

template<typename Class , typename T , auto Offset, auto Setter, auto Signal, auto Getter>
class QT_PREPEND_NAMESPACE ( QObjectCompatProperty  )
friend

◆ QT_PREPEND_NAMESPACE [2/4]

struct QT_PREPEND_NAMESPACE ( QPropertyBindingDataPointer  )
friend

◆ QT_PREPEND_NAMESPACE [3/4]

struct QT_PREPEND_NAMESPACE ( QPropertyDelayedNotifications  )
friend

◆ QT_PREPEND_NAMESPACE [4/4]

class QT_PREPEND_NAMESPACE ( QQmlPropertyBinding  )
friend

Member Data Documentation

◆ BindingBit

constexpr quintptr QtPrivate::QPropertyBindingData::BindingBit = 0x1
inlinestaticconstexpr

◆ DelayedNotificationBit

constexpr quintptr QtPrivate::QPropertyBindingData::DelayedNotificationBit = 0x2
inlinestaticconstexpr

The documentation for this class was generated from the following files: