19 #include "bezierarea.h"
21 #include "pencilerror.h"
23 BezierArea::BezierArea()
30 mColourNumber = colour;
36 while (i >= mVertex.size() )
38 i = i - mVertex.size();
42 i = i + mVertex.size();
47 void BezierArea::setSelected(
bool YesOrNo)
52 Status BezierArea::createDomElement( QXmlStreamWriter& xmlStream )
54 xmlStream.writeStartElement(
"area" );
55 xmlStream.writeAttribute(
"colourNumber", QString::number( mColourNumber ) );
57 int errorLocation = -1;
58 for (
int i = 0; i < mVertex.size(); i++ )
60 xmlStream.writeEmptyElement(
"vertex" );
61 xmlStream.writeAttribute(
"curve", QString::number( mVertex.at( i ).curveNumber ) );
62 xmlStream.writeAttribute(
"vertex", QString::number( mVertex.at( i ).vertexNumber ) );
64 if ( errorLocation < 0 && xmlStream.hasError() )
70 xmlStream.writeEndElement();
72 if ( xmlStream.hasError() && errorLocation >= 0 )
74 QStringList debugInfo = QStringList() <<
"BezierArea::createDomElement"
75 << QString(
"colourNumber = %1" ).arg( mColourNumber )
76 << QString(
"- mVertex[%1] has failed to write" ).arg( errorLocation )
77 << QString(
" curve = %1" ).arg( mVertex.at( errorLocation ).curveNumber )
78 << QString(
" vertex = %1 " ).arg( mVertex.at( errorLocation ).vertexNumber );
80 return Status( Status::FAIL, debugInfo );
86 void BezierArea::loadDomElement(QDomElement element)
88 mColourNumber = element.attribute(
"colourNumber").toInt();
90 QDomNode vertexTag = element.firstChild();
91 while (!vertexTag.isNull())
93 QDomElement vertexElement = vertexTag.toElement();
94 if (!vertexElement.isNull())
96 if (vertexElement.tagName() ==
"vertex")
98 mVertex.append(
VertexRef(vertexElement.attribute(
"curve").toInt() , vertexElement.attribute(
"vertex").toInt() ) );
101 vertexTag = vertexTag.nextSibling();