Scribus
Open source desktop publishing at your fingertips
undoobject.h
1 /*
2 For general Scribus (>=1.3.2) copyright and licensing information please refer
3 to the COPYING file provided with the program. Following this notice may exist
4 a copyright and/or license notice that predates the release of Scribus 1.3.2
5 for which a new license (GPL+exception) is in place.
6 */
7 /***************************************************************************
8  * Copyright (C) 2005 by Riku Leino *
9  * riku@scribus.info *
10  * *
11  * This program is free software; you can redistribute it and/or modify *
12  * it under the terms of the GNU General Public License as published by *
13  * the Free Software Foundation; either version 2 of the License, or *
14  * (at your option) any later version. *
15  * *
16  * This program is distributed in the hope that it will be useful, *
17  * but WITHOUT ANY WARRANTY; without even the implied warranty of *
18  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the *
19  * GNU General Public License for more details. *
20  * *
21  * You should have received a copy of the GNU General Public License *
22  * along with this program; if not, write to the *
23  * Free Software Foundation, Inc., *
24  * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. *
25  ***************************************************************************/
26 
27 #ifndef UNDOOBJECT_H
28 #define UNDOOBJECT_H
29 
30 #include <QPixmap>
31 #include <QString>
32 
33 #include "scribusapi.h"
34 #include "scguardedptr.h"
35 
36 class UndoState;
37 
59 class SCRIBUS_API UndoObject
60 {
61 public:
63  UndoObject();
64 
66  UndoObject(const UndoObject& other);
67 
72  UndoObject(const QString &objectName, QPixmap *objectIcon = 0);
73 
75  virtual ~UndoObject();
76 
81  virtual QString getUName();
82 
87  virtual void setUName(QString newUName);
88 
93  virtual QPixmap* getUPixmap();
94 
99  virtual void setUPixmap(QPixmap *newUPixmap);
100 
105  ulong getUId() const;
106 
110  const ScGuardedPtr<UndoObject>& undoObjectPtr();
111 
121  virtual void restore(UndoState* state, bool isUndo) = 0;
122 private:
124  static ulong m_nextId;
125 
127  ulong m_id;
128 
134  QString m_uname;
135 
142  QPixmap *m_upixmap;
143 
149  ScGuardedObject<UndoObject> m_objectPtr;
150 };
152 
153 class SCRIBUS_API DummyUndoObject : public UndoObject
154 {
155 public:
156  DummyUndoObject() {};
157  virtual ~DummyUndoObject() {};
159  void restore(UndoState*, bool) {};
160 };
161 
162 #endif
Definition: undoobject.h:153
UndoState describes an undoable state (action).
Definition: undostate.h:59
void restore(UndoState *, bool)
dummy implementation of the inherited one
Definition: undoobject.h:159
Superclass for all objects that are wanted to have undoable actions.
Definition: undoobject.h:59