LibreCAD
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Pages
linepatternops.cpp
Go to the documentation of this file.
1 //
2 // Created by R. van Twisk on 4/15/16.
3 //
4 
5 #include "linepatternops.h"
7 
8 using namespace lc;
9 using namespace operation;
10 
11 /********************************************************************************************************/
13 /********************************************************************************************************/
14 AddLinePattern::AddLinePattern(Document_SPtr document, const DxfLinePattern_CSPtr LinePattern) :
15  DocumentOperation(document, "AddLinePattern"),
16  _LinePattern(LinePattern) {
17 }
18 
20  document()->addDocumentMetaType(_LinePattern);
21 }
22 
23 void AddLinePattern::undo() const {
24  document()->removeDocumentMetaType(_LinePattern);
25 }
26 
27 void AddLinePattern::redo() const {
28  document()->addDocumentMetaType(_LinePattern);
29 }
30 
31 /********************************************************************************************************/
33 /********************************************************************************************************/
34 RemoveLinePattern::RemoveLinePattern(Document_SPtr document, const DxfLinePattern_CSPtr LinePattern) :
35  DocumentOperation(document, "RemoveLinePattern"),
36  _LinePattern(LinePattern) {
37 }
38 
40  document()->removeDocumentMetaType(_LinePattern);
41 }
42 
44  document()->addDocumentMetaType(_LinePattern);
45 }
46 
48  for (auto i : _entities) {
49  document()->removeEntity(i);
50  }
51 
52  document()->removeDocumentMetaType(_LinePattern);
53 }
54 
55 
56 /********************************************************************************************************/
58 /********************************************************************************************************/
60  const DxfLinePattern_CSPtr oldLinePattern,
61  const DxfLinePattern_CSPtr newLinePattern) :
62  DocumentOperation(document, "ReplaceLinePattern"),
63  _oldLinePattern(oldLinePattern),
64  _newLinePattern(newLinePattern) {
65 }
66 
68  document()->removeDocumentMetaType(_oldLinePattern);
69  document()->addDocumentMetaType(_newLinePattern);
70 }
71 
73 }
74 
76 }
AddLinePattern(Document_SPtr document, const DxfLinePattern_CSPtr LinePattern)
std::vector< entity::CADEntity_CSPtr > _entities
DxfLinePattern_CSPtr _oldLinePattern
virtual void redo() const
Redo a given operation.
virtual void undo() const
Undo a given operation.
virtual void undo() const
Undo a given operation.
Definition: cadentity.h:12
ReplaceLinePattern(Document_SPtr document, const DxfLinePattern_CSPtr oldLinePattern, const DxfLinePattern_CSPtr newLinePattern)
virtual void redo() const
Redo a given operation.
RemoveLinePattern(Document_SPtr document, const DxfLinePattern_CSPtr LinePattern)
DxfLinePattern_CSPtr _LinePattern
DxfLinePattern_CSPtr _newLinePattern
virtual void undo() const
Undo a given operation.
DxfLinePattern_CSPtr _LinePattern
virtual void redo() const
Redo a given operation.