23#include <private/qqmlproperty_p.h>
24#include <private/qqmlguard_p.h>
26#include <private/qqmlbinding_p.h>
28#include <private/qobject_p.h>
38 m_property = a.property;
39 m_specifiedObject = a.specifiedObject;
40 m_specifiedProperty = a.specifiedProperty;
43 m_value = a.fromValue;
44 m_binding = QQmlAnyBinding::ofProperty(m_property);
45 m_reverseEvent =
true;
48 m_binding = a.toBinding;
49 m_reverseEvent =
false;
61 m_specifiedObject(other.m_specifiedObject),
64 m_reverseEvent(other.m_reverseEvent)
70 m_property = other.m_property;
71 m_value = other.m_value;
72 m_binding = other.binding();
73 m_specifiedObject = other.m_specifiedObject;
74 m_specifiedProperty = other.m_specifiedProperty;
75 m_event = other.m_event;
76 m_reverseEvent = other.m_reverseEvent;
83 m_property = property;
113 return m_specifiedObject;
118 return m_specifiedProperty;
128 return m_reverseEvent;
132 QQmlProperty m_property;
134 QQmlAnyBinding m_binding;
135 QObject *m_specifiedObject;
136 QString m_specifiedProperty;
137 QQuickStateActionEvent *m_event;
153 Q_DECLARE_PUBLIC(QQuickStateOperation)
165 Q_DECLARE_PUBLIC(QQuickState)
184 setObject(
static_cast<QQuickStateOperation *>(obj));
189 static void objectDestroyedImpl(QQmlGuardImpl *guard) {
192 This->list->removeOne(*This);
197 static void operations_append(QQmlListProperty<QQuickStateOperation> *prop, QQuickStateOperation *op) {
198 QList<OperationGuard> *list =
static_cast<QList<OperationGuard> *>(prop->data);
199 op->setState(qobject_cast<QQuickState*>(prop->object));
203 QList<OperationGuard> *list =
static_cast<QList<OperationGuard> *>(prop->data);
204 for (
auto &e : *list)
205 e->setState(
nullptr);
209 QList<OperationGuard> *list =
static_cast<QList<OperationGuard> *>(prop->data);
213 QList<OperationGuard> *list =
static_cast<QList<OperationGuard> *>(prop->data);
214 return list->at(index);
217 QQuickStateOperation *op) {
218 QList<OperationGuard> *list =
static_cast<QList<OperationGuard> *>(prop->data);
219 auto &guard = list->at(index);
220 if (guard.object() == op) {
221 op->setState(qobject_cast<QQuickState*>(prop->object));
223 list->at(index)->setState(
nullptr);
224 op->setState(qobject_cast<QQuickState*>(prop->object));
229 QList<OperationGuard> *list =
static_cast<QList<OperationGuard> *>(prop->data);
230 list->last()->setState(
nullptr);
QQuickRevertAction(QQuickStateActionEvent *e)
QQuickRevertAction(const QQmlProperty &prop)
QQuickStateActionEvent * event
const QVariant & value() const
QQuickStateActionEvent * event() const
QQuickSimpleAction & operator=(const QQuickSimpleAction &other)
void setProperty(const QQmlProperty &property)
bool reverseEvent() const
QObject * specifiedObject() const
const QQmlProperty & property() const
void setValue(const QVariant &value)
const QString & specifiedProperty() const
QQmlAnyBinding binding() const
void setBinding(QQmlAnyBinding binding)
QQuickSimpleAction(const QQuickSimpleAction &other)
QQuickSimpleAction(const QQuickStateAction &a, State state=StartState)
SimpleActionList revertList
static void operations_append(QQmlListProperty< QQuickStateOperation > *prop, QQuickStateOperation *op)
static qsizetype operations_count(QQmlListProperty< QQuickStateOperation > *prop)
static void operations_clear(QQmlListProperty< QQuickStateOperation > *prop)
static QQuickStateOperation * operations_at(QQmlListProperty< QQuickStateOperation > *prop, qsizetype index)
QQuickTransitionManager transitionManager
QList< QQuickRevertAction > reverting
static void operations_removeLast(QQmlListProperty< QQuickStateOperation > *prop)
QList< OperationGuard > operations
static void operations_replace(QQmlListProperty< QQuickStateOperation > *prop, qsizetype index, QQuickStateOperation *op)
QList< OperationGuard > * list
OperationGuard(QObject *obj, QList< OperationGuard > *l)