Qt
Internal/Contributor docs for the Qt SDK. <b>Note:</b> These are NOT official API docs; those are found <a href='https://doc.qt.io/'>here</a>.
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 230 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 262 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 254 of file qpropertyprivate.h.

◆ isNotificationDelayed()

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

Definition at line 255 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.

◆ registerWithCurrentlyEvaluatingBinding() [2/2]

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

Definition at line 279 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 273 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 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: