Revision control

Copy as Markdown

// Copyright (C) 2016 The Qt Company Ltd.
// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR LGPL-3.0-only OR GPL-2.0-only OR GPL-3.0-only
// Qt-Security score:significant
#ifndef QHISTORYSTATE_H
#define QHISTORYSTATE_H
#include <QtStateMachine/qabstractstate.h>
QT_BEGIN_NAMESPACE
class QAbstractTransition;
class QHistoryStatePrivate;
class Q_STATEMACHINE_EXPORT QHistoryState : public QAbstractState
{
Q_OBJECT
Q_PROPERTY(QAbstractState* defaultState READ defaultState WRITE setDefaultState NOTIFY defaultStateChanged)
Q_PROPERTY(QAbstractTransition* defaultTransition READ defaultTransition
WRITE setDefaultTransition NOTIFY defaultTransitionChanged
BINDABLE bindableDefaultTransition)
Q_PROPERTY(HistoryType historyType READ historyType WRITE setHistoryType
NOTIFY historyTypeChanged BINDABLE bindableHistoryType)
public:
enum HistoryType {
ShallowHistory,
DeepHistory
};
Q_ENUM(HistoryType)
QHistoryState(QState *parent = nullptr);
QHistoryState(HistoryType type, QState *parent = nullptr);
~QHistoryState();
QAbstractTransition *defaultTransition() const;
void setDefaultTransition(QAbstractTransition *transition);
QBindable<QAbstractTransition*> bindableDefaultTransition();
QAbstractState *defaultState() const;
void setDefaultState(QAbstractState *state);
HistoryType historyType() const;
void setHistoryType(HistoryType type);
QBindable<QHistoryState::HistoryType> bindableHistoryType();
Q_SIGNALS:
void defaultTransitionChanged(QPrivateSignal);
void defaultStateChanged(QPrivateSignal);
void historyTypeChanged(QPrivateSignal);
protected:
void onEntry(QEvent *event) override;
void onExit(QEvent *event) override;
bool event(QEvent *e) override;
private:
Q_DISABLE_COPY(QHistoryState)
Q_DECLARE_PRIVATE(QHistoryState)
};
QT_END_NAMESPACE
#endif