Engauge Digitizer 2
Loading...
Searching...
No Matches
CmdFactory Class Reference

Factory for CmdAbstractBase objects from xml. See also GuidelineDragCommandFactory. More...

#include <CmdFactory.h>

Collaboration diagram for CmdFactory:
Collaboration graph

Public Member Functions

 CmdFactory ()
 Single constructor.
CmdAbstractcreateCmd (MainWindow &mainWindow, Document &document, QXmlStreamReader &reader)
 Factory method. Input is the xml node from an error report file.

Detailed Description

Factory for CmdAbstractBase objects from xml. See also GuidelineDragCommandFactory.

Definition at line 16 of file CmdFactory.h.

Constructor & Destructor Documentation

◆ CmdFactory()

CmdFactory::CmdFactory ( )

Single constructor.

Definition at line 46 of file CmdFactory.cpp.

47{
48}

Member Function Documentation

◆ createCmd()

CmdAbstract * CmdFactory::createCmd ( MainWindow & mainWindow,
Document & document,
QXmlStreamReader & reader )

Factory method. Input is the xml node from an error report file.

Definition at line 50 of file CmdFactory.cpp.

53{
54 CmdAbstract *cmd = nullptr;
55
56 QXmlStreamAttributes attributes = reader.attributes();
57 if (!attributes.hasAttribute(DOCUMENT_SERIALIZE_CMD_TYPE) ||
58 !attributes.hasAttribute(DOCUMENT_SERIALIZE_CMD_DESCRIPTION)) {
59
60 // Invalid xml
61 LOG4CPP_ERROR_S ((*mainCat)) << "CmdFactory::createCmd missing " << DOCUMENT_SERIALIZE_CMD_TYPE.toLatin1().data()
62 << " or " << DOCUMENT_SERIALIZE_CMD_DESCRIPTION.toLatin1().data();
63 ENGAUGE_ASSERT(false);
64
65 }
66
67 // Get common attributes
68 QString cmdType = attributes.value(DOCUMENT_SERIALIZE_CMD_TYPE).toString();
69 QString cmdDescription = attributes.value(DOCUMENT_SERIALIZE_CMD_DESCRIPTION).toString();
70
72 cmd = new CmdAddPointAxis (mainWindow,
73 document,
74 cmdDescription,
75 reader);
76 } else if (cmdType == DOCUMENT_SERIALIZE_CMD_ADD_POINT_GRAPH) {
77 cmd = new CmdAddPointGraph (mainWindow,
78 document,
79 cmdDescription,
80 reader);
81 } else if (cmdType == DOCUMENT_SERIALIZE_CMD_ADD_POINTS_GRAPH) {
82 cmd = new CmdAddPointsGraph (mainWindow,
83 document,
84 cmdDescription,
85 reader);
86 } else if (cmdType == DOCUMENT_SERIALIZE_CMD_COPY) {
87 cmd = new CmdCopy (mainWindow,
88 document,
89 cmdDescription,
90 reader);
91 } else if (cmdType == DOCUMENT_SERIALIZE_CMD_CUT) {
92 cmd = new CmdCut (mainWindow,
93 document,
94 cmdDescription,
95 reader);
96 } else if (cmdType == DOCUMENT_SERIALIZE_CMD_DELETE) {
97 cmd = new CmdDelete (mainWindow,
98 document,
99 cmdDescription,
100 reader);
101 } else if (cmdType == DOCUMENT_SERIALIZE_CMD_EDIT_POINT_AXIS) {
102 cmd = new CmdEditPointAxis (mainWindow,
103 document,
104 cmdDescription,
105 reader);
106 } else if (cmdType == DOCUMENT_SERIALIZE_CMD_EDIT_POINT_GRAPH) {
107 cmd = new CmdEditPointGraph (mainWindow,
108 document,
109 cmdDescription,
110 reader);
111 } else if (cmdType == DOCUMENT_SERIALIZE_CMD_GONG) {
112 cmd = new CmdGong (mainWindow,
113 document,
114 cmdDescription,
115 reader);
116 } else if (cmdType == DOCUMENT_SERIALIZE_CMD_GUIDELINE_ADD_X_T) {
117 cmd = new CmdGuidelineAddXT (mainWindow,
118 document,
119 cmdDescription,
120 reader);
121 } else if (cmdType == DOCUMENT_SERIALIZE_CMD_GUIDELINE_ADD_Y_R) {
122 cmd = new CmdGuidelineAddYR (mainWindow,
123 document,
124 cmdDescription,
125 reader);
126 } else if (cmdType == DOCUMENT_SERIALIZE_CMD_GUIDELINE_MOVE_X_T) {
127 cmd = new CmdGuidelineMoveXT (mainWindow,
128 document,
129 cmdDescription,
130 reader);
131 } else if (cmdType == DOCUMENT_SERIALIZE_CMD_GUIDELINE_MOVE_Y_R) {
132 cmd = new CmdGuidelineMoveYR (mainWindow,
133 document,
134 cmdDescription,
135 reader);
136 } else if (cmdType == DOCUMENT_SERIALIZE_CMD_GUIDELINE_REMOVE_X_T) {
137 cmd = new CmdGuidelineRemoveXT (mainWindow,
138 document,
139 cmdDescription,
140 reader);
141 } else if (cmdType == DOCUMENT_SERIALIZE_CMD_GUIDELINE_REMOVE_Y_R) {
142 cmd = new CmdGuidelineRemoveYR (mainWindow,
143 document,
144 cmdDescription,
145 reader);
146 } else if (cmdType == DOCUMENT_SERIALIZE_CMD_MOVE_BY) {
147 cmd = new CmdMoveBy (mainWindow,
148 document,
149 cmdDescription,
150 reader);
151 } else if (cmdType == DOCUMENT_SERIALIZE_CMD_REDO_FOR_TEST) {
152 cmd = new CmdRedoForTest (mainWindow,
153 document,
154 cmdDescription,
155 reader);
156 } else if (cmdType == DOCUMENT_SERIALIZE_CMD_SELECT_COORD_SYSTEM) {
157 cmd = new CmdSelectCoordSystem (mainWindow,
158 document,
159 cmdDescription,
160 reader);
161 } else if (cmdType == DOCUMENT_SERIALIZE_CMD_SETTINGS_AXES_CHECKER) {
162 cmd = new CmdSettingsAxesChecker (mainWindow,
163 document,
164 cmdDescription,
165 reader);
166 } else if (cmdType == DOCUMENT_SERIALIZE_CMD_SETTINGS_COLOR_FILTER) {
167 cmd = new CmdSettingsColorFilter (mainWindow,
168 document,
169 cmdDescription,
170 reader);
171 } else if (cmdType == DOCUMENT_SERIALIZE_CMD_SETTINGS_COORDS) {
172 cmd = new CmdSettingsCoords (mainWindow,
173 document,
174 cmdDescription,
175 reader);
176 } else if (cmdType == DOCUMENT_SERIALIZE_CMD_SETTINGS_CURVE_LIST) {
177 cmd = new CmdSettingsCurveList (mainWindow,
178 document,
179 cmdDescription,
180 reader);
182 cmd = new CmdSettingsCurveProperties (mainWindow,
183 document,
184 cmdDescription,
185 reader);
187 cmd = new CmdSettingsDigitizeCurve (mainWindow,
188 document,
189 cmdDescription,
190 reader);
191 } else if (cmdType == DOCUMENT_SERIALIZE_CMD_SETTINGS_EXPORT) {
192 cmd = new CmdSettingsExportFormat (mainWindow,
193 document,
194 cmdDescription,
195 reader);
196 } else if (cmdType == DOCUMENT_SERIALIZE_CMD_SETTINGS_GENERAL) {
197 cmd = new CmdSettingsGeneral (mainWindow,
198 document,
199 cmdDescription,
200 reader);
201 } else if (cmdType == DOCUMENT_SERIALIZE_CMD_SETTINGS_GRID_REMOVAL) {
202 cmd = new CmdSettingsGridRemoval (mainWindow,
203 document,
204 cmdDescription,
205 reader);
206 } else if (cmdType == DOCUMENT_SERIALIZE_CMD_SETTINGS_POINT_MATCH) {
207 cmd = new CmdSettingsPointMatch (mainWindow,
208 document,
209 cmdDescription,
210 reader);
211 } else if (cmdType == DOCUMENT_SERIALIZE_CMD_SETTINGS_SEGMENTS) {
212 cmd = new CmdSettingsSegments (mainWindow,
213 document,
214 cmdDescription,
215 reader);
216 } else if (cmdType == DOCUMENT_SERIALIZE_CMD_UNDO_FOR_TEST) {
217 cmd = new CmdUndoForTest (mainWindow,
218 document,
219 cmdDescription,
220 reader);
221 } else {
222
223 // Invalid xml
224 LOG4CPP_ERROR_S ((*mainCat)) << "CmdFactory::createCmd invalid command type " << cmdType.toLatin1().data();
225 ENGAUGE_ASSERT (false);
226
227 }
228
229 return cmd;
230}
const QString DOCUMENT_SERIALIZE_CMD_ADD_POINT_AXIS
const QString DOCUMENT_SERIALIZE_CMD_MOVE_BY
const QString DOCUMENT_SERIALIZE_CMD_REDO_FOR_TEST
const QString DOCUMENT_SERIALIZE_CMD_SETTINGS_CURVE_LIST
const QString DOCUMENT_SERIALIZE_CMD_SETTINGS_CURVE_PROPERTIES
const QString DOCUMENT_SERIALIZE_CMD_SETTINGS_GRID_REMOVAL
const QString DOCUMENT_SERIALIZE_CMD_ADD_POINTS_GRAPH
const QString DOCUMENT_SERIALIZE_CMD_ADD_POINT_GRAPH
const QString DOCUMENT_SERIALIZE_CMD_GUIDELINE_REMOVE_Y_R
const QString DOCUMENT_SERIALIZE_CMD_GONG
const QString DOCUMENT_SERIALIZE_CMD_GUIDELINE_MOVE_Y_R
const QString DOCUMENT_SERIALIZE_CMD_SETTINGS_SEGMENTS
const QString DOCUMENT_SERIALIZE_CMD_SETTINGS_POINT_MATCH
const QString DOCUMENT_SERIALIZE_CMD_GUIDELINE_MOVE_X_T
const QString DOCUMENT_SERIALIZE_CMD_GUIDELINE_ADD_X_T
const QString DOCUMENT_SERIALIZE_CMD_GUIDELINE_ADD_Y_R
const QString DOCUMENT_SERIALIZE_CMD_SETTINGS_COLOR_FILTER
const QString DOCUMENT_SERIALIZE_CMD_UNDO_FOR_TEST
const QString DOCUMENT_SERIALIZE_CMD_TYPE
const QString DOCUMENT_SERIALIZE_CMD_SETTINGS_GENERAL
const QString DOCUMENT_SERIALIZE_CMD_CUT
const QString DOCUMENT_SERIALIZE_CMD_SETTINGS_DIGITIZE_CURVE
const QString DOCUMENT_SERIALIZE_CMD_DELETE
const QString DOCUMENT_SERIALIZE_CMD_GUIDELINE_REMOVE_X_T
const QString DOCUMENT_SERIALIZE_CMD_EDIT_POINT_AXIS
const QString DOCUMENT_SERIALIZE_CMD_EDIT_POINT_GRAPH
const QString DOCUMENT_SERIALIZE_CMD_SETTINGS_COORDS
const QString DOCUMENT_SERIALIZE_CMD_SETTINGS_AXES_CHECKER
const QString DOCUMENT_SERIALIZE_CMD_DESCRIPTION
const QString DOCUMENT_SERIALIZE_CMD_SETTINGS_EXPORT
const QString DOCUMENT_SERIALIZE_CMD_COPY
const QString DOCUMENT_SERIALIZE_CMD_SELECT_COORD_SYSTEM
#define ENGAUGE_ASSERT(cond)
Drop in replacement for Q_ASSERT.
log4cpp::Category * mainCat
Definition Logger.cpp:14
#define LOG4CPP_ERROR_S(logger)
Definition convenience.h:12

The documentation for this class was generated from the following files: