1 #include "DocumentSerialize.h"
6 #include <QXmlStreamReader>
7 #include <QXmlStreamWriter>
9 #include "SettingsForGraph.h"
12 const ColorPalette DEFAULT_LINE_COLOR_AXES = COLOR_PALETTE_TRANSPARENT;
13 const ColorPalette DEFAULT_LINE_COLOR_GRAPH = COLOR_PALETTE_BLUE;
14 const CurveConnectAs DEFAULT_LINE_CONNECT_AS_AXES = CONNECT_SKIP_FOR_AXIS_CURVE;
15 const CurveConnectAs DEFAULT_LINE_CONNECT_AS_GRAPH = CONNECT_AS_FUNCTION_SMOOTH;
16 const int DEFAULT_LINE_WIDTH_AXES = 0;
17 const int DEFAULT_LINE_WIDTH_GRAPH = 1;
21 QSettings settings (SETTINGS_ENGAUGE, SETTINGS_DIGITIZER);
22 settings.beginGroup (SETTINGS_GROUP_CURVE_AXES);
23 m_width = settings.value (SETTINGS_CURVE_LINE_WIDTH,
24 DEFAULT_LINE_WIDTH_AXES).toInt();
25 m_paletteColor = (ColorPalette) settings.value (SETTINGS_CURVE_LINE_COLOR,
26 DEFAULT_LINE_COLOR_AXES).toInt();
27 m_curveConnectAs = (CurveConnectAs) settings.value (SETTINGS_CURVE_LINE_CONNECT_AS,
28 DEFAULT_LINE_CONNECT_AS_AXES).toInt();
32 ColorPalette paletteColor,
33 CurveConnectAs curveConnectAs) :
35 m_paletteColor (paletteColor),
36 m_curveConnectAs (curveConnectAs)
41 m_width (other.width ()),
42 m_paletteColor (other.paletteColor()),
43 m_curveConnectAs (other.curveConnectAs())
49 m_width = other.
width ();
58 return m_curveConnectAs;
63 QSettings settings (SETTINGS_ENGAUGE, SETTINGS_DIGITIZER);
64 settings.beginGroup (SETTINGS_GROUP_CURVE_AXES);
65 int width = settings.value (SETTINGS_CURVE_LINE_WIDTH,
66 DEFAULT_LINE_WIDTH_AXES).toInt();
67 ColorPalette color = (ColorPalette) settings.value (SETTINGS_CURVE_LINE_COLOR,
68 DEFAULT_LINE_COLOR_AXES).toInt();
69 CurveConnectAs connectAs = (CurveConnectAs) settings.value (SETTINGS_CURVE_LINE_CONNECT_AS,
70 DEFAULT_LINE_CONNECT_AS_AXES).toInt();
80 int indexOneBased = index + 1;
83 QSettings settings (SETTINGS_ENGAUGE, SETTINGS_DIGITIZER);
84 settings.beginGroup (groupName);
85 int width = settings.value (SETTINGS_CURVE_LINE_WIDTH,
86 DEFAULT_LINE_WIDTH_GRAPH).toInt();
87 ColorPalette color = (ColorPalette) settings.value (SETTINGS_CURVE_LINE_COLOR,
88 DEFAULT_LINE_COLOR_GRAPH).toInt();
89 CurveConnectAs connectAs = (CurveConnectAs) settings.value (SETTINGS_CURVE_LINE_CONNECT_AS,
90 DEFAULT_LINE_CONNECT_AS_GRAPH).toInt();
99 LOG4CPP_INFO_S ((*mainCat)) <<
"LineStyle::loadXml";
101 QXmlStreamAttributes attributes = reader.attributes();
103 if (attributes.hasAttribute(DOCUMENT_SERIALIZE_LINE_STYLE_WIDTH) &&
104 attributes.hasAttribute(DOCUMENT_SERIALIZE_LINE_STYLE_COLOR) &&
105 attributes.hasAttribute(DOCUMENT_SERIALIZE_LINE_STYLE_CONNECT_AS)) {
107 setWidth (attributes.value(DOCUMENT_SERIALIZE_LINE_STYLE_WIDTH).toInt());
108 setPaletteColor ((ColorPalette) attributes.value(DOCUMENT_SERIALIZE_LINE_STYLE_COLOR).toInt());
109 setCurveConnectAs ((CurveConnectAs) attributes.value(DOCUMENT_SERIALIZE_LINE_STYLE_CONNECT_AS).toInt());
112 while ((reader.tokenType() != QXmlStreamReader::EndElement) ||
113 (reader.name() != DOCUMENT_SERIALIZE_LINE_STYLE)){
114 loadNextFromReader(reader);
117 reader.raiseError (
"Cannot read line style data");
123 return m_paletteColor;
127 QTextStream &str)
const
129 str << indentation <<
"LineStyle\n";
131 indentation += INDENTATION_DELTA;
133 str << indentation <<
"width=" << m_width <<
"\n";
134 str << indentation <<
"color=" << colorPaletteToString (m_paletteColor) <<
"\n";
135 str << indentation <<
"curveConnectAs=" << curveConnectAsToString (m_curveConnectAs) <<
"\n";
140 LOG4CPP_INFO_S ((*mainCat)) <<
"LineStyle::saveXml";
142 writer.writeStartElement(DOCUMENT_SERIALIZE_LINE_STYLE);
143 writer.writeAttribute (DOCUMENT_SERIALIZE_LINE_STYLE_WIDTH, QString::number(m_width));
144 writer.writeAttribute (DOCUMENT_SERIALIZE_LINE_STYLE_COLOR, QString::number (m_paletteColor));
145 writer.writeAttribute (DOCUMENT_SERIALIZE_LINE_STYLE_COLOR_STRING, colorPaletteToString (m_paletteColor));
146 writer.writeAttribute (DOCUMENT_SERIALIZE_LINE_STYLE_CONNECT_AS, QString::number (m_curveConnectAs));
147 writer.writeAttribute (DOCUMENT_SERIALIZE_LINE_STYLE_CONNECT_AS_STRING, curveConnectAsToString (m_curveConnectAs));
148 writer.writeEndElement();
Manage storage and retrieval of the settings for the curves.
void loadXml(QXmlStreamReader &reader)
Load model from serialized xml. Returns the curve name.
static LineStyle defaultGraphCurve(int index)
Initial default for index'th graph curve.
unsigned int width() const
Width of line.
LineStyle & operator=(const LineStyle &other)
Assignment operator.
static LineStyle defaultAxesCurve()
Initial default for axes curve.
void printStream(QString indentation, QTextStream &str) const
Debugging method that supports print method of this class and printStream method of some other class(...
QString groupNameForNthCurve(int indexOneBased) const
Return the group name, that appears in the settings file/registry, for the specified curve index...
Details for a specific Line.
ColorPalette paletteColor() const
Line color.
void setCurveConnectAs(CurveConnectAs curveConnectAs)
Set connect as.
CurveConnectAs curveConnectAs() const
Get method for connect type.
void setPaletteColor(ColorPalette paletteColor)
Set method for line color.
void saveXml(QXmlStreamWriter &writer) const
Serialize to stream.
void setWidth(int width)
Set width of line.
LineStyle()
Default constructor only for use when this class is being stored by a container that requires the def...