| Commit message (Collapse) | Author | Age | Files | Lines |
| |
|
|
|
|
|
|
|
|
| |
the property should be restored to the value assigned by the ancestor state.
When restoreProperties is on, assigning a value in a state means it will have
that value as long as the state is active, unless an active state deeper in the
hierarchy assigns it a different value. This is basically a stack of "initial"
values, but implemented using the parent hierarchy of the state instead.
|
|
|
|
|
|
|
|
|
| |
potentially restored once the state that set it is exited. So if you have a
parent state P which sets 'foo' and then several child states of P, the property
should not be restored as long as P is active, regardless of which transitions
are taken inside P and what properties are being assigned there. Before, we would
restore the property when we entered a state that did not assign it, ignoring what
properties where being assigned in the parent.
|
|\ |
|
| | |
|
| | |
|
|/
|
|
|
|
|
|
|
|
| |
in SCXML it makes no sense for a <parallel> tag to be atomic, hence have no
children, whereas in a dynamic state machine you might set an atomic state as
parallel because this should govern the behavior if the state gets children
later. We decided that the most intuitive definition is that a state is
atomic if it has no children, regardless of whether it has the parallel child
mode. With the old definition, transitions from empty parallel states will
never be taken, as illustrated by the test.
|
| |
|
|
|
|
| |
Result of API review. Don't need them (for now).
|
| |
|
|
|
|
|
| |
Result of API review. We don't have use cases for them yet.
We can add them back if valid use cases do turn up.
|
| |
|
|
|
|
| |
Result of API review.
|
| |
|
|
|
|
| |
Result of API review.
|
|
|
|
| |
the initial state. Done by No'am, integrated by me.
|
|
|
|
| |
Result of API review.
|
|
|
|
|
|
| |
Result of API review. A == comparison of the modifiers is not useful.
The common case is you want to test if one or more modifiers are set,
i.e. a mask check.
|
| |
|
| |
|
|
|
|
|
|
|
|
|
|
|
| |
Decided in API review. The intention of QHistoryState not being
constructible was so that people wouldn't subclass it and reimplement
onEntry()/onExit(), thinking that those functions would actually get
called (which they won't). However, we recently added the entered()
signal to QAbstractState, so people are going to connect to it and
ask why they never get the signal for a QHistoryState. We might as
well make QHistoryState constructible and just document that it
doesn't make sense to subclass it.
|
|
|
|
| |
It's useful and it's simple for us to expose, so let's.
|
| |
|
|
|
|
| |
Doesn't belong in the abstract base class.
|
| |
|
| |
|
|
|
|
|
| |
Not worth it having two public classes when the same can be achieved
by having a signal.
|
|
|
|
|
|
| |
Comparing pointers meant that the order could be different each run.
Now the entry/exit order will be consistent, even for states that are
in disjoint parts of the hierarchy.
|
|\
| |
| |
| |
| | |
Conflicts:
examples/animation/piemenu/qgraphicspiemenu_p.h
|
| |
| |
| |
| |
| |
| | |
use case for this, so it has been removed. If the requirement arises we can
add it back in later. Since it no longer makes sense to have it in
QAbstractState, the RestorePolicy enum has been moved to QStateMachine.
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
It just didn't give us that much.
Typically you just reimplement onEntry/onExit/onTransition
when you want to do something.
We go back to the signals-and-slots approach: states have
entered() and exited() signals that you can connect to.
It's still possible to have an action-based API, but then
you build it on top of the core API, which is OK.
Replacing 4 public classes (and one layer in the hierarchy)
with 2 signals feels good.
|
| |
| |
| |
| |
| |
| |
| | |
useful when using the RestoreProperties policy, because this is intended to
allow you to build a state machine without having each state consider all the
possible properties that may be set by some state at some point. Default
animations provide the same convenience for animated properties.
|
| | |
|
| |
| |
| |
| |
| |
| |
| |
| |
| | |
when it is added. Reduces the number of temporary variables you have to declare
in your code since you can do things like:
state->addTransition(new Transition())->addAnimation(new Animation());
Could also be used for error checking.
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
The bug was in easeOutBounce_helper(), where the last else-block
adjusted t wrong. It should adjust t so that the peak is at t == 0,
but it adjusted it too little.
The old code did t -= (2.25f/2.75f), but it should have been 21/22.
The rest of the changes in that function is just simple mathematical
rewrites (use a more readable fraction), and removed the b argument,
since that was always 0.
Finally, fixing the original bug also revealed a bug in the first
line of easeOutBounce_helper(), where we always returned
1.0 for t == 1.0. That was wrong since it did not respect c.
|
| | |
|
| |
| |
| |
| |
| |
| |
| | |
The default start value is updated when the animation changes from
Stopped to Running state.
Reviewed-by: Jan-Arve
|
| | |
|
| |
| |
| |
| | |
These interpolator functions might be useful for other internal classes.
|
|/
|
|
|
|
|
|
| |
When the start value is not explicitly defined, the property animation
will set the default start to be the current property value when updating
the animation's state to Running.
Reviewed-by: Jan-Arve
|
|\ |
|
| |
| |
| |
| |
| |
| |
| |
| | |
The child animation was removed twice from the group because in
QAnimationGroup::insertAnimationAt the insertion in the list was done
before removing the animation.
Reviewed-by: Jan-Arve
|
|\ \
| |/ |
|
| | |
|
| | |
|
| | |
|
| | |
|
| | |
|
|/ |
|
|\ |
|