Engauge Digitizer  2
DocumentModelGridDisplay.cpp
Go to the documentation of this file.
1 /******************************************************************************************************
2  * (C) 2014 markummitchell@github.com. This file is part of Engauge Digitizer, which is released *
3  * under GNU General Public License version 2 (GPLv2) or (at your option) any later version. See file *
4  * LICENSE or go to gnu.org/licenses for details. Distribution requires prior written permission. *
5  ******************************************************************************************************/
6 
7 #include "CmdMediator.h"
9 #include "DocumentSerialize.h"
10 #include "EngaugeAssert.h"
11 #include "Logger.h"
12 #include <QObject>
13 #include <QTextStream>
14 #include "QtToString.h"
15 #include <QXmlStreamWriter>
16 #include "Xml.h"
17 
19 
21  m_stable (false),
22  m_disableX (GRID_COORD_DISABLE_COUNT),
23  m_countX (2),
24  m_startX (0.0),
25  m_stepX (1.0),
26  m_stopX (1.0),
27  m_disableY (GRID_COORD_DISABLE_COUNT),
28  m_countY (2),
29  m_startY (0.0),
30  m_stepY (1.0),
31  m_stopY (1.0),
32  m_paletteColor (DEFAULT_COLOR)
33 {
34 }
35 
37  m_stable (document.modelGridDisplay().stable()),
38  m_disableX (document.modelGridDisplay().disableX()),
39  m_countX (document.modelGridDisplay().countX()),
40  m_startX (document.modelGridDisplay().startX()),
41  m_stepX (document.modelGridDisplay().stepX()),
42  m_stopX (document.modelGridDisplay().stopX()),
43  m_disableY (document.modelGridDisplay().disableY()),
44  m_countY (document.modelGridDisplay().countY()),
45  m_startY (document.modelGridDisplay().startY()),
46  m_stepY (document.modelGridDisplay().stepY()),
47  m_stopY (document.modelGridDisplay().stopY()),
48  m_paletteColor (document.modelGridDisplay().paletteColor())
49 {
50 }
51 
53  m_stable(other.stable()),
54  m_disableX (other.disableX()),
55  m_countX (other.countX()),
56  m_startX (other.startX()),
57  m_stepX (other.stepX()),
58  m_stopX (other.stopX()),
59  m_disableY (other.disableY()),
60  m_countY (other.countY()),
61  m_startY (other.startY()),
62  m_stepY (other.stepY()),
63  m_stopY (other.stopY()),
64  m_paletteColor (other.paletteColor())
65 {
66 }
67 
69 {
70  m_stable = other.stable();
71  m_disableX = other.disableX();
72  m_countX = other.countX();
73  m_startX = other.startX();
74  m_stepX = other.stepX();
75  m_stopX = other.stopX();
76  m_disableY = other.disableY();
77  m_countY = other.countY();
78  m_startY = other.startY();
79  m_stepY = other.stepY();
80  m_stopY = other.stopY();
81  m_paletteColor = other.paletteColor();
82 
83  return *this;
84 }
85 
86 unsigned int DocumentModelGridDisplay::countX () const
87 {
88  return m_countX;
89 }
90 
91 unsigned int DocumentModelGridDisplay::countY () const
92 {
93  return m_countY;
94 }
95 
97 {
98  return m_disableX;
99 }
100 
102 {
103  return m_disableY;
104 }
105 
106 void DocumentModelGridDisplay::loadXml(QXmlStreamReader &reader)
107 {
108  LOG4CPP_INFO_S ((*mainCat)) << "DocumentModelGridDisplay::loadXml";
109 
110  bool success = true;
111 
112  QXmlStreamAttributes attributes = reader.attributes();
113 
114  if (attributes.hasAttribute(DOCUMENT_SERIALIZE_GRID_DISPLAY_STABLE) &&
115  attributes.hasAttribute(DOCUMENT_SERIALIZE_GRID_DISPLAY_DISABLE_X) &&
116  attributes.hasAttribute(DOCUMENT_SERIALIZE_GRID_DISPLAY_COUNT_X) &&
117  attributes.hasAttribute(DOCUMENT_SERIALIZE_GRID_DISPLAY_START_X) &&
118  attributes.hasAttribute(DOCUMENT_SERIALIZE_GRID_DISPLAY_STEP_X) &&
119  attributes.hasAttribute(DOCUMENT_SERIALIZE_GRID_DISPLAY_STOP_X) &&
120  attributes.hasAttribute(DOCUMENT_SERIALIZE_GRID_DISPLAY_DISABLE_Y) &&
121  attributes.hasAttribute(DOCUMENT_SERIALIZE_GRID_DISPLAY_COUNT_Y) &&
122  attributes.hasAttribute(DOCUMENT_SERIALIZE_GRID_DISPLAY_START_Y) &&
123  attributes.hasAttribute(DOCUMENT_SERIALIZE_GRID_DISPLAY_STEP_Y) &&
124  attributes.hasAttribute(DOCUMENT_SERIALIZE_GRID_DISPLAY_STOP_Y) &&
125  attributes.hasAttribute(DOCUMENT_SERIALIZE_GRID_DISPLAY_COLOR)) {
126 
127  // Boolean values
128  QString stableValue = attributes.value(DOCUMENT_SERIALIZE_GRID_DISPLAY_STABLE).toString();
129 
130  setStable (stableValue == DOCUMENT_SERIALIZE_BOOL_TRUE);
131  setDisableX (static_cast<GridCoordDisable> (attributes.value(DOCUMENT_SERIALIZE_GRID_DISPLAY_DISABLE_X).toInt()));
132  setCountX (attributes.value(DOCUMENT_SERIALIZE_GRID_DISPLAY_COUNT_X).toUInt());
133  setStartX (attributes.value(DOCUMENT_SERIALIZE_GRID_DISPLAY_START_X).toDouble());
134  setStepX (attributes.value(DOCUMENT_SERIALIZE_GRID_DISPLAY_STEP_X).toDouble());
135  setStopX (attributes.value(DOCUMENT_SERIALIZE_GRID_DISPLAY_STOP_X).toDouble());
136  setDisableY (static_cast<GridCoordDisable> (attributes.value(DOCUMENT_SERIALIZE_GRID_DISPLAY_DISABLE_Y).toUInt()));
137  setCountY (attributes.value(DOCUMENT_SERIALIZE_GRID_DISPLAY_COUNT_Y).toUInt());
138  setStartY (attributes.value(DOCUMENT_SERIALIZE_GRID_DISPLAY_START_Y).toDouble());
139  setStepY (attributes.value(DOCUMENT_SERIALIZE_GRID_DISPLAY_STEP_Y).toDouble());
140  setStopY (attributes.value(DOCUMENT_SERIALIZE_GRID_DISPLAY_STOP_Y).toDouble());
141  setPaletteColor (static_cast<ColorPalette> (attributes.value(DOCUMENT_SERIALIZE_GRID_DISPLAY_COLOR).toInt()));
142 
143  // Read until end of this subtree
144  while ((reader.tokenType() != QXmlStreamReader::EndElement) ||
145  (reader.name() != DOCUMENT_SERIALIZE_GRID_DISPLAY)){
146  loadNextFromReader(reader);
147  if (reader.atEnd()) {
148  success = false;
149  break;
150  }
151  }
152  }
153 
154  if (!success) {
155  reader.raiseError (QObject::tr ("Cannot read grid display data"));
156  }
157 }
158 
160 {
161  return m_paletteColor;
162 }
163 
164 void DocumentModelGridDisplay::printStream(QString indentation,
165  QTextStream &str) const
166 {
167  str << indentation << "DocumentModelGridDisplay\n";
168 
169  indentation += INDENTATION_DELTA;
170 
171  str << indentation << "stable=" << (m_stable ? "true" : "false") << "\n";
172  str << indentation << "disableX=" << m_disableX << "\n";
173  str << indentation << "countX=" << m_countX << "\n";
174  str << indentation << "startX=" << m_startX << "\n";
175  str << indentation << "stepX=" << m_stepX << "\n";
176  str << indentation << "stopX=" << m_stopX << "\n";
177  str << indentation << "disableY=" << m_disableY << "\n";
178  str << indentation << "countY=" << m_countY << "\n";
179  str << indentation << "startY=" << m_startY << "\n";
180  str << indentation << "stepY=" << m_stepY << "\n";
181  str << indentation << "stopY=" << m_stopY << "\n";
182  str << indentation << "color=" << colorPaletteToString (m_paletteColor) << "\n";
183 }
184 
185 void DocumentModelGridDisplay::saveXml(QXmlStreamWriter &writer) const
186 {
187  LOG4CPP_INFO_S ((*mainCat)) << "DocumentModelGridDisplay::saveXml";
188 
189  writer.writeStartElement(DOCUMENT_SERIALIZE_GRID_DISPLAY);
190  writer.writeAttribute(DOCUMENT_SERIALIZE_GRID_DISPLAY_STABLE, m_stable ?
193  writer.writeAttribute(DOCUMENT_SERIALIZE_GRID_DISPLAY_DISABLE_X, QString::number (m_disableX));
194  writer.writeAttribute(DOCUMENT_SERIALIZE_GRID_DISPLAY_COUNT_X, QString::number (m_countX));
195  writer.writeAttribute(DOCUMENT_SERIALIZE_GRID_DISPLAY_START_X, QString::number (m_startX));
196  writer.writeAttribute(DOCUMENT_SERIALIZE_GRID_DISPLAY_STEP_X, QString::number (m_stepX));
197  writer.writeAttribute(DOCUMENT_SERIALIZE_GRID_DISPLAY_STOP_X, QString::number (m_stopX));
198  writer.writeAttribute(DOCUMENT_SERIALIZE_GRID_DISPLAY_DISABLE_Y, QString::number (m_disableY));
199  writer.writeAttribute(DOCUMENT_SERIALIZE_GRID_DISPLAY_COUNT_Y, QString::number (m_countY));
200  writer.writeAttribute(DOCUMENT_SERIALIZE_GRID_DISPLAY_START_Y, QString::number (m_startY));
201  writer.writeAttribute(DOCUMENT_SERIALIZE_GRID_DISPLAY_STEP_Y, QString::number (m_stepY));
202  writer.writeAttribute(DOCUMENT_SERIALIZE_GRID_DISPLAY_STOP_Y, QString::number (m_stopY));
203  writer.writeAttribute(DOCUMENT_SERIALIZE_GRID_DISPLAY_COLOR, QString::number (m_paletteColor));
204  writer.writeAttribute(DOCUMENT_SERIALIZE_GRID_DISPLAY_COLOR_STRING, colorPaletteToString (m_paletteColor));
205  writer.writeEndElement();
206 }
207 
208 void DocumentModelGridDisplay::setCountX (unsigned int countX)
209 {
210  m_countX = countX;
211 }
212 
213 void DocumentModelGridDisplay::setCountY (unsigned int countY)
214 {
215  m_countY = countY;
216 }
217 
219 {
220  m_disableX = disableX;
221 }
222 
224 {
225  m_disableY = disableY;
226 }
227 
229 {
230  m_paletteColor = paletteColor;
231 }
232 
233 void DocumentModelGridDisplay::setStable(bool stable)
234 {
235  m_stable = stable;
236 }
237 
238 void DocumentModelGridDisplay::setStartX (double startX)
239 {
240  m_startX = startX;
241 }
242 
243 void DocumentModelGridDisplay::setStartY (double startY)
244 {
245  m_startY = startY;
246 }
247 
248 void DocumentModelGridDisplay::setStepX (double stepX)
249 {
250  m_stepX = stepX;
251 }
252 
253 void DocumentModelGridDisplay::setStepY (double stepY)
254 {
255  m_stepY = stepY;
256 }
257 
258 void DocumentModelGridDisplay::setStopX (double stopX)
259 {
260  m_stopX = stopX;
261 }
262 
263 void DocumentModelGridDisplay::setStopY (double stopY)
264 {
265  m_stopY = stopY;
266 }
267 
269 {
270  return m_stable;
271 }
272 
274 {
275  return m_startX;
276 }
277 
279 {
280  return m_startY;
281 }
282 
283 double DocumentModelGridDisplay::stepX() const
284 {
285  return m_stepX;
286 }
287 
288 double DocumentModelGridDisplay::stepY() const
289 {
290  return m_stepY;
291 }
292 
293 double DocumentModelGridDisplay::stopX() const
294 {
295  return m_stopX;
296 }
297 
298 double DocumentModelGridDisplay::stopY() const
299 {
300  return m_stopY;
301 }
Xml.h
DOCUMENT_SERIALIZE_GRID_DISPLAY_COUNT_Y
const QString DOCUMENT_SERIALIZE_GRID_DISPLAY_COUNT_Y
DOCUMENT_SERIALIZE_GRID_DISPLAY_COLOR
const QString DOCUMENT_SERIALIZE_GRID_DISPLAY_COLOR
DocumentModelGridDisplay::stepX
double stepX() const
Get method for x grid line increment.
Definition: DocumentModelGridDisplay.cpp:282
DocumentModelGridDisplay::countY
unsigned int countY() const
Get method for y grid line count.
Definition: DocumentModelGridDisplay.cpp:90
DocumentModelGridDisplay::DocumentModelGridDisplay
DocumentModelGridDisplay()
Default constructor.
Definition: DocumentModelGridDisplay.cpp:19
DEFAULT_COLOR
const ColorPalette DEFAULT_COLOR
Definition: DocumentModelGridDisplay.cpp:17
COLOR_PALETTE_BLACK
Definition: ColorPalette.h:15
DocumentModelGridDisplay.h
DocumentModelGridDisplay::stable
bool stable() const
Get method for stable flag.
Definition: DocumentModelGridDisplay.cpp:267
DOCUMENT_SERIALIZE_BOOL_TRUE
const QString DOCUMENT_SERIALIZE_BOOL_TRUE
ColorPalette
ColorPalette
Definition: ColorPalette.h:11
DocumentModelGridDisplay::setStepY
void setStepY(double yStep)
Set method for y grid line increment.
Definition: DocumentModelGridDisplay.cpp:252
DocumentModelGridDisplay::setPaletteColor
void setPaletteColor(ColorPalette paletteColor)
Set method for color.
Definition: DocumentModelGridDisplay.cpp:227
DocumentModelGridDisplay
Model for DlgSettingsGridDisplay and CmdSettingsGridDisplay.
Definition: DocumentModelGridDisplay.h:17
DOCUMENT_SERIALIZE_GRID_DISPLAY
const QString DOCUMENT_SERIALIZE_GRID_DISPLAY
CmdMediator.h
DocumentModelGridDisplay::loadXml
virtual void loadXml(QXmlStreamReader &reader)
Load model from serialized xml.
Definition: DocumentModelGridDisplay.cpp:105
DocumentModelGridDisplay::printStream
void printStream(QString indentation, QTextStream &str) const
Debugging method that supports print method of this class and printStream method of some other class(...
Definition: DocumentModelGridDisplay.cpp:163
Document
Storage of one imported image and the data attached to that image.
Definition: Document.h:40
EngaugeAssert.h
DocumentModelGridDisplay::setStable
void setStable(bool stable)
Set method for stable flag.
Definition: DocumentModelGridDisplay.cpp:232
DOCUMENT_SERIALIZE_GRID_DISPLAY_COUNT_X
const QString DOCUMENT_SERIALIZE_GRID_DISPLAY_COUNT_X
DocumentSerialize.h
DocumentModelGridDisplay::setStartX
void setStartX(double startX)
Set method for x grid line lower bound (inclusive).
Definition: DocumentModelGridDisplay.cpp:237
DOCUMENT_SERIALIZE_GRID_DISPLAY_STEP_Y
const QString DOCUMENT_SERIALIZE_GRID_DISPLAY_STEP_Y
DocumentModelGridDisplay::disableX
GridCoordDisable disableX() const
Get method for x grid line disabled variable.
Definition: DocumentModelGridDisplay.cpp:95
DocumentModelGridDisplay::setStepX
void setStepX(double stepX)
Set method for x grid line increment.
Definition: DocumentModelGridDisplay.cpp:247
GRID_COORD_DISABLE_COUNT
Definition: GridCoordDisable.h:15
DOCUMENT_SERIALIZE_GRID_DISPLAY_DISABLE_Y
const QString DOCUMENT_SERIALIZE_GRID_DISPLAY_DISABLE_Y
DocumentModelGridDisplay::setDisableX
void setDisableX(GridCoordDisable disableX)
Set method for x grid line disabled variable.
Definition: DocumentModelGridDisplay.cpp:217
Logger.h
DocumentModelGridDisplay::stopY
double stopY() const
Get method for y grid line upper bound (inclusive).
Definition: DocumentModelGridDisplay.cpp:297
DocumentModelGridDisplay::setStartY
void setStartY(double yStart)
Set method for y grid line lower bound (inclusive).
Definition: DocumentModelGridDisplay.cpp:242
LOG4CPP_INFO_S
#define LOG4CPP_INFO_S(logger)
Definition: convenience.h:18
DocumentModelGridDisplay::stepY
double stepY() const
Get method for y grid line increment.
Definition: DocumentModelGridDisplay.cpp:287
DocumentModelGridDisplay::startX
double startX() const
Get method for x grid line lower bound (inclusive).
Definition: DocumentModelGridDisplay.cpp:272
DOCUMENT_SERIALIZE_GRID_DISPLAY_STOP_Y
const QString DOCUMENT_SERIALIZE_GRID_DISPLAY_STOP_Y
DocumentModelGridDisplay::operator=
DocumentModelGridDisplay & operator=(const DocumentModelGridDisplay &other)
Assignment constructor.
Definition: DocumentModelGridDisplay.cpp:67
DocumentModelGridDisplay::setStopX
void setStopX(double stopX)
Set method for x grid line upper bound (inclusive).
Definition: DocumentModelGridDisplay.cpp:257
DOCUMENT_SERIALIZE_GRID_DISPLAY_STOP_X
const QString DOCUMENT_SERIALIZE_GRID_DISPLAY_STOP_X
DOCUMENT_SERIALIZE_GRID_DISPLAY_STEP_X
const QString DOCUMENT_SERIALIZE_GRID_DISPLAY_STEP_X
DOCUMENT_SERIALIZE_GRID_DISPLAY_STABLE
const QString DOCUMENT_SERIALIZE_GRID_DISPLAY_STABLE
mainCat
log4cpp::Category * mainCat
Definition: Logger.cpp:14
colorPaletteToString
QString colorPaletteToString(ColorPalette colorPalette)
Definition: ColorPalette.cpp:9
DocumentModelGridDisplay::stopX
double stopX() const
Get method for x grid line upper bound (inclusive).
Definition: DocumentModelGridDisplay.cpp:292
DocumentModelGridDisplay::paletteColor
ColorPalette paletteColor() const
Get method for color.
Definition: DocumentModelGridDisplay.cpp:158
DocumentModelGridDisplay::setStopY
void setStopY(double yStop)
Set method for y grid line upper bound (inclusive).
Definition: DocumentModelGridDisplay.cpp:262
INDENTATION_DELTA
const QString INDENTATION_DELTA
DocumentModelGridDisplay::disableY
GridCoordDisable disableY() const
Get method for y grid line disabled variable.
Definition: DocumentModelGridDisplay.cpp:100
DocumentModelGridDisplay::saveXml
virtual void saveXml(QXmlStreamWriter &writer) const
Save entire model as xml into stream.
Definition: DocumentModelGridDisplay.cpp:184
QtToString.h
DocumentModelGridDisplay::setDisableY
void setDisableY(GridCoordDisable disableY)
Set method for y grid line disabled variable.
Definition: DocumentModelGridDisplay.cpp:222
DOCUMENT_SERIALIZE_BOOL_FALSE
const QString DOCUMENT_SERIALIZE_BOOL_FALSE
DocumentModelGridDisplay::startY
double startY() const
Get method for y grid line lower bound (inclusive).
Definition: DocumentModelGridDisplay.cpp:277
DOCUMENT_SERIALIZE_GRID_DISPLAY_COLOR_STRING
const QString DOCUMENT_SERIALIZE_GRID_DISPLAY_COLOR_STRING
DocumentModelGridDisplay::setCountX
void setCountX(unsigned int countX)
Set method for x grid line count.
Definition: DocumentModelGridDisplay.cpp:207
loadNextFromReader
QXmlStreamReader::TokenType loadNextFromReader(QXmlStreamReader &reader)
Load next token from xml reader.
Definition: Xml.cpp:14
DocumentModelGridDisplay::setCountY
void setCountY(unsigned int countY)
Set method for y grid line count.
Definition: DocumentModelGridDisplay.cpp:212
DOCUMENT_SERIALIZE_GRID_DISPLAY_DISABLE_X
const QString DOCUMENT_SERIALIZE_GRID_DISPLAY_DISABLE_X
DOCUMENT_SERIALIZE_GRID_DISPLAY_START_X
const QString DOCUMENT_SERIALIZE_GRID_DISPLAY_START_X
DOCUMENT_SERIALIZE_GRID_DISPLAY_START_Y
const QString DOCUMENT_SERIALIZE_GRID_DISPLAY_START_Y
DocumentModelGridDisplay::countX
unsigned int countX() const
Get method for x grid line count.
Definition: DocumentModelGridDisplay.cpp:85
GridCoordDisable
GridCoordDisable
Definition: GridCoordDisable.h:11