Files
qelectrotech-source-mirror/elementtextitem.cpp
xavierqet 89885422eb Les champs de texte sont dorenavant sauvegardes dans / lus depuis les fichiers *.qet
git-svn-id: svn+ssh://svn.tuxfamily.org/svnroot/qet/qet/trunk@68 bfdf4180-ca20-0410-9c96-a3a8aa849046
2007-02-24 19:56:29 +00:00

53 lines
1.6 KiB
C++

#include "elementtextitem.h"
ElementTextItem::ElementTextItem(QGraphicsItem *parent, QGraphicsScene *scene) : QGraphicsTextItem(parent, scene) {
follow_parent_rotations = false;
setTextInteractionFlags(Qt::TextEditorInteraction);
}
ElementTextItem::ElementTextItem(const QString &text, QGraphicsItem *parent, QGraphicsScene *scene) : QGraphicsTextItem(text, parent, scene) {
follow_parent_rotations = false;
setTextInteractionFlags(Qt::TextEditorInteraction);
}
void ElementTextItem::setPos(const QPointF &pos) {
QPointF actual_pos = pos;
actual_pos -= QPointF(0.0, boundingRect().height() / 2.0);
QGraphicsItem::setPos(actual_pos);
}
void ElementTextItem::setPos(qreal x, qreal y) {
setPos(QPointF(x, y));
}
QPointF ElementTextItem::pos() const {
QPointF actual_pos = QGraphicsTextItem::pos();
actual_pos += QPointF(0.0, boundingRect().height() / 2.0);
return(actual_pos);
}
/**
Permet de lire le texte a mettre dans le champ a partir d'un element XML.
Cette methode se base sur la position du champ pour assigner ou non la
valeur a ce champ.
@param e L'element XML representant le champ de texte
*/
void ElementTextItem::fromXml(QDomElement &e) {
QPointF _pos = pos();
if (e.attribute("x").toDouble() == _pos.x() && e.attribute("y").toDouble() == _pos.y()) {
setPlainText(e.attribute("text"));
}
}
/**
@param document Le document XML a utiliser
@return L'element XML representant ce champ de texte
*/
QDomElement ElementTextItem::toXml(QDomDocument &document) {
QDomElement result = document.createElement("input");
result.setAttribute("x", pos().x());
result.setAttribute("y", pos().y());
result.setAttribute("text", toPlainText());
return(result);
}