| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
|
|
|
|
| |
By popular demand on the Qt Labs blog.
This makes it possible to readily use QStateMachine with e.g. worker
threads that post events to the machine.
Reviewed-by: Eskil Abrahamsen Blomfeldt
|
|
|
|
|
|
| |
Since QStateMachine inherits QState now.
Reviewed-by: Eskil Abrahamsen Blomfeldt
|
|
|
|
|
|
| |
"Signal" and "Wrapped" is too generic; prefix with StateMachine.
Reviewed-by: Eskil Abrahamsen Blomfeldt
|
|
|
|
|
|
|
| |
Otherwise the events might creep into the event loop if the state
machine is restarted.
Reviewed-by: Eskil Abrahamsen Blomfeldt
|
|
|
|
|
|
|
|
|
|
|
|
| |
The priority specifies whether the event should be posted to what the
SCXML spec refers to as the "external" (NormalPriority) queue, or the
"internal" (HighPriority) queue.
Delayed events are now posted through a separate function,
postDelayedEvent(). That function returns an id that can be passed to
cancelDelayedEvent() to cancel it.
Reviewed-by: Eskil Abrahamsen Blomfeldt
|
|
|
|
|
|
|
|
| |
Avoid delayed scheduling in the cases where there's no need to
delay it (e.g. when the state machine intercepts a signal or event).
Task-number: QTBUG-4491
Reviewed-by: Eskil Abrahamsen Blomfeldt
|
|
|
|
|
|
|
|
|
| |
Those two classes are specific to the state machine framework, but
their names were so generic that we felt they were polluting the
Q-namespace. They are now QStateMachine::SignalEvent and
QStateMachine::WrappedEvent.
Reviewed-by: Eskil Abrahamsen Blomfeldt
|
|
|
|
| |
Reviewed-by: Trust Me
|
|
|
|
| |
Reviewed-by: Trust Me
|
|
|
|
| |
Reviewed-by: Trust Me
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
The signal index actually emitted was different from the signal index
registered. This was due to recent changes in the meta-object protocol, where
new indexes are being created (cloned) for signals with default parameters.
When registering the transition signal, we now look for the original (non
cloned) signal index. The transition keeps track of the user-specified signal
index, and sets it when calling onTransition.
Reviewed-by: Kent Hansen
Reviewed-by: Olivier Goffart
Task-number: 260403
|
|\
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
Conflicts:
examples/opengl/samplebuffers/glwidget.cpp
src/corelib/io/qfsfileengine_unix.cpp
src/corelib/kernel/qobject.cpp
src/corelib/tools/qsharedpointer.cpp
src/gui/gui.pro
tests/auto/qhttp/tst_qhttp.cpp
tests/auto/qkeyevent/tst_qkeyevent.cpp
|
| |
| |
| |
| | |
Reviewed-by: Trust Me
|
| | |
|
|\ \
| |/
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
Conflicts:
config.tests/unix/openssl/openssl.pri
demos/embedded/embedded.pro
examples/itemviews/chart/chart.pro
examples/network/network.pro
examples/painting/painterpaths/painterpaths.pro
examples/threads/mandelbrot/mandelbrot.pro
qmake/project.cpp
src/3rdparty/libtiff/libtiff/tif_config.h
src/corelib/arch/arch.pri
src/corelib/global/qglobal.cpp
src/corelib/kernel/kernel.pri
src/corelib/kernel/qcore_unix_p.h
src/corelib/kernel/qobject.cpp
src/corelib/thread/qthread_unix.cpp
src/corelib/tools/qsharedpointer_impl.h
src/corelib/tools/tools.pri
src/gui/kernel/qaction.h
src/gui/kernel/qapplication.cpp
src/gui/painting/qregion.h
src/gui/widgets/qlineedit.cpp
src/gui/widgets/qlineedit_p.h
src/network/socket/qnativesocketengine_unix.cpp
tests/auto/qdir/tst_qdir.cpp
tests/auto/qdiriterator/tst_qdiriterator.cpp
tests/auto/qhttp/qhttp.pro
tests/auto/qline/qline.pro
tests/auto/qnetworkreply/tst_qnetworkreply.cpp
tests/auto/qresourceengine/qresourceengine.pro
tests/auto/qsharedpointer/qsharedpointer.pro
tests/auto/qstring/qstring.pro
tests/auto/qtcpsocket/qtcpsocket.pro
tests/auto/qtcpsocket/tst_qtcpsocket.cpp
|
| |
| |
| |
| |
| |
| |
| | |
The constructors that take a list of target states produce
hard-to-read code, and they're rarely useful in practice since
99% of transitions take a single target state; so it's better
to enforce that setTarget{State,States}() be used instead.
|
| |
| |
| |
| | |
Needed for Declarative UI integration.
|
| |
| |
| |
| |
| | |
QObject::sender() does not return const QObject*, so neither should
this API; it just forces you to const_cast for no good reason.
|
|\ \
| |/
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
Conflicts:
configure.exe
qmake/Makefile.unix
qmake/generators/makefile.cpp
src/corelib/global/qglobal.h
src/corelib/kernel/kernel.pri
src/corelib/kernel/qcoreevent.cpp
src/corelib/kernel/qsharedmemory_unix.cpp
src/gui/graphicsview/qgraphicsscene.cpp
src/gui/kernel/qaction.cpp
src/gui/kernel/qaction.h
src/gui/kernel/qaction_p.h
src/gui/kernel/qapplication.cpp
src/gui/kernel/qapplication.h
src/gui/kernel/qwidget.cpp
src/gui/kernel/qwidget.h
src/gui/kernel/qwidget_mac.mm
src/gui/painting/qgraphicssystemfactory.cpp
src/gui/styles/qwindowsstyle.cpp
src/gui/text/qfontengine_qpf.cpp
src/gui/widgets/qabstractscrollarea_p.h
src/network/access/qnetworkaccessdebugpipebackend.cpp
src/network/socket/qlocalsocket_unix.cpp
src/network/socket/qnativesocketengine_p.h
src/network/socket/qnativesocketengine_unix.cpp
src/openvg/qpaintengine_vg.cpp
tests/auto/q3sqlcursor/tst_q3sqlcursor.cpp
tests/auto/qcssparser/qcssparser.pro
tests/auto/qdir/tst_qdir.cpp
tests/auto/qfile/tst_qfile.cpp
tests/auto/qobject/tst_qobject.cpp
tests/auto/qpathclipper/qpathclipper.pro
tests/auto/qprocess/tst_qprocess.cpp
tests/auto/qsettings/tst_qsettings.cpp
tests/auto/qsharedpointer/qsharedpointer.pro
tests/auto/qsqlquerymodel/qsqlquerymodel.pro
tests/auto/qsqlrelationaltablemodel/qsqlrelationaltablemodel.pro
tests/auto/qsqltablemodel/qsqltablemodel.pro
tests/auto/qsqlthread/qsqlthread.pro
tests/auto/qwidget/tst_qwidget.cpp
|
| | |
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
This removes the need for a "root state" in the machine; or rather,
the machine _is_ the root state.
User code can now pass in a QStateMachine directly to the QState
constructor, instead of machine->rootState().
This also means we could get rid of the "proxying" from the machine
to the root state for things like properties (initialState et al),
finished() signal and auto-reparenting of states (the ChildAdded
event hack).
A fun little side-effect of this change is that it's now possible
to embed state machines within state machines. We can't think of
a good use case yet where you would rather embed a stand-alone
state machine (with its own event processing etc.) rather than
having just a regular nested state, but it's neat and it works.
Reviewed-by: Eskil Abrahamsen Blomfeldt
|
| |
| |
| |
| | |
Reviewed-by: Eskil Abrahamsen Blomfeldt
|
|\ \
| |/
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
Conflicts:
.gitignore
configure.exe
src/corelib/concurrent/qtconcurrentthreadengine.h
src/corelib/global/qnamespace.h
src/gui/graphicsview/qgraphicssceneevent.h
src/gui/kernel/qapplication.cpp
src/gui/kernel/qapplication.h
src/gui/kernel/qapplication_p.h
src/gui/kernel/qapplication_qws.cpp
src/gui/kernel/qwidget.h
src/gui/painting/qpaintengine_raster.cpp
src/gui/text/qfontdatabase.cpp
src/network/access/qnetworkaccesshttpbackend.cpp
tests/auto/network-settings.h
tests/auto/qscriptjstestsuite/qscriptjstestsuite.pro
tests/auto/qvariant/tst_qvariant.cpp
|
| |
| |
| |
| |
| |
| |
| |
| |
| | |
Having an implicit default error state in the graph which the user
has not added is unintuitive and ugly. Rather than have a default error
state, we stop execution of the machine and print an error message when
the machine has run-time errors. If a user wishes to prevent errors
from stopping the machine, you can set one or more error states
explicitly.
|
| |
| |
| |
| | |
Make state->addTransition(foo, SIGNAL( bar( ) ), ...) work.
|
| |
| |
| |
| |
| |
| | |
If the machine's initial state is nested, a set of states will
be entered, and we need to do the property assignments of all
of them.
|
| |
| |
| |
| |
| |
| | |
It's been requested by several users. Since we have
QAbstractState::{entered,exited}() signals, we should have this one
as well.
|
| |
| |
| |
| | |
Reviewed-by: Trust Me
|
|/ |
|
|
|
|
| |
Reviewed-by: Thierry Bastian
|
|
|
|
|
| |
The signal code (first character of const char *signal) is stripped
internally, so the debug output code should not skip any characters.
|
|
|
|
| |
No need to link to the class in its own doc page.
|
|
|
|
|
|
|
|
|
|
|
|
| |
The QObject internals have changed, and the mutex that need to be locked
to access the senders list is not the same anymore, and not accessible
form qstatemachine.cpp
But we do not need to loop over the senders list anyway because this is
done in sender()
We also do not need to lock in order to access the currentSender
Reviewed-by: Eskil
|
|
|
|
|
|
|
| |
Also fix an issue in QTreeView where a signal could be connected
several times
Reviewed-by: Thierry
|
|
|
|
|
| |
Now you can opt it out to save disk space (for embedded).
Also tested it and fixed code in state machine.
|
|
|
|
|
|
|
| |
Wherever I found that we were using a string instead of a single char
I fixed the code.
Reviewed-by: olivier
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
kinetic-animations
Conflicts:
src/corelib/kernel/kernel.pri
src/corelib/kernel/qvariant_p.h
src/corelib/tools/tools.pri
src/gui/graphicsview/qgraphicsitem.cpp
src/gui/graphicsview/qgraphicsitem.h
src/gui/graphicsview/qgraphicswidget.h
src/gui/gui.pro
|
|
|
|
|
| |
We decided to remove the const of the eventTest() since some transitions
have dynamic conditions and need to update when eventTest() is called.
|
|
|
|
|
|
| |
The event filter was not removed at the right time. We now store the
number of active event transitions for a particular (object,event)
and only remove the filtering when the count drops to zero.
|
|\ |
|
| |\
| | |
| | |
| | | |
into kinetic-animations
|
| | |
| | |
| | |
| | | |
Reviewed-by: Kent Hansen
|
| |/
|/|
| |
| | |
We won't release another Qt Solution, so the define is no longer needed.
|
|/
|
|
|
|
| |
The signal was not disconnected at the right time. We now store the
number of active signal transitions for a particular (object,signal)
and only disconnect when the count drops to zero.
|
| |
|
|
|
|
|
|
|
|
|
|
|
| |
as error state
Since the root state has no ancestors, it cannot be source or target in
transitions since there will be no LCA for the transition, which is required for
the algorithm of enterStates and exitStates. In SCXML the root state cannot be
target or source of a transition. By the same logic, it cannot be an error
state. The root state will always have a valid machine, since it's added to
a machine immediately, which makes this code possible.
|
| |
|
|
|
|
| |
The animation itself is used by subsequent code, so we mustn't change it.
|
| |
|
|
|
|
|
|
| |
consistency
The other error values have Error in the name for namespacing purposes.
|