Engauge Digitizer  2
 All Classes Files Functions Variables Enumerations Enumerator Friends Pages
CurveStyle.cpp
1 #include "CurveStyle.h"
2 #include "DocumentSerialize.h"
3 #include "Logger.h"
4 #include <QTextStream>
5 #include <QXmlStreamReader>
6 #include <QXmlStreamWriter>
7 #include "Xml.h"
8 
10 {
11 }
12 
14  const PointStyle &pointStyle) :
15  m_pointStyle (pointStyle),
16  m_lineStyle (lineStyle)
17 {
18 }
19 
21 {
22  return m_lineStyle;
23 }
24 
25 QString CurveStyle::loadXml(QXmlStreamReader &reader)
26 {
27  LOG4CPP_INFO_S ((*mainCat)) << "CurveStyle::loadXml";
28 
29  bool success = true;
30  QString curveName;
31 
32  QXmlStreamAttributes attributes = reader.attributes();
33 
34  if (attributes.hasAttribute(DOCUMENT_SERIALIZE_CURVE_NAME)) {
35 
36  curveName = attributes.value (DOCUMENT_SERIALIZE_CURVE_NAME).toString();
37 
38  // Read until end of this subtree
39  while ((reader.tokenType() != QXmlStreamReader::EndElement) ||
40  (reader.name() != DOCUMENT_SERIALIZE_POINT_STYLE)){
41  loadNextFromReader(reader);
42 
43  if (reader.atEnd()) {
44  success = false;
45  break;
46  }
47 
48  if ((reader.tokenType() == QXmlStreamReader::StartElement) &&
49  (reader.name() == DOCUMENT_SERIALIZE_LINE_STYLE)) {
50 
51  m_lineStyle.loadXml (reader);
52 
53  } else if ((reader.tokenType() == QXmlStreamReader::StartElement) &
54  (reader.name() == DOCUMENT_SERIALIZE_POINT_STYLE)) {
55 
56  m_pointStyle.loadXml (reader);
57 
58  }
59  }
60  }
61 
62  if (!success) {
63  reader.raiseError ("Cannot read curve style data");
64  }
65 
66  return curveName;
67 }
68 
70 {
71  return m_pointStyle;
72 }
73 
74 void CurveStyle::printStream(QString indentation,
75  QTextStream &str) const
76 {
77  str << indentation << "CurveStyle\n";
78 
79  indentation += INDENTATION_DELTA;
80 
81  m_pointStyle.printStream (indentation,
82  str);
83  m_lineStyle.printStream (indentation,
84  str);
85 }
86 
87 void CurveStyle::saveXml(QXmlStreamWriter &writer,
88  const QString &curveName) const
89 {
90  LOG4CPP_INFO_S ((*mainCat)) << "CurveStyle::saveXml";
91 
92  writer.writeStartElement(DOCUMENT_SERIALIZE_CURVE_STYLE);
93  writer.writeAttribute (DOCUMENT_SERIALIZE_CURVE_NAME, curveName);
94  m_lineStyle.saveXml (writer);
95  m_pointStyle.saveXml (writer);
96  writer.writeEndElement();
97 }
98 
99 void CurveStyle::setLineColor (ColorPalette lineColor)
100 {
101  m_lineStyle.setPaletteColor(lineColor);
102 }
103 
104 void CurveStyle::setLineConnectAs (CurveConnectAs curveConnectAs)
105 {
106  m_lineStyle.setCurveConnectAs(curveConnectAs);
107 }
108 
109 void CurveStyle::setLineStyle(const LineStyle &lineStyle)
110 {
111  m_lineStyle = lineStyle;
112 }
113 
114 void CurveStyle::setLineWidth (int width)
115 {
116  m_lineStyle.setWidth(width);
117 }
118 
119 void CurveStyle::setPointColor (ColorPalette curveColor)
120 {
121  m_pointStyle.setPaletteColor(curveColor);
122 }
123 
125 {
126  m_pointStyle.setLineWidth(width);
127 }
128 
129 void CurveStyle::setPointRadius (int radius)
130 {
131  m_pointStyle.setRadius(radius);
132 }
133 
134 void CurveStyle::setPointShape (PointShape shape)
135 {
136  m_pointStyle.setShape(shape);
137 }
138 
139 void CurveStyle::setPointStyle(const PointStyle &pointStyle)
140 {
141  m_pointStyle = pointStyle;
142 }
void loadXml(QXmlStreamReader &reader)
Load model from serialized xml. Returns the curve name.
Definition: LineStyle.cpp:62
void saveXml(QXmlStreamWriter &writer, const QString &curveName) const
Serialize to xml.
Definition: CurveStyle.cpp:87
void printStream(QString indentation, QTextStream &str) const
Debugging method that supports print method of this class and printStream method of some other class(...
Definition: CurveStyle.cpp:74
CurveStyle()
Default constructor.
Definition: CurveStyle.cpp:9
void printStream(QString indentation, QTextStream &str) const
Debugging method that supports print method of this class and printStream method of some other class(...
Definition: PointStyle.cpp:198
void loadXml(QXmlStreamReader &reader)
Load model from serialized xml. Returns the curve name.
Definition: PointStyle.cpp:82
LineStyle lineStyle() const
Get method for LineStyle.
Definition: CurveStyle.cpp:20
void setPointShape(PointShape shape)
Set method for curve point shape in specified curve.
Definition: CurveStyle.cpp:134
PointStyle pointStyle() const
Get method for PointStyle.
Definition: CurveStyle.cpp:69
void setLineConnectAs(CurveConnectAs curveConnectAs)
Set method for connect as method for lines in specified curve.
Definition: CurveStyle.cpp:104
void setLineStyle(const LineStyle &lineStyle)
Set method for LineStyle.
Definition: CurveStyle.cpp:109
void printStream(QString indentation, QTextStream &str) const
Debugging method that supports print method of this class and printStream method of some other class(...
Definition: LineStyle.cpp:91
void setPointRadius(int radius)
Set method for curve point radius.
Definition: CurveStyle.cpp:129
void setPointLineWidth(int width)
Set method for curve point perimeter line width.
Definition: CurveStyle.cpp:124
void setShape(PointShape shape)
Set method for point shape.
Definition: PointStyle.cpp:245
void saveXml(QXmlStreamWriter &writer) const
Serialize to stream.
Definition: PointStyle.cpp:216
Details for a specific Point.
Definition: PointStyle.h:14
QString loadXml(QXmlStreamReader &reader)
Load from serialized xml. Returns the curve name.
Definition: CurveStyle.cpp:25
void setPaletteColor(ColorPalette paletteColor)
Set method for point color.
Definition: PointStyle.cpp:235
Details for a specific Line.
Definition: LineStyle.h:13
void setLineColor(ColorPalette lineColor)
Set method for line color in specified curve.
Definition: CurveStyle.cpp:99
void setPointColor(ColorPalette curveColor)
Set method curve point color in specified curve.
Definition: CurveStyle.cpp:119
void setCurveConnectAs(CurveConnectAs curveConnectAs)
Set connect as.
Definition: LineStyle.cpp:116
void setPaletteColor(ColorPalette paletteColor)
Set method for line color.
Definition: LineStyle.cpp:121
void setLineWidth(int width)
Set method for line width in specified curve.
Definition: CurveStyle.cpp:114
void saveXml(QXmlStreamWriter &writer) const
Serialize to stream.
Definition: LineStyle.cpp:103
void setWidth(int width)
Set width of line.
Definition: LineStyle.cpp:126
void setPointStyle(const PointStyle &pointStyle)
Set method for PointStyle.
Definition: CurveStyle.cpp:139
void setLineWidth(int width)
Set method for line width.
Definition: PointStyle.cpp:230
void setRadius(int radius)
Set method for point radius.
Definition: PointStyle.cpp:240