ElementEditor: parttext.cpp code style

This commit is contained in:
damianCaceres
2020-08-13 12:01:27 +01:00
committed by Laurent Trinques
parent 9bc6f7fa94
commit ba1242d5bb

View File

@@ -30,13 +30,13 @@
PartText::PartText(QETElementEditor *editor, QGraphicsItem *parent) : PartText::PartText(QETElementEditor *editor, QGraphicsItem *parent) :
QGraphicsTextItem(parent), QGraphicsTextItem(parent),
CustomElementPart(editor), CustomElementPart(editor),
previous_text() previous_text()
{ {
document() -> setDocumentMargin(1.0); document() -> setDocumentMargin(1.0);
setDefaultTextColor(Qt::black); setDefaultTextColor(Qt::black);
setFont(QETApp::diagramTextsFont()); setFont(QETApp::diagramTextsFont());
real_font_size_ = font().pointSize(); real_font_size_ = font().pointSize();
setFlags(QGraphicsItem::ItemIsSelectable | QGraphicsItem::ItemSendsGeometryChanges | QGraphicsItem::ItemIsMovable); setFlags(QGraphicsItem::ItemIsSelectable | QGraphicsItem::ItemSendsGeometryChanges | QGraphicsItem::ItemIsMovable);
setAcceptHoverEvents(true); setAcceptHoverEvents(true);
setDefaultTextColor(Qt::black); setDefaultTextColor(Qt::black);
setPlainText(QObject::tr("T", "default text when adding a text in the element editor")); setPlainText(QObject::tr("T", "default text when adding a text in the element editor"));
@@ -55,22 +55,19 @@ PartText::~PartText() {
Importe les proprietes d'un texte statique depuis un element XML Importe les proprietes d'un texte statique depuis un element XML
@param xml_element Element XML a lire @param xml_element Element XML a lire
*/ */
void PartText::fromXml(const QDomElement &xml_element) void PartText::fromXml(const QDomElement &xml_element) {
{
bool ok; bool ok;
if (xml_element.hasAttribute("size")) if (xml_element.hasAttribute("size")) {
{
int font_size = xml_element.attribute("size").toInt(&ok); int font_size = xml_element.attribute("size").toInt(&ok);
if (!ok || font_size < 1) { if (!ok || font_size < 1) {
font_size = 20; font_size = 20;
} }
QFont font_ = this->font(); QFont font_ = this -> font();
font_.setPointSize(font_size); font_.setPointSize(font_size);
setFont(font_); setFont(font_);
} }
else if (xml_element.hasAttribute("font")) else if (xml_element.hasAttribute("font")) {
{
QFont font_; QFont font_;
font_.fromString(xml_element.attribute("font")); font_.fromString(xml_element.attribute("font"));
setFont(font_); setFont(font_);
@@ -79,7 +76,7 @@ void PartText::fromXml(const QDomElement &xml_element)
setDefaultTextColor(QColor(xml_element.attribute("color", "#000000"))); setDefaultTextColor(QColor(xml_element.attribute("color", "#000000")));
setPlainText(xml_element.attribute("text")); setPlainText(xml_element.attribute("text"));
setPos(xml_element.attribute("x").toDouble(), setPos(xml_element.attribute("x").toDouble(),
xml_element.attribute("y").toDouble()); xml_element.attribute("y").toDouble());
setRotation(xml_element.attribute("rotation", QString::number(0)).toDouble()); setRotation(xml_element.attribute("rotation", QString::number(0)).toDouble());
} }
@@ -88,8 +85,7 @@ void PartText::fromXml(const QDomElement &xml_element)
@param xml_document Document XML a utiliser pour creer l'element XML @param xml_document Document XML a utiliser pour creer l'element XML
@return un element XML decrivant le texte statique @return un element XML decrivant le texte statique
*/ */
const QDomElement PartText::toXml(QDomDocument &xml_document) const const QDomElement PartText::toXml(QDomDocument &xml_document) const {
{
QDomElement xml_element = xml_document.createElement(xmlName()); QDomElement xml_element = xml_document.createElement(xmlName());
xml_element.setAttribute("x", QString::number(pos().x())); xml_element.setAttribute("x", QString::number(pos().x()));
@@ -105,8 +101,7 @@ const QDomElement PartText::toXml(QDomDocument &xml_document) const
/** /**
@return Les coordonnees du point situe en bas a gauche du texte. @return Les coordonnees du point situe en bas a gauche du texte.
*/ */
QPointF PartText::margin() const QPointF PartText::margin() const {
{
QFont used_font = font(); QFont used_font = font();
QFontMetrics qfm(used_font); QFontMetrics qfm(used_font);
qreal document_margin = document() -> documentMargin(); qreal document_margin = document() -> documentMargin();
@@ -130,7 +125,6 @@ void PartText::focusInEvent(QFocusEvent *e) {
QGraphicsTextItem::focusInEvent(e); QGraphicsTextItem::focusInEvent(e);
} }
/** /**
@reimp QGraphicsItem::focusOutEvent(QFocusEvent *) @reimp QGraphicsItem::focusOutEvent(QFocusEvent *)
@param e The QFocusEvent object describing the focus loss. @param e The QFocusEvent object describing the focus loss.
@@ -172,8 +166,10 @@ void PartText::mouseDoubleClickEvent(QGraphicsSceneMouseEvent *e) {
@param value Valeur numerique relative au changement @param value Valeur numerique relative au changement
*/ */
QVariant PartText::itemChange(GraphicsItemChange change, const QVariant &value) { QVariant PartText::itemChange(GraphicsItemChange change, const QVariant &value) {
if (change == QGraphicsItem::ItemPositionHasChanged || change == QGraphicsItem::ItemSceneHasChanged || change == QGraphicsItem::ItemSelectedHasChanged) { if (change == QGraphicsItem::ItemPositionHasChanged ||
updateCurrentPartEditor(); change == QGraphicsItem::ItemSceneHasChanged ||
change == QGraphicsItem::ItemSelectedHasChanged) {
updateCurrentPartEditor();
} }
return(QGraphicsTextItem::itemChange(change, value)); return(QGraphicsTextItem::itemChange(change, value));
} }
@@ -230,64 +226,56 @@ void PartText::handleUserTransformation(const QRectF &initial_selection_rect, co
setProperty("real_size", qMax(1, qRound(new_font_size))); setProperty("real_size", qMax(1, qRound(new_font_size)));
} }
void PartText::setDefaultTextColor(const QColor &color) void PartText::setDefaultTextColor(const QColor &color) {
{ if (color != this -> defaultTextColor()) {
if (color != this->defaultTextColor())
{
QGraphicsTextItem::setDefaultTextColor(color); QGraphicsTextItem::setDefaultTextColor(color);
emit colorChanged(color); emit colorChanged(color);
} }
} }
void PartText::setPlainText(const QString &text) void PartText::setPlainText(const QString &text) {
{ if (text != this -> toPlainText()) {
if (text != this->toPlainText())
{
QGraphicsTextItem::setPlainText(text); QGraphicsTextItem::setPlainText(text);
emit plainTextChanged(text); emit plainTextChanged(text);
} }
} }
void PartText::setFont(const QFont &font) void PartText::setFont(const QFont &font) {
{ if (font != this -> font()) {
if (font != this->font())
{
QGraphicsTextItem::setFont(font); QGraphicsTextItem::setFont(font);
emit fontChanged(font); emit fontChanged(font);
} }
} }
void PartText::mouseMoveEvent(QGraphicsSceneMouseEvent *event) {
void PartText::mouseMoveEvent(QGraphicsSceneMouseEvent *event) if((event -> buttons() & Qt::LeftButton) && (flags() & QGraphicsItem::ItemIsMovable)) {
{ QPointF pos = event -> scenePos() + (m_origine_pos - event -> buttonDownScenePos(Qt::LeftButton));
if((event->buttons() & Qt::LeftButton) && (flags() & QGraphicsItem::ItemIsMovable)) event -> modifiers() == Qt::ControlModifier ? setPos(pos) : setPos(elementScene() -> snapToGrid(pos));
{ }
QPointF pos = event->scenePos() + (m_origine_pos - event->buttonDownScenePos(Qt::LeftButton)); else {
event->modifiers() == Qt::ControlModifier ? setPos(pos) : setPos(elementScene()->snapToGrid(pos)); QGraphicsObject::mouseMoveEvent(event);
} }
else
QGraphicsObject::mouseMoveEvent(event);
} }
void PartText::mousePressEvent(QGraphicsSceneMouseEvent *event) void PartText::mousePressEvent(QGraphicsSceneMouseEvent *event) {
{ if(event -> button() == Qt::LeftButton)
if(event->button() == Qt::LeftButton) m_origine_pos = this -> pos();
m_origine_pos = this->pos();
QGraphicsObject::mousePressEvent(event); QGraphicsObject::mousePressEvent(event);
} }
void PartText::mouseReleaseEvent(QGraphicsSceneMouseEvent *event) void PartText::mouseReleaseEvent(QGraphicsSceneMouseEvent *event) {
{ if((event -> button() & Qt::LeftButton) &&
if((event->button() & Qt::LeftButton) && (flags() & QGraphicsItem::ItemIsMovable) && m_origine_pos != pos()) (flags() & QGraphicsItem::ItemIsMovable) &&
{ m_origine_pos != pos())
QPropertyUndoCommand *undo = new QPropertyUndoCommand(this, "pos", QVariant(m_origine_pos), QVariant(pos())); {
undo->setText(tr("Déplacer un texte")); QPropertyUndoCommand *undo = new QPropertyUndoCommand(this, "pos", QVariant(m_origine_pos), QVariant(pos()));
undo->enableAnimation(); undo -> setText(tr("Déplacer un texte"));
elementScene()->undoStack().push(undo); undo -> enableAnimation();
} elementScene() -> undoStack().push(undo);
}
QGraphicsObject::mouseReleaseEvent(event); QGraphicsObject::mouseReleaseEvent(event);
} }
/** /**
@@ -334,16 +322,13 @@ void PartText::startEdition() {
End text edition, potentially generating a ChangePartCommand if the text End text edition, potentially generating a ChangePartCommand if the text
has changed. has changed.
*/ */
void PartText::endEdition() void PartText::endEdition() {
{ if (!previous_text.isNull()) {
if (!previous_text.isNull())
{
// the text was being edited // the text was being edited
QString new_text = toPlainText(); QString new_text = toPlainText();
if (previous_text != new_text) if (previous_text != new_text) {
{
QPropertyUndoCommand *undo = new QPropertyUndoCommand(this, "text", previous_text, new_text); QPropertyUndoCommand *undo = new QPropertyUndoCommand(this, "text", previous_text, new_text);
undo->setText(tr("Modifier un champ texte")); undo -> setText(tr("Modifier un champ texte"));
undoStack().push(undo); undoStack().push(undo);
previous_text = QString(); previous_text = QString();
} }