9#include <private/qqmlbinding_p.h>
10#include <private/qqmlglobal_p.h>
11#include <private/qqmlproperty_p.h>
13#include <QtCore/qdebug.h>
14#include <private/qanimationjobutil_p.h>
48 delete d; d =
nullptr;
56void QQuickTransitionManager::complete()
76 if (
auto binding = action.toBinding; binding) {
78 }
else if (action.event) {
79 if (action.reverseEvent)
80 action.event->reverse();
82 action.event->execute();
105 if (action.toBinding)
107 if (action.fromBinding) {
108 auto property = action.property;
111 if (action.event && action.event->changesBindings()) {
113 action.event->clearBindings();
129 if (
auto binding = action.toBinding; binding) {
130 binding.installOn(action.property);
131 }
else if (!action.event) {
133 }
else if (action.event->isReversable()) {
134 if (action.reverseEvent)
135 action.event->reverse();
137 action.event->execute();
142 for (
auto it = applyList.
begin(), eit = applyList.
end();
it != eit; ++
it) {
144 it->event->saveTargetValues();
148 if (
it->toBinding || !
it->toValue.isValid())
149 it->toValue = prop.
read();
155 if (action.event->isReversable()) {
156 action.event->clearBindings();
157 action.event->rewind();
158 action.event->clearBindings();
163 if (action.toBinding) {
164 auto property = action.property;
183 return action.actionDone;
185 if (touched.
contains(action.property)) {
186 if (action.toValue != action.fromValue)
193 auto newEnd = std::remove_if(applyList.
begin(), applyList.
end(), isHandledInTransition);
194 applyList.
erase(newEnd, applyList.
end());
202 if (action.event && !action.event->changesBindings()) {
203 if (action.event->isReversable() && action.reverseEvent)
204 action.event->reverse();
206 action.event->execute();
207 }
else if (!action.event && !action.toBinding) {
208 action.property.write(action.toValue);
211 if (lcStates().isDebugEnabled()) {
214 qCDebug(lcStates) <<
"no transition for event:" << action.event->type();
216 qCDebug(lcStates) <<
"no transition for:" << action.property.object()
217 << action.property.name() <<
"from:" << action.fromValue
218 <<
"to:" << action.toValue;
232 if (action.toBinding && action.deletableToBinding) {
233 auto property = action.property;
235 }
else if (action.event) {
bool isEmpty() const noexcept
iterator erase(const_iterator begin, const_iterator end)
static QObjectPrivate * get(QObject *o)
static void removeBindingFrom(QQmlProperty &prop)
static bool write(QObject *, const QQmlPropertyData &, const QVariant &, const QQmlRefPointer< QQmlContextData > &, QQmlPropertyData::WriteFlags flags={})
The QQmlProperty class abstracts accessing properties on objects created from QML.
QVariant read() const
Returns the property value.
QQuickTransitionInstance * transitionInstance
SimpleActionList completeList
QQuickTransitionManagerPrivate()
QList< QQuickSimpleAction > SimpleActionList
QQuickStateOperation::ActionList bindingsList
virtual ~QQuickTransitionManager()
QQuickTransitionManager()
void transition(const QList< QQuickStateAction > &, QQuickTransition *transition, QObject *defaultTarget=nullptr)
QSet< QString >::iterator it
Combined button and popup list for selecting options.
#define RETURN_IF_DELETED(func)
EGLOutputLayerEXT EGLint EGLAttrib value
[5]
#define qCDebug(category,...)
#define Q_DECLARE_LOGGING_CATEGORY(name)
gzip write("uncompressed data")
bool contains(const AT &t) const noexcept