Engauge Digitizer 2
Loading...
Searching...
No Matches
DocumentModelSegments.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 "Logger.h"
11#include <QObject>
12#include <QTextStream>
13#include <QXmlStreamWriter>
14#include "Xml.h"
15
16const double DEFAULT_POINT_SEPARATION = 25;
17const double DEFAULT_MIN_LENGTH = 2;
18const double DEFAULT_LINE_WIDTH = 4;
20
22 m_pointSeparation (DEFAULT_POINT_SEPARATION),
23 m_minLength (DEFAULT_MIN_LENGTH),
24 m_fillCorners (false),
25 m_lineWidth (DEFAULT_LINE_WIDTH),
26 m_lineColor (DEFAULT_LINE_COLOR)
27{
28}
29
31 m_pointSeparation (document.modelSegments().pointSeparation()),
32 m_minLength (document.modelSegments().minLength()),
33 m_fillCorners (document.modelSegments().fillCorners()),
34 m_lineWidth (document.modelSegments().lineWidth()),
35 m_lineColor (document.modelSegments().lineColor())
36{
37}
38
40 m_pointSeparation (other.pointSeparation()),
41 m_minLength (other.minLength()),
42 m_fillCorners (other.fillCorners ()),
43 m_lineWidth (other.lineWidth()),
44 m_lineColor (other.lineColor())
45{
46}
47
49{
50 m_pointSeparation = other.pointSeparation();
51 m_minLength = other.minLength();
52 m_fillCorners = other.fillCorners ();
53 m_lineWidth = other.lineWidth();
54 m_lineColor = other.lineColor();
55
56 return *this;
57}
58
60{
61 return m_fillCorners;
62}
63
65{
66 return m_lineColor;
67}
68
70{
71 return m_lineWidth;
72}
73
75{
76 LOG4CPP_INFO_S ((*mainCat)) << "DocumentModelSegments::loadXml";
77
78 bool success = true;
79
80 // Read until end of this subtree
81 while ((reader.tokenType() != QXmlStreamReader::EndElement) ||
84 if (reader.atEnd()) {
85 success = false;
86 break;
87 }
88 }
89
90 if (!success) {
91 reader.raiseError(QObject::tr ("Cannot read segment data"));
92 }
93}
94
96{
97 return m_minLength;
98}
99
101{
102 return m_pointSeparation;
103}
104
106 QTextStream &str) const
107{
108 str << indentation << "DocumentModelSegments\n";
109
111
112 str << indentation << "pointSeparation=" << m_pointSeparation << "\n";
113 str << indentation << "minLength=" << m_minLength << "\n";
114 str << indentation << "fillCorners=" << (m_fillCorners ? "true" : "false") << "\n";
115 str << indentation << "lineWidth=" << m_lineWidth << "\n";
116 str << indentation << "lineColor=" << colorPaletteToString (m_lineColor) << "\n";
117}
118
120{
121 LOG4CPP_INFO_S ((*mainCat)) << "DocumentModelSegments::saveXml";
122
123 writer.writeStartElement(DOCUMENT_SERIALIZE_SEGMENTS);
124 writer.writeAttribute(DOCUMENT_SERIALIZE_SEGMENTS_POINT_SEPARATION, QString::number (m_pointSeparation));
125 writer.writeAttribute(DOCUMENT_SERIALIZE_SEGMENTS_MIN_LENGTH, QString::number (m_minLength));
126 writer.writeAttribute(DOCUMENT_SERIALIZE_SEGMENTS_FILL_CORNERS, m_fillCorners ?
129 writer.writeAttribute(DOCUMENT_SERIALIZE_SEGMENTS_LINE_WIDTH, QString::number (m_lineWidth));
130 writer.writeAttribute(DOCUMENT_SERIALIZE_SEGMENTS_LINE_COLOR, QString::number (m_lineColor));
132 writer.writeEndElement();
133}
134
136{
137 m_fillCorners = fillCorners;
138}
139
141{
142 m_lineColor = lineColor;
143}
144
146{
147 m_lineWidth = lineWidth;
148}
149
151{
152 m_minLength = minLength;
153}
154
156{
157 m_pointSeparation = pointSeparation;
158}
QString colorPaletteToString(ColorPalette colorPalette)
ColorPalette
@ COLOR_PALETTE_GREEN
const int INNER_RADIUS_MIN
const ColorPalette DEFAULT_LINE_COLOR
const double DEFAULT_LINE_WIDTH
const double DEFAULT_MIN_LENGTH
const double DEFAULT_POINT_SEPARATION
const QString DOCUMENT_SERIALIZE_SEGMENTS_MIN_LENGTH
const QString DOCUMENT_SERIALIZE_SEGMENTS_LINE_COLOR
const QString DOCUMENT_SERIALIZE_SEGMENTS_POINT_SEPARATION
const QString DOCUMENT_SERIALIZE_SEGMENTS
const QString DOCUMENT_SERIALIZE_SEGMENTS_LINE_WIDTH
const QString DOCUMENT_SERIALIZE_SEGMENTS_LINE_COLOR_STRING
const QString DOCUMENT_SERIALIZE_SEGMENTS_FILL_CORNERS
const QString DOCUMENT_SERIALIZE_BOOL_TRUE
const QString DOCUMENT_SERIALIZE_BOOL_FALSE
log4cpp::Category * mainCat
Definition Logger.cpp:14
const QString INDENTATION_DELTA
QXmlStreamReader::TokenType loadNextFromReader(QXmlStreamReader &reader)
Load next token from xml reader.
Definition Xml.cpp:14
Model for DlgSettingsSegments and CmdSettingsSegments.
virtual void loadXml(QXmlStreamReader &reader)
Load model from serialized xml.
DocumentModelSegments()
Default constructor.
void setFillCorners(bool fillCorners)
Set method for fill corners.
void setPointSeparation(double pointSeparation)
Set method for point separation.
void printStream(QString indentation, QTextStream &str) const
Debugging method that supports print method of this class and printStream method of some other class(...
DocumentModelSegments & operator=(const DocumentModelSegments &other)
Assignment constructor.
ColorPalette lineColor() const
Get method for line color.
double minLength() const
Get method for min length.
void setLineColor(ColorPalette lineColor)
Set method for line color.
bool fillCorners() const
Get method for fill corners.
virtual void saveXml(QXmlStreamWriter &writer) const
Save entire model as xml into stream.
void setLineWidth(double lineWidth)
Set method for line width.
double pointSeparation() const
Get method for point separation.
double lineWidth() const
Get method for line width.
void setMinLength(double minLength)
Set method for min length.
Storage of one imported image and the data attached to that image.
Definition Document.h:42
#define LOG4CPP_INFO_S(logger)
Definition convenience.h:18