Element editor: make element text option "keep visual rotation" editable.

This commit is contained in:
joshua
2021-05-08 22:14:15 +02:00
parent 222c86f550
commit 74dcf96e4b
5 changed files with 210 additions and 151 deletions

View File

@@ -105,6 +105,7 @@ const QDomElement PartDynamicTextField::toXml(QDomDocument &dom_doc) const
root_element.setAttribute("uuid", m_uuid.toString());
root_element.setAttribute("frame", m_frame? "true" : "false");
root_element.setAttribute("text_width", QString::number(m_text_width));
root_element.setAttribute("keep_visual_rotation", m_keep_visual_rotation ? "true" : "false");
QMetaEnum me = DynamicElementTextItem::textFromMetaEnum();
root_element.setAttribute("text_from", me.valueToKey(m_text_from));
@@ -168,6 +169,7 @@ void PartDynamicTextField::fromXml(const QDomElement &dom_elmt) {
);
setZValue(dom_elmt.attribute("z", QString::number(zValue())).toDouble());
QGraphicsTextItem::setRotation(dom_elmt.attribute("rotation", QString::number(0)).toDouble());
setKeepVisualRotation(dom_elmt.attribute("keep_visual_rotation", "true") == "true"? true : false);
if (dom_elmt.hasAttribute("font")) {
QFont font_;
@@ -430,6 +432,20 @@ void PartDynamicTextField::setFont(const QFont &font) {
emit fontChanged(font);
}
void PartDynamicTextField::setKeepVisualRotation(const bool &keep)
{
if (keep == this->m_keep_visual_rotation) {
return;
}
m_keep_visual_rotation = keep;
emit keepVisualRotationChanged(keep);
}
bool PartDynamicTextField::keepVisualRotation() const {
return m_keep_visual_rotation;
}
/**
@brief PartDynamicTextField::mouseMoveEvent
@param event

View File

@@ -43,6 +43,7 @@ class PartDynamicTextField : public QGraphicsTextItem, public CustomElementPart
Q_PROPERTY(qreal textWidth READ textWidth WRITE setTextWidth NOTIFY textWidthChanged)
Q_PROPERTY(Qt::Alignment alignment READ alignment WRITE setAlignment NOTIFY alignmentChanged)
Q_PROPERTY(QFont font READ font WRITE setFont NOTIFY fontChanged)
Q_PROPERTY(bool keepVisualRotation READ keepVisualRotation WRITE setKeepVisualRotation NOTIFY keepVisualRotationChanged)
public:
///PROPERTY
@@ -60,6 +61,7 @@ class PartDynamicTextField : public QGraphicsTextItem, public CustomElementPart
void textWidthChanged(qreal width);
void alignmentChanged(Qt::Alignment alignment);
void fontChanged(QFont font);
void keepVisualRotationChanged(bool keep);
public:
PartDynamicTextField(QETElementEditor *editor, QGraphicsItem *parent = nullptr);
@@ -96,6 +98,8 @@ class PartDynamicTextField : public QGraphicsTextItem, public CustomElementPart
void setAlignment(Qt::Alignment alignment);
Qt::Alignment alignment() const;
void setFont(const QFont &font);
void setKeepVisualRotation(const bool &keep);
bool keepVisualRotation() const;
protected:
void mouseMoveEvent(QGraphicsSceneMouseEvent *event) override;
@@ -119,7 +123,8 @@ class PartDynamicTextField : public QGraphicsTextItem, public CustomElementPart
QUuid m_uuid;
bool m_frame = false,
m_first_add = true,
m_block_alignment = false;
m_block_alignment = false,
m_keep_visual_rotation = false;
qreal m_text_width = -1;
Qt::Alignment m_alignment = Qt::AlignTop|Qt::AlignLeft;
QRectF m_alignment_rect;