diff options
Diffstat (limited to 'src/gui/util/qundogroup.h')
-rw-r--r-- | src/gui/util/qundogroup.h | 64 |
1 files changed, 64 insertions, 0 deletions
diff --git a/src/gui/util/qundogroup.h b/src/gui/util/qundogroup.h new file mode 100644 index 0000000000..e92f4f46b0 --- /dev/null +++ b/src/gui/util/qundogroup.h @@ -0,0 +1,64 @@ +// Copyright (C) 2020 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 + +#ifndef QUNDOGROUP_H +#define QUNDOGROUP_H + +#include <QtGui/qtguiglobal.h> +#include <QtCore/qobject.h> +#include <QtCore/qstring.h> + +QT_REQUIRE_CONFIG(undogroup); + +QT_BEGIN_NAMESPACE + +class QUndoGroupPrivate; +class QUndoStack; +class QAction; + +class Q_GUI_EXPORT QUndoGroup : public QObject +{ + Q_OBJECT + Q_DECLARE_PRIVATE(QUndoGroup) + +public: + explicit QUndoGroup(QObject *parent = nullptr); + ~QUndoGroup(); + + void addStack(QUndoStack *stack); + void removeStack(QUndoStack *stack); + QList<QUndoStack*> stacks() const; + QUndoStack *activeStack() const; + +#ifndef QT_NO_ACTION + QAction *createUndoAction(QObject *parent, const QString &prefix = QString()) const; + QAction *createRedoAction(QObject *parent, const QString &prefix = QString()) const; +#endif // QT_NO_ACTION + + bool canUndo() const; + bool canRedo() const; + QString undoText() const; + QString redoText() const; + bool isClean() const; + +public Q_SLOTS: + void undo(); + void redo(); + void setActiveStack(QUndoStack *stack); + +Q_SIGNALS: + void activeStackChanged(QUndoStack *stack); + void indexChanged(int idx); + void cleanChanged(bool clean); + void canUndoChanged(bool canUndo); + void canRedoChanged(bool canRedo); + void undoTextChanged(const QString &undoText); + void redoTextChanged(const QString &redoText); + +private: + Q_DISABLE_COPY(QUndoGroup) +}; + +QT_END_NAMESPACE + +#endif // QUNDOGROUP_H |