From d847e6bf7929c8565bff4e17d9fd077b8e0ca74d Mon Sep 17 00:00:00 2001 From: Stefan Suhren Date: Mon, 8 Jun 2015 10:27:31 +0200 Subject: Add XML files for reading and writing --- rectangle.cpp | 53 ++++++++++++++++++++++++++++++++++++++++++++++++----- 1 file changed, 48 insertions(+), 5 deletions(-) (limited to 'rectangle.cpp') diff --git a/rectangle.cpp b/rectangle.cpp index 1a58add..edc8749 100644 --- a/rectangle.cpp +++ b/rectangle.cpp @@ -40,23 +40,24 @@ void Rectangle::draw(QPainter *painter) void Rectangle::move(const QPoint &oldPoint, const QPoint &newPoint) { - if(m_selected) + if (m_selected) { QPoint offset = newPoint - oldPoint; QVector3D vecOld(oldPoint); - if(vecOld.distanceToPoint(QVector3D(m_rectangle.topLeft())) < 5) + + if (vecOld.distanceToPoint(QVector3D(m_rectangle.topLeft())) < 5) { m_rectangle.setTopLeft(m_rectangle.topLeft() + offset); } - else if(vecOld.distanceToPoint(QVector3D(m_rectangle.topRight())) < 5) + else if (vecOld.distanceToPoint(QVector3D(m_rectangle.topRight())) < 5) { m_rectangle.setTopRight(m_rectangle.topRight() + offset); } - else if(vecOld.distanceToPoint(QVector3D(m_rectangle.bottomLeft())) < 5) + else if (vecOld.distanceToPoint(QVector3D(m_rectangle.bottomLeft())) < 5) { m_rectangle.setBottomLeft(m_rectangle.bottomLeft() + offset); } - else if(vecOld.distanceToPoint(QVector3D(m_rectangle.bottomRight())) < 5) + else if (vecOld.distanceToPoint(QVector3D(m_rectangle.bottomRight())) < 5) { m_rectangle.setBottomRight(m_rectangle.bottomRight() + offset); } @@ -67,3 +68,45 @@ void Rectangle::move(const QPoint &oldPoint, const QPoint &newPoint) } } } + + +bool Rectangle::attributesToDom(QDomDocument *doc, QDomElement &e) +{ + if (e.isNull()) + { + qDebug() << className() << "::attributesToDom Error: NULL element passed."; + return false; + } + else + { + e.setAttribute("x1", m_rectangle.topLeft().rx()); + e.setAttribute("y1", m_rectangle.topLeft().ry()); + e.setAttribute("x2", m_rectangle.bottomRight().rx()); + e.setAttribute("y2", m_rectangle.bottomRight().ry()); + + return true; + } +} + +bool Rectangle::attributesFromDom(const QDomElement &e) +{ + if (e.isNull()) + { + qDebug() << className() << "::attributesFromDom Error: NULL element passed."; + return false; + } + else + { + m_rectangle.setTopLeft(QPoint(e.attribute("x1", "0").toInt(), + e.attribute("y1", "0").toInt())); + m_rectangle.setBottomRight(QPoint(e.attribute("x2", "0").toInt(), + e.attribute("y2", "0").toInt())); + + return true; + } +} + +QString Rectangle::className() +{ + return "Rectangle"; +} -- cgit v1.2.3-70-g09d2