Emit a notifications when defaultState and historyType are changed.

In order to properly use QHistoryState object in QML we need to know
when these properties are changed.

Change-Id: I28c783436410c84bc64a919ac18c183f7a5eb9ad
Reviewed-by: Lars Knoll <lars.knoll@digia.com>
Reviewed-by: Volker Krause <volker.krause@kdab.com>
Reviewed-by: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@digia.com>
This commit is contained in:
BogDan Vatra 2014-06-21 15:03:03 +03:00 committed by BogDan Vatra
parent dd70e2cb0f
commit 8429c6a5a2
2 changed files with 40 additions and 4 deletions

View File

@ -181,7 +181,10 @@ void QHistoryState::setDefaultState(QAbstractState *state)
"to this history state's group (%p)", state, parentState());
return;
}
d->defaultState = state;
if (d->defaultState != state) {
d->defaultState = state;
emit defaultStateChanged(QHistoryState::QPrivateSignal());
}
}
/*!
@ -199,7 +202,10 @@ QHistoryState::HistoryType QHistoryState::historyType() const
void QHistoryState::setHistoryType(HistoryType type)
{
Q_D(QHistoryState);
d->historyType = type;
if (d->historyType != type) {
d->historyType = type;
emit historyTypeChanged(QHistoryState::QPrivateSignal());
}
}
/*!
@ -226,6 +232,24 @@ bool QHistoryState::event(QEvent *e)
return QAbstractState::event(e);
}
/*!
\fn QHistoryState::defaultStateChanged()
\since 5.4
This signal is emitted when the defaultState property is changed.
\sa QHistoryState::defaultState
*/
/*!
\fn QHistoryState::historyTypeChanged()
\since 5.4
This signal is emitted when the historyType property is changed.
\sa QHistoryState::historyType
*/
QT_END_NAMESPACE
#endif //QT_NO_STATEMACHINE

View File

@ -53,8 +53,8 @@ class QHistoryStatePrivate;
class Q_CORE_EXPORT QHistoryState : public QAbstractState
{
Q_OBJECT
Q_PROPERTY(QAbstractState* defaultState READ defaultState WRITE setDefaultState)
Q_PROPERTY(HistoryType historyType READ historyType WRITE setHistoryType)
Q_PROPERTY(QAbstractState* defaultState READ defaultState WRITE setDefaultState NOTIFY defaultStateChanged)
Q_PROPERTY(HistoryType historyType READ historyType WRITE setHistoryType NOTIFY historyTypeChanged)
Q_ENUMS(HistoryType)
public:
enum HistoryType {
@ -72,6 +72,18 @@ public:
HistoryType historyType() const;
void setHistoryType(HistoryType type);
Q_SIGNALS:
void defaultStateChanged(
#if !defined(Q_QDOC)
QPrivateSignal
#endif
);
void historyTypeChanged(
#if !defined(Q_QDOC)
QPrivateSignal
#endif
);
protected:
void onEntry(QEvent *event);
void onExit(QEvent *event);