19#include <QtQmlMeta/qtqmlmetaexports.h>
21#include <QtQml/qqml.h>
22#include <QtCore/qobject.h>
27class Q_QMLMETA_EXPORT
QQmlBind :
public QObject,
public QQmlPropertyValueSource,
public QQmlParserStatus
30 enum RestorationMode {
34 RestoreBindingOrValue = RestoreBinding | RestoreValue
39 Q_DECLARE_PRIVATE(QQmlBind)
40 Q_INTERFACES(QQmlParserStatus)
41 Q_INTERFACES(QQmlPropertyValueSource)
42 Q_PROPERTY(QObject *target READ object WRITE setObject NOTIFY objectChanged)
43 Q_PROPERTY(QString property READ property WRITE setProperty NOTIFY propertyChanged)
44 Q_PROPERTY(QVariant value READ value WRITE setValue NOTIFY valueChanged)
45 Q_PROPERTY(
bool when READ when WRITE setWhen NOTIFY whenChanged)
46 Q_PROPERTY(
bool delayed READ delayed WRITE setDelayed NOTIFY delayedChanged REVISION(2, 8))
47 Q_PROPERTY(RestorationMode restoreMode READ restoreMode WRITE setRestoreMode
48 NOTIFY restoreModeChanged REVISION(2, 14))
49 Q_ENUM(RestorationMode)
50 QML_NAMED_ELEMENT(Binding)
51 QML_ADDED_IN_VERSION(2, 0)
52 Q_CLASSINFO(
"ImmediatePropertyNames",
"objectName,target,property,value,when,delayed,restoreMode");
55 QQmlBind(QObject *parent=
nullptr);
61 QObject *object()
const;
62 void setObject(QObject *);
64 QString property()
const;
65 void setProperty(
const QString &);
67 QVariant value()
const;
68 void setValue(
const QVariant &);
71 void setDelayed(
bool);
73 RestorationMode restoreMode()
const;
74 void setRestoreMode(RestorationMode);
77 void restoreModeChanged();
78 Q_REVISION(6, 10)
void objectChanged();
79 Q_REVISION(6, 10)
void propertyChanged();
80 Q_REVISION(6, 10)
void valueChanged();
81 Q_REVISION(6, 10)
void whenChanged();
82 Q_REVISION(6, 10)
void delayedChanged();
85 void setTarget(
const QQmlProperty &) override;
86 void classBegin() override;
87 void componentComplete() override;
94 void targetValueChanged();
void validate(QQmlBind *binding) const
GeneralizedGroupData generalizedGroupData
void postEvalEntry(QQmlBindEntry *entry)
QQmlBindEntry * targetEntry()
void onDelayedValueChanged(QString delayedName)
void decodeBinding(QQmlBind *q, const QString &propertyPrefix, QQmlData::DeferredData *deferredData, const QV4::CompiledData::Binding *binding, QQmlComponentPrivate::ConstructionState *immediateState)
bool isCurrent(QQmlBindEntry *entry) const
void preEvalEntry(QQmlBindEntry *entry)
void buildBindEntries(QQmlBind *q, QQmlComponentPrivate::DeferredState *deferredState)
void createDelayedValues()
ObjectPropertyValueData objectPropertyValueData
static void warnIgnoredProperties(QQmlBind *q)
static void initCreator(QQmlData::DeferredData *deferredData, const QQmlRefPointer< QQmlContextData > &contextData, QQmlComponentPrivate::ConstructionState *immediateState)
static QQmlAnyBinding createBinding(const QQmlProperty &prop, const QV4::CompiledData::Binding *binding, const QQmlRefPointer< QV4::ExecutableCompilationUnit > &compilationUnit, const QQmlRefPointer< QQmlContextData > &contextData, QObject *scopeObject)
std::unique_ptr< QQmlPropertyMap > delayedValues
QVarLengthArray< QQmlBindEntry, 1 > entries
QQmlBindEntryKind previousKind
QQmlBindEntry(const QQmlBindEntry &other)
QQmlBindEntry & operator=(QQmlBindEntry &&other) noexcept
void setTarget(QQmlBind *q, const QQmlProperty &p)
QQmlBindEntryKind currentKind
QQmlBindEntry & operator=(const QQmlBindEntry &other)
QQmlBindEntryContent current
QQmlBindEntryContent previous
void validate(QQmlBind *q) const
QQmlBindEntry(QQmlBindEntry &&other) noexcept