1 #include "CmdMediator.h"
2 #include "CurveStyles.h"
3 #include "DocumentSerialize.h"
4 #include "EngaugeAssert.h"
7 #include <QXmlStreamReader>
8 #include <QXmlStreamWriter>
24 QStringList::const_iterator itr;
25 for (itr = graphCurveNames.begin (); itr != graphCurveNames.end (); itr++) {
27 const QString &graphCurveName = *itr;
37 QStringList::const_iterator itr;
38 for (itr = curveNames.begin(); itr != curveNames.end(); itr++) {
40 QString curveName = *itr;
42 m_curveStyles [curveName] = other.
curveStyle (curveName);
49 QStringList::const_iterator itr;
50 for (itr = curveNames.begin(); itr != curveNames.end(); itr++) {
52 QString curveName = *itr;
54 m_curveStyles [curveName] = other.
curveStyle (curveName);
63 CurveStylesInternal::const_iterator itr;
64 for (itr = m_curveStyles.begin(); itr != m_curveStyles.end(); itr++) {
66 curveNames << itr.key();
74 ENGAUGE_ASSERT (m_curveStyles.contains (curveName));
75 return m_curveStyles [curveName];
80 ENGAUGE_ASSERT (m_curveStyles.contains (curveName));
81 return m_curveStyles [curveName].lineStyle().paletteColor();
86 ENGAUGE_ASSERT (m_curveStyles.contains (curveName));
87 return m_curveStyles [curveName].lineStyle().curveConnectAs();
92 return m_curveStyles [curveName].lineStyle();
97 ENGAUGE_ASSERT (m_curveStyles.contains (curveName));
98 return m_curveStyles [curveName].lineStyle().width();
106 while (loadNextFromReader (reader)) {
108 if (reader.atEnd() || reader.hasError ()) {
113 if ((reader.tokenType() == QXmlStreamReader::EndElement) &&
114 (reader.name() == DOCUMENT_SERIALIZE_CURVE_STYLES)) {
119 if ((reader.tokenType() == QXmlStreamReader::StartElement) &&
120 (reader.name() == DOCUMENT_SERIALIZE_CURVE_STYLE)) {
124 QString curveName = curveStyle.
loadXml (reader);
131 reader.raiseError (
"Cannot read curve styles");
137 ENGAUGE_ASSERT (m_curveStyles.contains (curveName));
138 return m_curveStyles [curveName].pointStyle().paletteColor();
143 ENGAUGE_ASSERT (m_curveStyles.contains (curveName));
144 return m_curveStyles [curveName].pointStyle().isCircle();
149 ENGAUGE_ASSERT (m_curveStyles.contains (curveName));
150 return m_curveStyles [curveName].pointStyle().lineWidth();
155 ENGAUGE_ASSERT (m_curveStyles.contains (curveName));
156 return m_curveStyles [curveName].pointStyle().polygon();
161 ENGAUGE_ASSERT (m_curveStyles.contains (curveName));
162 return m_curveStyles [curveName].pointStyle().radius();
167 ENGAUGE_ASSERT (m_curveStyles.contains (curveName));
168 return m_curveStyles [curveName].pointStyle().shape ();
173 ENGAUGE_ASSERT (m_curveStyles.contains (curveName));
174 return m_curveStyles [curveName].pointStyle();
179 LOG4CPP_INFO_S ((*mainCat)) <<
"CurveStyles::saveXml";
181 writer.writeStartElement(DOCUMENT_SERIALIZE_CURVE_STYLES);
182 CurveStylesInternal::const_iterator itr;
183 for (itr = m_curveStyles.begin(); itr != m_curveStyles.end(); itr++) {
185 QString curveName = itr.key();
191 writer.writeEndElement();
197 ENGAUGE_ASSERT (m_curveStyles.contains (curveName));
202 ColorPalette lineColor)
204 ENGAUGE_ASSERT (m_curveStyles.contains (curveName));
206 curveStyle.setLineColor (lineColor);
210 CurveConnectAs curveConnectAs)
212 ENGAUGE_ASSERT (m_curveStyles.contains (curveName));
214 curveStyle.setLineConnectAs(curveConnectAs);
220 ENGAUGE_ASSERT (m_curveStyles.contains (curveName));
222 curveStyle.setLineWidth(width);
226 ColorPalette curveColor)
228 ENGAUGE_ASSERT (m_curveStyles.contains (curveName));
230 curveStyle.setPointColor (curveColor);
236 ENGAUGE_ASSERT (m_curveStyles.contains (curveName));
238 curveStyle.setPointLineWidth (width);
244 ENGAUGE_ASSERT (m_curveStyles.contains (curveName));
246 curveStyle.setPointRadius (radius);
252 ENGAUGE_ASSERT (m_curveStyles.contains (curveName));
254 curveStyle.setPointShape (shape);
void setLineColor(const QString &curveName, ColorPalette lineColor)
Set method for line color in specified curve.
QStringList curveNames() const
List of all curve names.
QPolygonF pointPolygon(const QString &curveName) const
Get method for curve point polygon in specified curve.
void setLineConnectAs(const QString &curveName, CurveConnectAs curveConnectAs)
Set method for connect as method for lines in specified curve.
bool pointIsCircle(const QString &curveName) const
Get method for curve point is circle in specified curve.
const PointStyle pointStyle(const QString &curveName) const
Get method for copying one point style. Cannot return just a reference or else there is a warning abo...
void saveXml(QXmlStreamWriter &writer, const QString &curveName) const
Serialize to xml.
void setLineWidth(const QString &curveName, int width)
Set method for line width in specified curve.
CurveStyles()
Default constructor.
void setPointLineWidth(const QString &curveName, int width)
Set method for curve point perimeter line width.
Model for DlgSettingsCurveProperties and CmdSettingsCurveProperties.
CurveStyles & operator=(const CurveStyles &other)
Assignment constructor.
void loadXml(QXmlStreamReader &reader)
Load from serialized xml.
LineStyle lineStyle() const
Get method for LineStyle.
const Curve & curveAxes() const
Get method for axis curve.
int pointRadius(const QString &curveName) const
Get method for curve point radius.
PointStyle pointStyle() const
Get method for PointStyle.
int lineWidth(const QString &curveName) const
Get method for line width in specified curve.
ColorPalette lineColor(const QString &curveName) const
Get method for line color in specified curve.
const LineStyle lineStyle(const QString &curveName) const
Get method for copying one line style in one step.
void setCurveStyle(const QString &curveName, const CurveStyle &curveStyle)
Set method for curve style.
Details for a specific Point.
QString loadXml(QXmlStreamReader &reader)
Load from serialized xml. Returns the curve name.
CurveConnectAs lineConnectAs(const QString &curveName) const
Get method for connect as method for lines in specified curve.
Container for LineStyle and PointStyle for one Curve.
Storage of one imported image and the data attached to that image.
Container for one set of digitized Points.
Details for a specific Line.
PointShape pointShape(const QString &curveName) const
Get method for curve point shape.
QStringList curvesGraphsNames() const
See CurvesGraphs::curvesGraphsNames.
ColorPalette pointColor(const QString &curveName) const
Get method for curve point color in specified curve.
void setPointRadius(const QString &curveName, int radius)
Set method for curve point radius.
void saveXml(QXmlStreamWriter &writer) const
Serialize to xml.
int pointLineWidth(const QString &curveName) const
Get method for curve point line width.
CurveStyle curveStyle(const QString &curveName) const
CurveStyle in specified curve.
const Curve * curveForCurveName(const QString &curveName) const
See CurvesGraphs::curveForCurveNames, although this also works for AXIS_CURVE_NAME.
CurveStyle curveStyle() const
Return the curve style.
void setPointShape(const QString &curveName, PointShape shape)
Set method for curve point shape in specified curve.
void setPointColor(const QString &curveName, ColorPalette curveColor)
Set method curve point color in specified curve.