summaryrefslogtreecommitdiffstats
path: root/src/gui/util/qundogroup.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/gui/util/qundogroup.cpp')
-rw-r--r--src/gui/util/qundogroup.cpp505
1 files changed, 0 insertions, 505 deletions
diff --git a/src/gui/util/qundogroup.cpp b/src/gui/util/qundogroup.cpp
deleted file mode 100644
index 4f83e3a815..0000000000
--- a/src/gui/util/qundogroup.cpp
+++ /dev/null
@@ -1,505 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies).
-** All rights reserved.
-** Contact: Nokia Corporation (qt-info@nokia.com)
-**
-** This file is part of the QtGui module of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL$
-** GNU Lesser General Public License Usage
-** This file may be used under the terms of the GNU Lesser General Public
-** License version 2.1 as published by the Free Software Foundation and
-** appearing in the file LICENSE.LGPL included in the packaging of this
-** file. Please review the following information to ensure the GNU Lesser
-** General Public License version 2.1 requirements will be met:
-** http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
-**
-** In addition, as a special exception, Nokia gives you certain additional
-** rights. These rights are described in the Nokia Qt LGPL Exception
-** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU General
-** Public License version 3.0 as published by the Free Software Foundation
-** and appearing in the file LICENSE.GPL included in the packaging of this
-** file. Please review the following information to ensure the GNU General
-** Public License version 3.0 requirements will be met:
-** http://www.gnu.org/copyleft/gpl.html.
-**
-** Other Usage
-** Alternatively, this file may be used in accordance with the terms and
-** conditions contained in a signed written agreement between you and Nokia.
-**
-**
-**
-**
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-#include "qundogroup.h"
-#include "qundostack.h"
-#include "qundostack_p.h"
-
-#ifndef QT_NO_UNDOGROUP
-
-QT_BEGIN_NAMESPACE
-
-class QUndoGroupPrivate : public QObjectPrivate
-{
- Q_DECLARE_PUBLIC(QUndoGroup)
-public:
- QUndoGroupPrivate() : active(0) {}
-
- QUndoStack *active;
- QList<QUndoStack*> stack_list;
-};
-
-/*!
- \class QUndoGroup
- \brief The QUndoGroup class is a group of QUndoStack objects.
- \since 4.2
-
- For an overview of the Qt's undo framework, see the
- \link qundo.html overview\endlink.
-
- An application often has multiple undo stacks, one for each opened document. At the
- same time, an application usually has one undo action and one redo action, which
- triggers undo or redo in the active document.
-
- QUndoGroup is a group of QUndoStack objects, one of which may be active. It has
- an undo() and redo() slot, which calls QUndoStack::undo() and QUndoStack::redo()
- for the active stack. It also has the functions createUndoAction() and createRedoAction().
- The actions returned by these functions behave in the same way as those returned by
- QUndoStack::createUndoAction() and QUndoStack::createRedoAction() of the active
- stack.
-
- Stacks are added to a group with addStack() and removed with removeStack(). A stack
- is implicitly added to a group when it is created with the group as its parent
- QObject.
-
- It is the programmer's responsibility to specify which stack is active by
- calling QUndoStack::setActive(), usually when the associated document window receives focus.
- The active stack may also be set with setActiveStack(), and is returned by activeStack().
-
- When a stack is added to a group using addStack(), the group does not take ownership
- of the stack. This means the stack has to be deleted separately from the group. When
- a stack is deleted, it is automatically removed from a group. A stack may belong to
- only one group. Adding it to another group will cause it to be removed from the previous
- group.
-
- A QUndoGroup is also useful in conjunction with QUndoView. If a QUndoView is
- set to watch a group using QUndoView::setGroup(), it will update itself to display
- the active stack.
-*/
-
-/*!
- Creates an empty QUndoGroup object with parent \a parent.
-
- \sa addStack()
-*/
-
-QUndoGroup::QUndoGroup(QObject *parent)
- : QObject(*new QUndoGroupPrivate(), parent)
-{
-}
-
-/*!
- Destroys the QUndoGroup.
-*/
-QUndoGroup::~QUndoGroup()
-{
- // Ensure all QUndoStacks no longer refer to this group.
- Q_D(QUndoGroup);
- QList<QUndoStack *>::iterator it = d->stack_list.begin();
- QList<QUndoStack *>::iterator end = d->stack_list.end();
- while (it != end) {
- (*it)->d_func()->group = 0;
- ++it;
- }
-}
-
-/*!
- Adds \a stack to this group. The group does not take ownership of the stack. Another
- way of adding a stack to a group is by specifying the group as the stack's parent
- QObject in QUndoStack::QUndoStack(). In this case, the stack is deleted when the
- group is deleted, in the usual manner of QObjects.
-
- \sa removeStack() stacks() QUndoStack::QUndoStack()
-*/
-
-void QUndoGroup::addStack(QUndoStack *stack)
-{
- Q_D(QUndoGroup);
-
- if (d->stack_list.contains(stack))
- return;
- d->stack_list.append(stack);
-
- if (QUndoGroup *other = stack->d_func()->group)
- other->removeStack(stack);
- stack->d_func()->group = this;
-}
-
-/*!
- Removes \a stack from this group. If the stack was the active stack in the group,
- the active stack becomes 0.
-
- \sa addStack() stacks() QUndoStack::~QUndoStack()
-*/
-
-void QUndoGroup::removeStack(QUndoStack *stack)
-{
- Q_D(QUndoGroup);
-
- if (d->stack_list.removeAll(stack) == 0)
- return;
- if (stack == d->active)
- setActiveStack(0);
- stack->d_func()->group = 0;
-}
-
-/*!
- Returns a list of stacks in this group.
-
- \sa addStack() removeStack()
-*/
-
-QList<QUndoStack*> QUndoGroup::stacks() const
-{
- Q_D(const QUndoGroup);
- return d->stack_list;
-}
-
-/*!
- Sets the active stack of this group to \a stack.
-
- If the stack is not a member of this group, this function does nothing.
-
- Synonymous with calling QUndoStack::setActive() on \a stack.
-
- The actions returned by createUndoAction() and createRedoAction() will now behave
- in the same way as those returned by \a stack's QUndoStack::createUndoAction()
- and QUndoStack::createRedoAction().
-
- \sa QUndoStack::setActive() activeStack()
-*/
-
-void QUndoGroup::setActiveStack(QUndoStack *stack)
-{
- Q_D(QUndoGroup);
- if (d->active == stack)
- return;
-
- if (d->active != 0) {
- disconnect(d->active, SIGNAL(canUndoChanged(bool)),
- this, SIGNAL(canUndoChanged(bool)));
- disconnect(d->active, SIGNAL(undoTextChanged(QString)),
- this, SIGNAL(undoTextChanged(QString)));
- disconnect(d->active, SIGNAL(canRedoChanged(bool)),
- this, SIGNAL(canRedoChanged(bool)));
- disconnect(d->active, SIGNAL(redoTextChanged(QString)),
- this, SIGNAL(redoTextChanged(QString)));
- disconnect(d->active, SIGNAL(indexChanged(int)),
- this, SIGNAL(indexChanged(int)));
- disconnect(d->active, SIGNAL(cleanChanged(bool)),
- this, SIGNAL(cleanChanged(bool)));
- }
-
- d->active = stack;
-
- if (d->active == 0) {
- emit canUndoChanged(false);
- emit undoTextChanged(QString());
- emit canRedoChanged(false);
- emit redoTextChanged(QString());
- emit cleanChanged(true);
- emit indexChanged(0);
- } else {
- connect(d->active, SIGNAL(canUndoChanged(bool)),
- this, SIGNAL(canUndoChanged(bool)));
- connect(d->active, SIGNAL(undoTextChanged(QString)),
- this, SIGNAL(undoTextChanged(QString)));
- connect(d->active, SIGNAL(canRedoChanged(bool)),
- this, SIGNAL(canRedoChanged(bool)));
- connect(d->active, SIGNAL(redoTextChanged(QString)),
- this, SIGNAL(redoTextChanged(QString)));
- connect(d->active, SIGNAL(indexChanged(int)),
- this, SIGNAL(indexChanged(int)));
- connect(d->active, SIGNAL(cleanChanged(bool)),
- this, SIGNAL(cleanChanged(bool)));
- emit canUndoChanged(d->active->canUndo());
- emit undoTextChanged(d->active->undoText());
- emit canRedoChanged(d->active->canRedo());
- emit redoTextChanged(d->active->redoText());
- emit cleanChanged(d->active->isClean());
- emit indexChanged(d->active->index());
- }
-
- emit activeStackChanged(d->active);
-}
-
-/*!
- Returns the active stack of this group.
-
- If none of the stacks are active, or if the group is empty, this function
- returns 0.
-
- \sa setActiveStack() QUndoStack::setActive()
-*/
-
-QUndoStack *QUndoGroup::activeStack() const
-{
- Q_D(const QUndoGroup);
- return d->active;
-}
-
-/*!
- Calls QUndoStack::undo() on the active stack.
-
- If none of the stacks are active, or if the group is empty, this function
- does nothing.
-
- \sa redo() canUndo() setActiveStack()
-*/
-
-void QUndoGroup::undo()
-{
- Q_D(QUndoGroup);
- if (d->active != 0)
- d->active->undo();
-}
-
-/*!
- Calls QUndoStack::redo() on the active stack.
-
- If none of the stacks are active, or if the group is empty, this function
- does nothing.
-
- \sa undo() canRedo() setActiveStack()
-*/
-
-
-void QUndoGroup::redo()
-{
- Q_D(QUndoGroup);
- if (d->active != 0)
- d->active->redo();
-}
-
-/*!
- Returns the value of the active stack's QUndoStack::canUndo().
-
- If none of the stacks are active, or if the group is empty, this function
- returns false.
-
- \sa canRedo() setActiveStack()
-*/
-
-bool QUndoGroup::canUndo() const
-{
- Q_D(const QUndoGroup);
- return d->active != 0 && d->active->canUndo();
-}
-
-/*!
- Returns the value of the active stack's QUndoStack::canRedo().
-
- If none of the stacks are active, or if the group is empty, this function
- returns false.
-
- \sa canUndo() setActiveStack()
-*/
-
-bool QUndoGroup::canRedo() const
-{
- Q_D(const QUndoGroup);
- return d->active != 0 && d->active->canRedo();
-}
-
-/*!
- Returns the value of the active stack's QUndoStack::undoText().
-
- If none of the stacks are active, or if the group is empty, this function
- returns an empty string.
-
- \sa redoText() setActiveStack()
-*/
-
-QString QUndoGroup::undoText() const
-{
- Q_D(const QUndoGroup);
- return d->active == 0 ? QString() : d->active->undoText();
-}
-
-/*!
- Returns the value of the active stack's QUndoStack::redoText().
-
- If none of the stacks are active, or if the group is empty, this function
- returns an empty string.
-
- \sa undoText() setActiveStack()
-*/
-
-QString QUndoGroup::redoText() const
-{
- Q_D(const QUndoGroup);
- return d->active == 0 ? QString() : d->active->redoText();
-}
-
-/*!
- Returns the value of the active stack's QUndoStack::isClean().
-
- If none of the stacks are active, or if the group is empty, this function
- returns true.
-
- \sa setActiveStack()
-*/
-
-bool QUndoGroup::isClean() const
-{
- Q_D(const QUndoGroup);
- return d->active == 0 || d->active->isClean();
-}
-
-#ifndef QT_NO_ACTION
-
-/*!
- Creates an undo QAction object with parent \a parent.
-
- Triggering this action will cause a call to QUndoStack::undo() on the active stack.
- The text of this action will always be the text of the command which will be undone
- in the next call to undo(), prefixed by \a prefix. If there is no command available
- for undo, if the group is empty or if none of the stacks are active, this action will
- be disabled.
-
- If \a prefix is empty, the default template "Undo %1" is used instead of prefix.
- Before Qt 4.8, the prefix "Undo" was used by default.
-
- \sa createRedoAction() canUndo() QUndoCommand::text()
-*/
-
-QAction *QUndoGroup::createUndoAction(QObject *parent, const QString &prefix) const
-{
- QUndoAction *result = new QUndoAction(prefix, parent);
- if (prefix.isEmpty())
- result->setTextFormat(tr("Undo %1"), tr("Undo", "Default text for undo action"));
-
- result->setEnabled(canUndo());
- result->setPrefixedText(undoText());
- connect(this, SIGNAL(canUndoChanged(bool)),
- result, SLOT(setEnabled(bool)));
- connect(this, SIGNAL(undoTextChanged(QString)),
- result, SLOT(setPrefixedText(QString)));
- connect(result, SIGNAL(triggered()), this, SLOT(undo()));
- return result;
-}
-
-/*!
- Creates an redo QAction object with parent \a parent.
-
- Triggering this action will cause a call to QUndoStack::redo() on the active stack.
- The text of this action will always be the text of the command which will be redone
- in the next call to redo(), prefixed by \a prefix. If there is no command available
- for redo, if the group is empty or if none of the stacks are active, this action will
- be disabled.
-
- If \a prefix is empty, the default template "Redo %1" is used instead of prefix.
- Before Qt 4.8, the prefix "Redo" was used by default.
-
- \sa createUndoAction() canRedo() QUndoCommand::text()
-*/
-
-QAction *QUndoGroup::createRedoAction(QObject *parent, const QString &prefix) const
-{
- QUndoAction *result = new QUndoAction(prefix, parent);
- if (prefix.isEmpty())
- result->setTextFormat(tr("Redo %1"), tr("Redo", "Default text for redo action"));
-
- result->setEnabled(canRedo());
- result->setPrefixedText(redoText());
- connect(this, SIGNAL(canRedoChanged(bool)),
- result, SLOT(setEnabled(bool)));
- connect(this, SIGNAL(redoTextChanged(QString)),
- result, SLOT(setPrefixedText(QString)));
- connect(result, SIGNAL(triggered()), this, SLOT(redo()));
- return result;
-}
-
-#endif // QT_NO_ACTION
-
-/*! \fn void QUndoGroup::activeStackChanged(QUndoStack *stack)
-
- This signal is emitted whenever the active stack of the group changes. This can happen
- when setActiveStack() or QUndoStack::setActive() is called, or when the active stack
- is removed form the group. \a stack is the new active stack. If no stack is active,
- \a stack is 0.
-
- \sa setActiveStack() QUndoStack::setActive()
-*/
-
-/*! \fn void QUndoGroup::indexChanged(int idx)
-
- This signal is emitted whenever the active stack emits QUndoStack::indexChanged()
- or the active stack changes.
-
- \a idx is the new current index, or 0 if the active stack is 0.
-
- \sa QUndoStack::indexChanged() setActiveStack()
-*/
-
-/*! \fn void QUndoGroup::cleanChanged(bool clean)
-
- This signal is emitted whenever the active stack emits QUndoStack::cleanChanged()
- or the active stack changes.
-
- \a clean is the new state, or true if the active stack is 0.
-
- \sa QUndoStack::cleanChanged() setActiveStack()
-*/
-
-/*! \fn void QUndoGroup::canUndoChanged(bool canUndo)
-
- This signal is emitted whenever the active stack emits QUndoStack::canUndoChanged()
- or the active stack changes.
-
- \a canUndo is the new state, or false if the active stack is 0.
-
- \sa QUndoStack::canUndoChanged() setActiveStack()
-*/
-
-/*! \fn void QUndoGroup::canRedoChanged(bool canRedo)
-
- This signal is emitted whenever the active stack emits QUndoStack::canRedoChanged()
- or the active stack changes.
-
- \a canRedo is the new state, or false if the active stack is 0.
-
- \sa QUndoStack::canRedoChanged() setActiveStack()
-*/
-
-/*! \fn void QUndoGroup::undoTextChanged(const QString &undoText)
-
- This signal is emitted whenever the active stack emits QUndoStack::undoTextChanged()
- or the active stack changes.
-
- \a undoText is the new state, or an empty string if the active stack is 0.
-
- \sa QUndoStack::undoTextChanged() setActiveStack()
-*/
-
-/*! \fn void QUndoGroup::redoTextChanged(const QString &redoText)
-
- This signal is emitted whenever the active stack emits QUndoStack::redoTextChanged()
- or the active stack changes.
-
- \a redoText is the new state, or an empty string if the active stack is 0.
-
- \sa QUndoStack::redoTextChanged() setActiveStack()
-*/
-
-QT_END_NAMESPACE
-
-#endif // QT_NO_UNDOGROUP