Engauge Digitizer
2
Toggle main menu visibility
Loading...
Searching...
No Matches
Document
DocumentModelDigitizeCurve.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
"
8
#include "
DocumentModelDigitizeCurve.h
"
9
#include "
DocumentSerialize.h
"
10
#include "
Logger.h
"
11
#include <QObject>
12
#include <QTextStream>
13
#include <QXmlStreamWriter>
14
#include "
Xml.h
"
15
16
const
bool
DEFAULT_CURSOR_STANDARD_CROSS
=
true
;
17
const
int
DEFAULT_CURSOR_INNER_RADIUS
= 5;
18
const
int
DEFAULT_CURSOR_LINE_WIDTH
= 2;
19
const
CursorSize
DEFAULT_CURSOR_SIZE
=
CURSOR_SIZE_32
;
20
21
DocumentModelDigitizeCurve::DocumentModelDigitizeCurve
() :
22
m_cursorStandardCross (
DEFAULT_CURSOR_STANDARD_CROSS
),
23
m_cursorInnerRadius (
DEFAULT_CURSOR_INNER_RADIUS
),
24
m_cursorLineWidth (
DEFAULT_CURSOR_LINE_WIDTH
),
25
m_cursorSize (
DEFAULT_CURSOR_SIZE
)
26
{
27
}
28
29
DocumentModelDigitizeCurve::DocumentModelDigitizeCurve
(
const
Document
&document) :
30
m_cursorStandardCross (document.modelDigitizeCurve().
cursorStandardCross
()),
31
m_cursorInnerRadius (document.modelDigitizeCurve().
cursorInnerRadius
()),
32
m_cursorLineWidth (document.modelDigitizeCurve().
cursorLineWidth
()),
33
m_cursorSize (document.modelDigitizeCurve().
cursorSize
())
34
{
35
}
36
37
DocumentModelDigitizeCurve::DocumentModelDigitizeCurve
(
const
DocumentModelDigitizeCurve
&other) :
38
m_cursorStandardCross (other.
cursorStandardCross
()),
39
m_cursorInnerRadius (other.
cursorInnerRadius
()),
40
m_cursorLineWidth (other.
cursorLineWidth
()),
41
m_cursorSize (other.
cursorSize
())
42
{
43
}
44
45
DocumentModelDigitizeCurve
&
DocumentModelDigitizeCurve::operator=
(
const
DocumentModelDigitizeCurve
&other)
46
{
47
m_cursorStandardCross = other.
cursorStandardCross
();
48
m_cursorInnerRadius = other.
cursorInnerRadius
();
49
m_cursorLineWidth = other.
cursorLineWidth
();
50
m_cursorSize = other.
cursorSize
();
51
52
return
*
this
;
53
}
54
55
int
DocumentModelDigitizeCurve::cursorInnerRadius
()
const
56
{
57
return
m_cursorInnerRadius;
58
}
59
60
int
DocumentModelDigitizeCurve::cursorLineWidth
()
const
61
{
62
return
m_cursorLineWidth;
63
}
64
65
CursorSize
DocumentModelDigitizeCurve::cursorSize
()
const
66
{
67
return
m_cursorSize;
68
}
69
70
bool
DocumentModelDigitizeCurve::cursorStandardCross
()
const
71
{
72
return
m_cursorStandardCross;
73
}
74
75
void
DocumentModelDigitizeCurve::loadXml
(QXmlStreamReader &reader)
76
{
77
qCInfo(ENGAUGE_LOG) <<
"DocumentModelDigitizeCurve::loadXml"
;
78
79
bool
success =
true
;
80
81
QXmlStreamAttributes attributes = reader.attributes();
82
83
if
(attributes.hasAttribute(
DOCUMENT_SERIALIZE_DIGITIZE_CURVE_CURSOR_INNER_RADIUS
) &&
84
attributes.hasAttribute(
DOCUMENT_SERIALIZE_DIGITIZE_CURVE_CURSOR_LINE_WIDTH
) &&
85
attributes.hasAttribute(
DOCUMENT_SERIALIZE_DIGITIZE_CURVE_CURSOR_SIZE
) &&
86
attributes.hasAttribute(
DOCUMENT_SERIALIZE_DIGITIZE_CURVE_CURSOR_STANDARD_CROSS
)) {
87
88
// Boolean values
89
QString standardCrossValue = attributes.value(
DOCUMENT_SERIALIZE_DIGITIZE_CURVE_CURSOR_STANDARD_CROSS
).toString();
90
91
setCursorInnerRadius
(attributes.value(
DOCUMENT_SERIALIZE_DIGITIZE_CURVE_CURSOR_INNER_RADIUS
).toInt());
92
setCursorLineWidth
(attributes.value(
DOCUMENT_SERIALIZE_DIGITIZE_CURVE_CURSOR_LINE_WIDTH
).toInt());
93
setCursorSize
(
static_cast<
CursorSize
>
(attributes.value(
DOCUMENT_SERIALIZE_DIGITIZE_CURVE_CURSOR_SIZE
).toInt()));
94
setCursorStandardCross
(standardCrossValue ==
DOCUMENT_SERIALIZE_BOOL_TRUE
);
95
96
// Read until end of this subtree
97
while
((reader.tokenType() != QXmlStreamReader::EndElement) ||
98
(reader.name() !=
DOCUMENT_SERIALIZE_DIGITIZE_CURVE
)){
99
loadNextFromReader
(reader);
100
if
(reader.atEnd()) {
101
success =
false
;
102
break
;
103
}
104
}
105
}
106
107
if
(!success) {
108
reader.raiseError (QObject::tr (
"Cannot read digitize curve data"
));
109
}
110
}
111
112
void
DocumentModelDigitizeCurve::printStream
(QString indentation,
113
QTextStream &str)
const
114
{
115
str << indentation <<
"DocumentModelDigitizeCurve\n"
;
116
117
indentation +=
INDENTATION_DELTA
;
118
119
str << indentation <<
"cursorStandardCross="
<< (m_cursorStandardCross ?
"true"
:
"false"
) <<
"\n"
;
120
str << indentation <<
"cursorInnerRadius="
<< m_cursorInnerRadius <<
"\n"
;
121
str << indentation <<
"cursorSize="
<< m_cursorSize <<
"\n"
;
122
str << indentation <<
"cursorLineWidth="
<< m_cursorLineWidth <<
"\n"
;
123
}
124
125
void
DocumentModelDigitizeCurve::saveXml
(QXmlStreamWriter &writer)
const
126
{
127
qCInfo(ENGAUGE_LOG) <<
"DocumentModelDigitizeCurve::saveXml"
;
128
129
writer.writeStartElement(
DOCUMENT_SERIALIZE_DIGITIZE_CURVE
);
130
writer.writeAttribute(
DOCUMENT_SERIALIZE_DIGITIZE_CURVE_CURSOR_INNER_RADIUS
, QString::number (m_cursorInnerRadius));
131
writer.writeAttribute(
DOCUMENT_SERIALIZE_DIGITIZE_CURVE_CURSOR_LINE_WIDTH
, QString::number (m_cursorLineWidth));
132
writer.writeAttribute(
DOCUMENT_SERIALIZE_DIGITIZE_CURVE_CURSOR_SIZE
, QString::number (m_cursorSize));
133
writer.writeAttribute(
DOCUMENT_SERIALIZE_DIGITIZE_CURVE_CURSOR_STANDARD_CROSS
, m_cursorStandardCross ?
134
DOCUMENT_SERIALIZE_BOOL_TRUE
:
135
DOCUMENT_SERIALIZE_BOOL_FALSE
);
136
writer.writeEndElement();
137
}
138
139
void
DocumentModelDigitizeCurve::setCursorInnerRadius
(
int
cursorInnerRadius
)
140
{
141
m_cursorInnerRadius =
cursorInnerRadius
;
142
}
143
144
void
DocumentModelDigitizeCurve::setCursorLineWidth
(
int
cursorLineWidth
)
145
{
146
m_cursorLineWidth =
cursorLineWidth
;
147
}
148
149
void
DocumentModelDigitizeCurve::setCursorSize
(
CursorSize
cursorSize
)
150
{
151
m_cursorSize =
cursorSize
;
152
}
153
154
void
DocumentModelDigitizeCurve::setCursorStandardCross
(
bool
cursorStandardCross
)
155
{
156
m_cursorStandardCross =
cursorStandardCross
;
157
}
CmdMediator.h
CursorSize
CursorSize
Custom cursor sizes supported on all platforms for the most part, according to QCursor documentation.
Definition
CursorSize.h:11
CURSOR_SIZE_32
@ CURSOR_SIZE_32
Definition
CursorSize.h:13
DEFAULT_CURSOR_LINE_WIDTH
const int DEFAULT_CURSOR_LINE_WIDTH
Definition
DocumentModelDigitizeCurve.cpp:18
DEFAULT_CURSOR_SIZE
const CursorSize DEFAULT_CURSOR_SIZE
Definition
DocumentModelDigitizeCurve.cpp:19
DEFAULT_CURSOR_INNER_RADIUS
const int DEFAULT_CURSOR_INNER_RADIUS
Definition
DocumentModelDigitizeCurve.cpp:17
DEFAULT_CURSOR_STANDARD_CROSS
const bool DEFAULT_CURSOR_STANDARD_CROSS
Definition
DocumentModelDigitizeCurve.cpp:16
DocumentModelDigitizeCurve.h
DocumentSerialize.h
DOCUMENT_SERIALIZE_DIGITIZE_CURVE_CURSOR_LINE_WIDTH
const QString DOCUMENT_SERIALIZE_DIGITIZE_CURVE_CURSOR_LINE_WIDTH
DOCUMENT_SERIALIZE_DIGITIZE_CURVE_CURSOR_INNER_RADIUS
const QString DOCUMENT_SERIALIZE_DIGITIZE_CURVE_CURSOR_INNER_RADIUS
DOCUMENT_SERIALIZE_DIGITIZE_CURVE_CURSOR_STANDARD_CROSS
const QString DOCUMENT_SERIALIZE_DIGITIZE_CURVE_CURSOR_STANDARD_CROSS
DOCUMENT_SERIALIZE_DIGITIZE_CURVE_CURSOR_SIZE
const QString DOCUMENT_SERIALIZE_DIGITIZE_CURVE_CURSOR_SIZE
DOCUMENT_SERIALIZE_DIGITIZE_CURVE
const QString DOCUMENT_SERIALIZE_DIGITIZE_CURVE
DOCUMENT_SERIALIZE_BOOL_TRUE
const QString DOCUMENT_SERIALIZE_BOOL_TRUE
DOCUMENT_SERIALIZE_BOOL_FALSE
const QString DOCUMENT_SERIALIZE_BOOL_FALSE
Logger.h
INDENTATION_DELTA
const QString INDENTATION_DELTA
loadNextFromReader
QXmlStreamReader::TokenType loadNextFromReader(QXmlStreamReader &reader)
Load next token from xml reader.
Definition
Xml.cpp:14
Xml.h
DocumentModelDigitizeCurve::setCursorStandardCross
void setCursorStandardCross(bool cursorStandardCross)
Set method for cursor type.
Definition
DocumentModelDigitizeCurve.cpp:154
DocumentModelDigitizeCurve::operator=
DocumentModelDigitizeCurve & operator=(const DocumentModelDigitizeCurve &other)
Assignment constructor.
Definition
DocumentModelDigitizeCurve.cpp:45
DocumentModelDigitizeCurve::DocumentModelDigitizeCurve
DocumentModelDigitizeCurve()
Default constructor.
Definition
DocumentModelDigitizeCurve.cpp:21
DocumentModelDigitizeCurve::setCursorLineWidth
void setCursorLineWidth(int lineWidth)
Set method for cursor line width.
Definition
DocumentModelDigitizeCurve.cpp:144
DocumentModelDigitizeCurve::setCursorInnerRadius
void setCursorInnerRadius(int innerRadius)
Set method for cursor inner radius.
Definition
DocumentModelDigitizeCurve.cpp:139
DocumentModelDigitizeCurve::cursorSize
CursorSize cursorSize() const
Get method for cursor size.
Definition
DocumentModelDigitizeCurve.cpp:65
DocumentModelDigitizeCurve::cursorInnerRadius
int cursorInnerRadius() const
Get method for cursor inner radius.
Definition
DocumentModelDigitizeCurve.cpp:55
DocumentModelDigitizeCurve::cursorStandardCross
bool cursorStandardCross() const
Get method for cursor type.
Definition
DocumentModelDigitizeCurve.cpp:70
DocumentModelDigitizeCurve::cursorLineWidth
int cursorLineWidth() const
Get method for cursor line width.
Definition
DocumentModelDigitizeCurve.cpp:60
DocumentModelDigitizeCurve::loadXml
virtual void loadXml(QXmlStreamReader &reader)
Load model from serialized xml.
Definition
DocumentModelDigitizeCurve.cpp:75
DocumentModelDigitizeCurve::printStream
void printStream(QString indentation, QTextStream &str) const
Debugging method that supports print method of this class and printStream method of some other class(...
Definition
DocumentModelDigitizeCurve.cpp:112
DocumentModelDigitizeCurve::setCursorSize
void setCursorSize(CursorSize cursorSize)
Set method for cursor size.
Definition
DocumentModelDigitizeCurve.cpp:149
DocumentModelDigitizeCurve::saveXml
virtual void saveXml(QXmlStreamWriter &writer) const
Save entire model as xml into stream.
Definition
DocumentModelDigitizeCurve.cpp:125
Document
Storage of one imported image and the data attached to that image.
Definition
Document.h:44
Generated on
for Engauge Digitizer by
1.17.0