forked from ZiQiangWang/ImagePorc
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Commands.h
137 lines (104 loc) · 2.54 KB
/
Commands.h
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
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
#ifndef COMMANDS_H
#define COMMANDS_H
#include <QUndoCommand>
#include "Types.h"
#include <QPointF>
#include <opencv2/core/core.hpp>
class Layer;
class Picture;
/******************************************************************************************************************/
//图像内容操作命令
class CommandImage: public QUndoCommand
{
public:
explicit CommandImage(Picture *pic,const QString &name, QUndoCommand *parent=0);
void undo();
void redo();
private:
Picture *m_pic;
int m_index;
cv::Mat m_savedImg;
};
/******************************************************************************************************************/
//图层操作命令
class CommandAddLayer: public QUndoCommand
{
public:
explicit CommandAddLayer(Picture *pic, int index, QUndoCommand *parent=0);
void undo();
void redo();
private:
Picture *m_pic;
int m_index;
};
class CommandRemoveLayer: public QUndoCommand
{
public:
explicit CommandRemoveLayer(Picture *pic, int index, QUndoCommand *parent=0);
void undo();
void redo();
private:
Picture *m_pic;
int m_index;
Layer * m_savedLayer;
};
class CommandCopyLayer: public QUndoCommand
{
public:
explicit CommandCopyLayer(Picture *pic, int index, QUndoCommand *parent=0);
void undo();
void redo();
private:
Picture *m_pic;
int m_index;
Layer * m_savedLayer;
};
class CommandMergeLayer: public QUndoCommand
{
public:
explicit CommandMergeLayer(Picture *pic, int index, QUndoCommand *parent=0);
void undo();
void redo();
private:
Picture *m_pic;
int m_index;
Layer * m_savedLayer;
cv::Mat m_savedImg;
};
class CommandMoveUpLayer: public QUndoCommand
{
public:
explicit CommandMoveUpLayer(Picture *pic, int index, QUndoCommand *parent=0);
void undo();
void redo();
private:
Picture *m_pic;
int m_index;
};
class CommandMoveDownLayer: public QUndoCommand
{
public:
explicit CommandMoveDownLayer(Picture *pic, int index, QUndoCommand *parent=0);
void undo();
void redo();
private:
Picture *m_pic;
int m_index;
};
class CommandAttributeLayer: public QUndoCommand
{
public:
explicit CommandAttributeLayer(Picture *pic, int index,const QString &name,int type,int transparent,bool checked, QUndoCommand *parent=0);
void undo();
void redo();
private:
Picture *m_pic;
int m_index;
QString m_name;
int m_type,m_transparent;
bool m_checkState;
QString m_oldName;
int m_oldType,m_oldTransparent;
bool m_oldCheckState;
};
#endif // COMMANDS_H