QHexEdit
 All Classes Functions Properties
commands.h
1 #ifndef COMMANDS_H
2 #define COMMANDS_H
3 
6 #include <QUndoCommand>
7 
8 #include "xbytearray.h"
9 
23 class CharCommand : public QUndoCommand
24 {
25 public:
26  enum { Id = 1234 };
27  enum Cmd {insert, remove, replace};
28 
29  CharCommand(XByteArray * xData, Cmd cmd, int charPos, char newChar,
30  QUndoCommand *parent=0);
31 
32  void undo();
33  void redo();
34  bool mergeWith(const QUndoCommand *command);
35  int id() const { return Id; }
36 
37 private:
38  XByteArray * _xData;
39  int _charPos;
40  bool _wasChanged;
41  char _newChar;
42  char _oldChar;
43  Cmd _cmd;
44 };
45 
49 class ArrayCommand : public QUndoCommand
50 {
51 public:
52  enum Cmd {insert, remove, replace};
53  ArrayCommand(XByteArray * xData, Cmd cmd, int baPos, QByteArray newBa=QByteArray(), int len=0,
54  QUndoCommand *parent=0);
55  void undo();
56  void redo();
57 
58 private:
59  Cmd _cmd;
60  XByteArray * _xData;
61  int _baPos;
62  int _len;
63  QByteArray _wasChanged;
64  QByteArray _newBa;
65  QByteArray _oldBa;
66 };
67 
70 #endif // COMMANDS_H