Merge pull request #1160 from ispyisail/fix/1155-multiline-text-alignment

Fix #1155: lines of a multi-line symbol text ignore its alignment
This commit is contained in:
ispyisail
2026-09-30 08:14:52 +13:00
committed by GitHub
2 changed files with 14 additions and 2 deletions
@@ -47,7 +47,7 @@ PartDynamicTextField::PartDynamicTextField(QETElementEditor *editor, QGraphicsIt
//Option when text is displayed in multiple line //Option when text is displayed in multiple line
QTextOption option = document() -> defaultTextOption(); QTextOption option = document() -> defaultTextOption();
option.setAlignment(Qt::AlignHCenter); option.setAlignment(m_alignment & Qt::AlignHorizontal_Mask);
option.setWrapMode(QTextOption::WordWrap); option.setWrapMode(QTextOption::WordWrap);
document() -> setDefaultTextOption(option); document() -> setDefaultTextOption(option);
} }
@@ -462,6 +462,10 @@ void PartDynamicTextField::setPlainText(const QString &text) {
void PartDynamicTextField::setAlignment(Qt::Alignment alignment) { void PartDynamicTextField::setAlignment(Qt::Alignment alignment) {
m_alignment = alignment; m_alignment = alignment;
//Lines of a multi-line text follow the horizontal alignment
QTextOption option = document() -> defaultTextOption();
option.setAlignment(m_alignment & Qt::AlignHorizontal_Mask);
document() -> setDefaultTextOption(option);
emit alignmentChanged(m_alignment); emit alignmentChanged(m_alignment);
} }
@@ -63,9 +63,17 @@ DynamicElementTextItem::DynamicElementTextItem(Element *parent_element) :
//Option when text is displayed in multiple line //Option when text is displayed in multiple line
QTextOption option = document()->defaultTextOption(); QTextOption option = document()->defaultTextOption();
option.setAlignment(Qt::AlignHCenter); option.setAlignment(alignment() & Qt::AlignHorizontal_Mask);
option.setWrapMode(QTextOption::WordWrap); option.setWrapMode(QTextOption::WordWrap);
document()->setDefaultTextOption(option); document()->setDefaultTextOption(option);
//Lines of a multi-line text follow the horizontal alignment
connect(this, &DiagramTextItem::alignmentChanged, [this](Qt::Alignment alignment)
{
QTextOption option = document()->defaultTextOption();
option.setAlignment(alignment & Qt::AlignHorizontal_Mask);
document()->setDefaultTextOption(option);
});
} }
DynamicElementTextItem::~DynamicElementTextItem() DynamicElementTextItem::~DynamicElementTextItem()