40 return QObject::tr(
"Initial");
51 , m_isComposite(false)
80 return qobject_cast<State *>(
parent());
115 transition->setTargetState(target);
116 transition->setSignal(silgnal);
128 transition->setTargetState(target);
129 transition->setTimeout(timeout);
155 if (d->m_onExit ==
onExit)
164 return d->m_childMode;
178 return d->m_isComposite;
183 return d->m_isExpanded;
198 QQmlEngine::setObjectOwnership(m, QQmlEngine::CppOwnership);
204 if (
event->type() == QEvent::ChildAdded ||
event->type() == QEvent::ChildRemoved) {
205 const bool newIsComposite = !
childStates().empty();
206 if (d->m_isComposite != newIsComposite) {
207 d->m_isComposite = newIsComposite;
212 return QObject::event(
event);
215struct StateMachine::Private
219 , m_runtimeController(new StandardRuntimeController)
225 if (qobject_cast<StandardRuntimeController *>(m_runtimeController)) {
226 delete m_runtimeController;
237 , d(new Private(this))
249 return d->m_runtimeController;
257 if (qobject_cast<StandardRuntimeController *>(d->m_runtimeController)) {
258 d->m_runtimeController->deleteLater();
261 if (!d->m_runtimeController) {
262 d->m_runtimeController =
new StandardRuntimeController;
268struct HistoryState::Private
270 State *m_defaultState =
nullptr;
284 d->m_historyType =
type;
300 return QStringLiteral(
"%1 [Default: %2]").arg(thisClassName).arg(defaultClassName);
305 return d->m_defaultState;
310 if (d->m_defaultState == state)
312 d->m_defaultState = state;
318 return d->m_historyType;
329struct FinalState::Private
357struct PseudoState::Private
390 if (d->m_kind ==
kind)
399 return kindToString(d->m_kind);
405 return QStringLiteral(
"%1 [Kind: %2]").arg(str).arg(
kindString());
411 return operator<<(dbg, static_cast<QObject *>(
nullptr));
413 dbg.nospace() <<
"State["
414 <<
"this=" << (
const void * )state
415 <<
", label=" << state->
label()
423 return operator<<(dbg, static_cast<QObject *>(
nullptr));
425 dbg.nospace() <<
"PseudoState["
426 <<
"this=" << (
const void * )state
void setWidth(qreal width)
void setParent(QObject *object)
void setHeight(qreal height)
FinalState(State *parent=nullptr)
Type type() const override
HistoryState(State *parent=nullptr)
Type type() const override
KDSME::State * defaultState
QString toDisplayString() const override
void defaultStateChanged(KDSME::State *state)
void setDefaultState(State *state)
void historyTypeChanged()
void setHistoryType(HistoryType historyType)
PseudoState(Kind kind=InitialState, State *parent=nullptr)
QString kindString() const
void kindChanged(KDSME::PseudoState::Kind kind)
Type type() const override
QString toDisplayString() const override
void setRuntimeController(RuntimeController *runtimeController)
Type type() const override
KDSME::RuntimeController * runtimeController
void runtimeControllerChanged(KDSME::RuntimeController *runtimeController)
StateMachine(QObject *parent=nullptr)
void setInitialState(State *initialState)
void setOnExit(const QString &onExit)
void setExpanded(bool expanded)
void addTransition(Transition *transition)
void setOnEntry(const QString &onEntry)
void onExitChanged(const QString &onExit)
TimeoutTransition * addTimeoutTransition(State *target, int timeout)
QList< Transition * > transitions() const
QList< State * > childStates() const
void childModeChanged(KDSME::State::ChildMode childMode)
void onEntryChanged(const QString &onEntry)
State(State *parent=nullptr)
SignalTransition * addSignalTransition(State *target, const QString &silgnal=QString())
bool event(QEvent *event) override
State * initialState() const
void isCompositeChanged(bool isComposite)
void setChildMode(ChildMode childMode)
Q_INVOKABLE KDSME::StateMachine * machine() const
Q_INVOKABLE KDSME::State * parentState() const
void expandedChanged(bool expanded)
Type type() const override
KDSME_CORE_EXPORT void setInitialState(State *state, State *initialState)
KDSME_CORE_EXPORT State * findInitialState(const State *state)
KDSME_CORE_EXPORT StateMachine * findStateMachine(const Element *element)
KDSME_CORE_EXPORT QString className(const QObject *object, DisplayOption option=NoStrip)
QList< FilterType > copy_if_type(const QList< ItemType > &list)
KDSME_CORE_EXPORT QDebug operator<<(QDebug dbg, const State *state)