Engauge Digitizer  2
 All Classes Files Functions Variables Enumerations Enumerator Friends Pages
DocumentModelCommon.cpp
1 #include "CmdMediator.h"
2 #include "DocumentModelCommon.h"
3 #include "DocumentSerialize.h"
4 #include "Logger.h"
5 #include <QTextStream>
6 #include "QtToString.h"
7 #include <QXmlStreamWriter>
8 #include "Xml.h"
9 
10 const int DEFAULT_CURSOR_SIZE = 3;
11 const int DEFAULT_EXTRA_PRECISION = 1;
12 
14  m_cursorSize (DEFAULT_CURSOR_SIZE),
15  m_extraPrecision (DEFAULT_EXTRA_PRECISION)
16 {
17 }
18 
20  m_cursorSize (document.modelCommon().cursorSize()),
21  m_extraPrecision (document.modelCommon().extraPrecision())
22 {
23 }
24 
26  m_cursorSize (other.cursorSize()),
27  m_extraPrecision (other.extraPrecision())
28 {
29 }
30 
32 {
33  m_cursorSize = other.cursorSize();
34  m_extraPrecision = other.extraPrecision();
35 
36  return *this;
37 }
38 
40 {
41  return m_cursorSize;
42 }
43 
45 {
46  return m_extraPrecision;
47 }
48 
49 void DocumentModelCommon::loadXml(QXmlStreamReader &reader)
50 {
51  LOG4CPP_INFO_S ((*mainCat)) << "DocumentModelCommon::loadXml";
52 
53  bool success = true;
54 
55  QXmlStreamAttributes attributes = reader.attributes();
56 
57  if (attributes.hasAttribute(DOCUMENT_SERIALIZE_COMMON_CURSOR_SIZE) &&
58  attributes.hasAttribute(DOCUMENT_SERIALIZE_COMMON_EXTRA_PRECISION)) {
59 
60  setCursorSize (attributes.value(DOCUMENT_SERIALIZE_COMMON_CURSOR_SIZE).toInt());
61  setExtraPrecision (attributes.value(DOCUMENT_SERIALIZE_COMMON_EXTRA_PRECISION).toInt());
62 
63  // Read until end of this subtree
64  while ((reader.tokenType() != QXmlStreamReader::EndElement) ||
65  (reader.name() != DOCUMENT_SERIALIZE_COMMON)){
66  loadNextFromReader(reader);
67  if (reader.atEnd()) {
68  success = false;
69  break;
70  }
71  }
72  }
73 
74  if (!success) {
75  reader.raiseError ("Cannot read axes checker data");
76  }
77 }
78 
79 void DocumentModelCommon::printStream(QString indentation,
80  QTextStream &str) const
81 {
82  str << indentation << "DocumentModelCommon\n";
83 
84  indentation += INDENTATION_DELTA;
85 
86  str << indentation << "cursorSize=" << m_cursorSize << "\n";
87  str << indentation << "extraPrecision=" << m_extraPrecision << "\n";
88 }
89 
90 void DocumentModelCommon::saveXml(QXmlStreamWriter &writer) const
91 {
92  LOG4CPP_INFO_S ((*mainCat)) << "DocumentModelCommon::saveXml";
93 
94  writer.writeStartElement(DOCUMENT_SERIALIZE_COMMON);
95  writer.writeAttribute(DOCUMENT_SERIALIZE_COMMON_CURSOR_SIZE, QString::number (m_cursorSize));
96  writer.writeAttribute(DOCUMENT_SERIALIZE_COMMON_EXTRA_PRECISION, QString::number (m_extraPrecision));
97  writer.writeEndElement();
98 }
99 
101 {
102  m_cursorSize = cursorSize;
103 }
104 
105 void DocumentModelCommon::setExtraPrecision (int extraPrecision)
106 {
107  m_extraPrecision = extraPrecision;
108 }
int extraPrecision() const
Get method for extra digits of precsion.
Model for DlgSettingsCommon and CmdSettingsCommon.
virtual void saveXml(QXmlStreamWriter &writer) const
Save entire model as xml into stream.
DocumentModelCommon()
Default constructor.
int cursorSize() const
Get method for effective cursor size.
void setExtraPrecision(int extraPrecision)
Set method for extra digits of precision.
Storage of one imported image and the data attached to that image.
Definition: Document.h:29
virtual void loadXml(QXmlStreamReader &reader)
Load model from serialized xml.
void setCursorSize(int cursorSize)
Set method for effective cursor size.
DocumentModelCommon & operator=(const DocumentModelCommon &other)
Assignment constructor.
void printStream(QString indentation, QTextStream &str) const
Debugging method that supports print method of this class and printStream method of some other class(...