1 #include "CmdMediator.h"
2 #include "DocumentModelGridRemoval.h"
3 #include "DocumentSerialize.h"
6 #include <QXmlStreamWriter>
9 const double CLOSE_DISTANCE_DEFAULT = 10.0;
12 const int DEFAULT_COUNT = 2;
13 const double DEFAULT_NON_COUNT = 0.0;
17 m_removeDefinedGridLines (false),
18 m_closeDistance (CLOSE_DISTANCE_DEFAULT),
19 m_gridCoordDisableX (GRID_COORD_DISABLE_COUNT),
20 m_countX (DEFAULT_COUNT),
21 m_startX (DEFAULT_NON_COUNT),
22 m_stepX (DEFAULT_NON_COUNT),
23 m_stopX (DEFAULT_NON_COUNT),
24 m_gridCoordDisableY (GRID_COORD_DISABLE_COUNT),
25 m_countY (DEFAULT_COUNT),
26 m_startY (DEFAULT_NON_COUNT),
27 m_stepY (DEFAULT_NON_COUNT),
28 m_stopY (DEFAULT_NON_COUNT)
39 m_removeDefinedGridLines (false),
40 m_closeDistance (CLOSE_DISTANCE_DEFAULT),
41 m_gridCoordDisableX (GRID_COORD_DISABLE_COUNT),
45 m_stopX (startX + (countX - 1.0) * stepX),
46 m_gridCoordDisableY (GRID_COORD_DISABLE_COUNT),
50 m_stopY (startY + (countY - 1.0) * stepY)
55 m_stable (document.modelGridRemoval().stable()),
56 m_removeDefinedGridLines (document.modelGridRemoval().removeDefinedGridLines()),
57 m_closeDistance (document.modelGridRemoval().closeDistance()),
58 m_gridCoordDisableX (document.modelGridRemoval().gridCoordDisableX()),
59 m_countX (document.modelGridRemoval().countX()),
60 m_startX (document.modelGridRemoval().startX()),
61 m_stepX (document.modelGridRemoval().stepX()),
62 m_stopX (document.modelGridRemoval().stopX()),
63 m_gridCoordDisableY (document.modelGridRemoval().gridCoordDisableY()),
64 m_countY (document.modelGridRemoval().countY()),
65 m_startY (document.modelGridRemoval().startY()),
66 m_stepY (document.modelGridRemoval().stepY()),
67 m_stopY (document.modelGridRemoval().stopY())
72 m_stable (other.stable()),
73 m_removeDefinedGridLines (other.removeDefinedGridLines()),
74 m_closeDistance (other.closeDistance()),
75 m_gridCoordDisableX (other.gridCoordDisableX()),
76 m_countX (other.countX()),
77 m_startX (other.startX()),
78 m_stepX (other.stepX()),
79 m_stopX (other.stopX()),
80 m_gridCoordDisableY (other.gridCoordDisableX()),
81 m_countY (other.countY()),
82 m_startY (other.startY()),
83 m_stepY (other.stepY()),
84 m_stopY (other.stopY())
96 m_stepX = other.
stepX();
97 m_stopX = other.
stopX();
100 m_startY = other.
startY();
101 m_stepY = other.
stepY();
102 m_stopY = other.
stopY();
109 return m_closeDistance;
124 return m_gridCoordDisableX;
129 return m_gridCoordDisableY;
134 LOG4CPP_INFO_S ((*mainCat)) <<
"DocumentModelGridRemoval::loadXml";
138 QXmlStreamAttributes attributes = reader.attributes();
140 if (attributes.hasAttribute(DOCUMENT_SERIALIZE_GRID_REMOVAL_STABLE) &&
141 attributes.hasAttribute(DOCUMENT_SERIALIZE_GRID_REMOVAL_DEFINED_GRID_LINES) &&
142 attributes.hasAttribute(DOCUMENT_SERIALIZE_GRID_REMOVAL_CLOSE_DISTANCE) &&
143 attributes.hasAttribute(DOCUMENT_SERIALIZE_GRID_REMOVAL_COORD_DISABLE_X) &&
144 attributes.hasAttribute(DOCUMENT_SERIALIZE_GRID_REMOVAL_COUNT_X) &&
145 attributes.hasAttribute(DOCUMENT_SERIALIZE_GRID_REMOVAL_START_X) &&
146 attributes.hasAttribute(DOCUMENT_SERIALIZE_GRID_REMOVAL_STEP_X) &&
147 attributes.hasAttribute(DOCUMENT_SERIALIZE_GRID_REMOVAL_STOP_X) &&
148 attributes.hasAttribute(DOCUMENT_SERIALIZE_GRID_REMOVAL_COORD_DISABLE_Y) &&
149 attributes.hasAttribute(DOCUMENT_SERIALIZE_GRID_REMOVAL_COUNT_Y) &&
150 attributes.hasAttribute(DOCUMENT_SERIALIZE_GRID_REMOVAL_START_Y) &&
151 attributes.hasAttribute(DOCUMENT_SERIALIZE_GRID_REMOVAL_STEP_Y) &&
152 attributes.hasAttribute(DOCUMENT_SERIALIZE_GRID_REMOVAL_STOP_Y)) {
155 QString stableValue = attributes.value(DOCUMENT_SERIALIZE_GRID_REMOVAL_STABLE).toString();
156 QString definedValue = attributes.value(DOCUMENT_SERIALIZE_GRID_REMOVAL_DEFINED_GRID_LINES).toString();
158 setStable (stableValue == DOCUMENT_SERIALIZE_BOOL_TRUE);
160 setCloseDistance (attributes.value(DOCUMENT_SERIALIZE_GRID_REMOVAL_CLOSE_DISTANCE).toDouble());
161 setGridCoordDisableX ((GridCoordDisable) attributes.value(DOCUMENT_SERIALIZE_GRID_REMOVAL_COORD_DISABLE_X).toInt());
162 setCountX (attributes.value(DOCUMENT_SERIALIZE_GRID_REMOVAL_COUNT_X).toInt());
163 setStartX (attributes.value(DOCUMENT_SERIALIZE_GRID_REMOVAL_START_X).toDouble());
164 setStepX (attributes.value(DOCUMENT_SERIALIZE_GRID_REMOVAL_STEP_X).toDouble());
165 setStopX (attributes.value(DOCUMENT_SERIALIZE_GRID_REMOVAL_STOP_X).toDouble());
166 setGridCoordDisableY ((GridCoordDisable) attributes.value(DOCUMENT_SERIALIZE_GRID_REMOVAL_COORD_DISABLE_Y).toInt());
167 setCountY (attributes.value(DOCUMENT_SERIALIZE_GRID_REMOVAL_COUNT_Y).toInt());
168 setStartY (attributes.value(DOCUMENT_SERIALIZE_GRID_REMOVAL_START_Y).toDouble());
169 setStepY (attributes.value(DOCUMENT_SERIALIZE_GRID_REMOVAL_STEP_Y).toDouble());
170 setStopY (attributes.value(DOCUMENT_SERIALIZE_GRID_REMOVAL_STOP_Y).toDouble());
173 while ((reader.tokenType() != QXmlStreamReader::EndElement) ||
174 (reader.name() != DOCUMENT_SERIALIZE_GRID_REMOVAL)){
175 loadNextFromReader(reader);
176 if (reader.atEnd()) {
184 reader.raiseError (
"Cannot read grid removal data");
189 QTextStream &str)
const
191 str << indentation <<
"DocumentModelGridRemoval\n";
193 indentation += INDENTATION_DELTA;
195 str << indentation <<
"stable=" << (m_stable ?
"true" :
"false") <<
"\n";
196 str << indentation <<
"removeDefinedGridLines=" << (m_removeDefinedGridLines ?
"true" :
"false") <<
"\n";
197 str << indentation <<
"closeDistance=" << m_closeDistance <<
"\n";
198 str << indentation <<
"gridCoordDisableX=" << gridCoordDisableToString (m_gridCoordDisableX) <<
"\n";
199 str << indentation <<
"countX=" << m_countX <<
"\n";
200 str << indentation <<
"startX=" << m_startX <<
"\n";
201 str << indentation <<
"stepX=" << m_stepX <<
"\n";
202 str << indentation <<
"stopX=" << m_stopX <<
"\n";
203 str << indentation <<
"gridCoordDisableY=" << gridCoordDisableToString (m_gridCoordDisableY) <<
"\n";
204 str << indentation <<
"countY=" << m_countY <<
"\n";
205 str << indentation <<
"startY=" << m_startY <<
"\n";
206 str << indentation <<
"stepY=" << m_stepY <<
"\n";
207 str << indentation <<
"stopY=" << m_stopY <<
"\n";
212 return m_removeDefinedGridLines;
217 LOG4CPP_INFO_S ((*mainCat)) <<
"DocumentModelGridRemoval::saveXml";
219 writer.writeStartElement(DOCUMENT_SERIALIZE_GRID_REMOVAL);
220 writer.writeAttribute(DOCUMENT_SERIALIZE_GRID_REMOVAL_STABLE, m_stable ?
221 DOCUMENT_SERIALIZE_BOOL_TRUE :
222 DOCUMENT_SERIALIZE_BOOL_FALSE);
223 writer.writeAttribute(DOCUMENT_SERIALIZE_GRID_REMOVAL_DEFINED_GRID_LINES, m_removeDefinedGridLines ?
224 DOCUMENT_SERIALIZE_BOOL_TRUE :
225 DOCUMENT_SERIALIZE_BOOL_FALSE);
226 writer.writeAttribute(DOCUMENT_SERIALIZE_GRID_REMOVAL_CLOSE_DISTANCE, QString::number (m_closeDistance));
227 writer.writeAttribute(DOCUMENT_SERIALIZE_GRID_REMOVAL_COORD_DISABLE_X, QString::number (m_gridCoordDisableX));
228 writer.writeAttribute(DOCUMENT_SERIALIZE_GRID_REMOVAL_COORD_DISABLE_X_STRING, gridCoordDisableToString (m_gridCoordDisableX));
229 writer.writeAttribute(DOCUMENT_SERIALIZE_GRID_REMOVAL_COUNT_X, QString::number (m_countX));
230 writer.writeAttribute(DOCUMENT_SERIALIZE_GRID_REMOVAL_START_X, QString::number (m_startX));
231 writer.writeAttribute(DOCUMENT_SERIALIZE_GRID_REMOVAL_STEP_X, QString::number (m_stepX));
232 writer.writeAttribute(DOCUMENT_SERIALIZE_GRID_REMOVAL_STOP_X, QString::number (m_stopX));
233 writer.writeAttribute(DOCUMENT_SERIALIZE_GRID_REMOVAL_COORD_DISABLE_Y, QString::number (m_gridCoordDisableY));
234 writer.writeAttribute(DOCUMENT_SERIALIZE_GRID_REMOVAL_COORD_DISABLE_Y_STRING, gridCoordDisableToString (m_gridCoordDisableY));
235 writer.writeAttribute(DOCUMENT_SERIALIZE_GRID_REMOVAL_COUNT_Y, QString::number (m_countY));
236 writer.writeAttribute(DOCUMENT_SERIALIZE_GRID_REMOVAL_START_Y, QString::number (m_startY));
237 writer.writeAttribute(DOCUMENT_SERIALIZE_GRID_REMOVAL_STEP_Y, QString::number (m_stepY));
238 writer.writeAttribute(DOCUMENT_SERIALIZE_GRID_REMOVAL_STOP_Y, QString::number (m_stopY));
240 writer.writeEndElement();
260 m_gridCoordDisableX = gridCoordDisable;
265 m_gridCoordDisableY = gridCoordDisable;
double closeDistance() const
Get method for close distance.
virtual void saveXml(QXmlStreamWriter &writer) const
Save entire model as xml into stream.
DocumentModelGridRemoval()
Default constructor.
bool removeDefinedGridLines() const
Get method for removing defined grid lines.
void setCloseDistance(double closeDistance)
Set method for close distance.
double startY() const
Get method for y start.
void setCountX(int countX)
Set method for x count.
void setStopY(double stopY)
Set method for y stop.
void setStartY(double startY)
Set method for y start.
GridCoordDisable gridCoordDisableX() const
Get method for x coord parameter to disable.
void setStepY(double stepY)
Set method for y step.
bool stable() const
Get method for stable flag.
double stepY() const
Get method for y step.
GridCoordDisable gridCoordDisableY() const
Get method for y coord parameter to disable.
void setStartX(double startX)
Set method for x start.
virtual void loadXml(QXmlStreamReader &reader)
Load model from serialized xml.
DocumentModelGridRemoval & operator=(const DocumentModelGridRemoval &other)
Assignment constructor.
void setCountY(int countY)
Set method for y count.
void setStepX(double stepX)
Set method for x step.
double stopX() const
Get method for x stop.
void setRemoveDefinedGridLines(bool removeDefinedGridLines)
Set method for removing defined grid lines.
double startX() const
Get method for x start.
double stopY() const
Get method for y stop.
Storage of one imported image and the data attached to that image.
void setGridCoordDisableY(GridCoordDisable gridCoordDisable)
Set method for y coord parameter to disable.
void setGridCoordDisableX(GridCoordDisable gridCoordDisable)
Set method for x coord parameter to disable.
int countX() const
Get method for x count.
int countY() const
Get method for y count.
double stepX() const
Get method for x step.
void setStable()
Set the stable flag to true. This public version has no argument since it cannot be undone...
Model for DlgSettingsGridRemoval and CmdSettingsGridRemoval. The settings are unstable until the user...
void printStream(QString indentation, QTextStream &str) const
Debugging method that supports print method of this class and printStream method of some other class(...
void setStopX(double stopX)
Set method for x stop.