1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101
|
/***************************************************************************
UndoTransaction.h - groups moulitple UndoAction objects together
-------------------
begin : Fri May 25 2001
copyright : (C) 2001 by Thomas Eschenbacher
email : Thomas Eschenbacher <thomas.eschenbacher@gmx.de>
***************************************************************************/
/***************************************************************************
* *
* This program is free software; you can redistribute it and/or modify *
* it under the terms of the GNU General Public License as published by *
* the Free Software Foundation; either version 2 of the License, or *
* (at your option) any later version. *
* *
***************************************************************************/
#ifndef UNDO_TRANSACTION_H
#define UNDO_TRANSACTION_H
#include "config.h"
#include <QList>
#include <QString>
class UndoAction;
namespace Kwave {
/**
* @class UndoTransaction
* Groups multiple UndoAction objects together to one transaction. As most
* user actions consist of a number of small actions that belong together
* and don't make sense or leave an inconsistent state if separated, they
* get grouped together to one transaction.
*/
class UndoTransaction: public QList<UndoAction *>
{
public:
/**
* Constructor.
* @param name description of the undo transaction as a user-readable
* localized string.
*/
explicit UndoTransaction(const QString &name);
/** Destructor */
virtual ~UndoTransaction();
/** Returns the size in bytes summed up over all undo actions */
qint64 undoSize();
/** Returns the additional memory needed for storing redo data */
qint64 redoSize();
/**
* Returns the description of the undo transaction as a user-readable
* localized string. If no name has been passed at initialization
* time, a list of all action's descriptions will be generated.
* @todo avoid duplicates, give a useful name/description
*/
QString description();
/**
* Loops over all undo actions to determine whether there is at least
* one undo action that contains a modification of the signal.
* @see UndoAction::containsModification()
* @return true if a modification is contained, false if not.
*/
bool containsModification() const;
/**
* aborts the undo transaction
*/
void abort();
/**
* Returns true if the undo transaction has been aborted
*/
bool isAborted() const { return m_aborted; }
/** dump, for debugging purposes */
virtual void dump(const QString &indent);
private:
/** name of the action */
QString m_description;
/** if true, the transaction has been aborted */
bool m_aborted;
};
}
#endif /* UNDO_TRANSACTION_H */
//***************************************************************************
//***************************************************************************
|