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
QPropertyDelayedNotifications Struct Reference
+ Collaboration diagram for QPropertyDelayedNotifications:

Public Member Functions

void addProperty (const QPropertyBindingData *bindingData, QUntypedPropertyData *propertyData)
 
void evaluateBindings (PendingBindingObserverList &bindingObservers, qsizetype index, QBindingStatus *status)
 
void notify (qsizetype index)
 

Public Attributes

int ref = 0
 
QPropertyDelayedNotificationsnext = nullptr
 
qsizetype used = 0
 
QPropertyProxyBindingData delayedProperties [size]
 

Static Public Attributes

static constexpr auto PageSize = 4096
 
static constexpr qsizetype size = (PageSize - 3*sizeof(void *))/sizeof(QPropertyProxyBindingData)
 

Detailed Description

QPropertyDelayedNotifications is used to manage delayed notifications in grouped property updates. It acts as a pool allocator for QPropertyProxyBindingData, and has methods to manage delayed notifications.

See also
beginPropertyUpdateGroup, endPropertyUpdateGroup

Definition at line 67 of file qproperty.cpp.

Member Function Documentation

◆ addProperty()

void QPropertyDelayedNotifications::addProperty ( const QPropertyBindingData * bindingData,
QUntypedPropertyData * propertyData )
inline

This method is called when a property attempts to notify its observers while inside of a property update group. Instead of actually notifying, it replaces bindingData's d_ptr with a QPropertyProxyBindingData. bindingData and propertyData are the binding data and property data of the property whose notify call gets delayed.

See also
QPropertyBindingData::notifyObservers

Definition at line 89 of file qproperty.cpp.

References QtPrivate::QPropertyBindingData::BindingBit, QtPrivate::QPropertyBindingData::DelayedNotificationBit, delayedProperties, QtPrivate::QPropertyBindingData::isNotificationDelayed(), next, and Q_ASSERT.

+ Here is the call graph for this function:

◆ evaluateBindings()

void QPropertyDelayedNotifications::evaluateBindings ( PendingBindingObserverList & bindingObservers,
qsizetype index,
QBindingStatus * status )
inline

Called in Qt::endPropertyUpdateGroup. For the QPropertyProxyBindingData at position index, it \list

  • restores the original binding data that was modified in addProperty and
  • evaluates any bindings which depend on properties that were changed inside the group. \endlist Change notifications are sent later with notify (following the logic of separating binding updates and notifications used in non-deferred updates).

Definition at line 124 of file qproperty.cpp.

References QtPrivate::QPropertyBindingData::DelayedNotificationBit, delayedProperties, QPropertyObserverPointer::evaluateBindings(), QPropertyProxyBindingData::originalBindingData, and Q_ASSERT.

+ Here is the call graph for this function:

◆ notify()

void QPropertyDelayedNotifications::notify ( qsizetype index)
inline

Called in Qt::endPropertyUpdateGroup. For the QPropertyProxyBindingData at position i, it \list

  • resets the proxy binding data and
  • sends any pending notifications. \endlist

Definition at line 152 of file qproperty.cpp.

References QtPrivate::QPropertyBindingData::BindingBit, delayedProperties, and QPropertyProxyBindingData::originalBindingData.

Member Data Documentation

◆ delayedProperties

QPropertyProxyBindingData QPropertyDelayedNotifications::delayedProperties[size]

Definition at line 78 of file qproperty.cpp.

Referenced by addProperty(), evaluateBindings(), and notify().

◆ next

QPropertyDelayedNotifications* QPropertyDelayedNotifications::next = nullptr

Definition at line 73 of file qproperty.cpp.

Referenced by addProperty().

◆ PageSize

constexpr auto QPropertyDelayedNotifications::PageSize = 4096
inlinestaticconstexpr

Definition at line 71 of file qproperty.cpp.

◆ ref

int QPropertyDelayedNotifications::ref = 0

Definition at line 72 of file qproperty.cpp.

Referenced by QProperty< T >::beginPropertyUpdateGroup().

◆ size

constexpr qsizetype QPropertyDelayedNotifications::size = (PageSize - 3*sizeof(void *))/sizeof(QPropertyProxyBindingData)
staticconstexpr

Definition at line 77 of file qproperty.cpp.

◆ used

qsizetype QPropertyDelayedNotifications::used = 0

Definition at line 74 of file qproperty.cpp.


The documentation for this struct was generated from the following file: