From 1d37ce9b84ce42d7d988b46f9c3df247a4a3e9f7 Mon Sep 17 00:00:00 2001 From: Beat Hangartner Date: Mon, 5 Oct 2026 17:57:03 +0200 Subject: [PATCH] Show "Auto" in the width box of element editor text fields The width box of a dynamic text field in the element editor showed -1 for the automatic width and stopped at 500 px. It now shows "Auto" and "px", and goes up to 10000 px, so a wider field is not cut to 500 just by being shown. Leaving the box without changing it no longer pushes a change either: the box holds whole pixels, while a width fitted to the text (or set elsewhere) can have decimals, and the comparison made the field's width round itself on every focus loss. Co-Authored-By: Claude Opus 5.5 --- sources/editor/ui/dynamictextfieldeditor.cpp | 4 +++- sources/editor/ui/dynamictextfieldeditor.ui | 8 +++++++- 2 files changed, 10 insertions(+), 2 deletions(-) diff --git a/sources/editor/ui/dynamictextfieldeditor.cpp b/sources/editor/ui/dynamictextfieldeditor.cpp index 47d87a91c..1640907ce 100644 --- a/sources/editor/ui/dynamictextfieldeditor.cpp +++ b/sources/editor/ui/dynamictextfieldeditor.cpp @@ -363,7 +363,9 @@ void DynamicTextFieldEditor::on_m_width_sb_editingFinished() qreal width = (qreal)ui -> m_width_sb -> value(); for (int i = 0; i < m_parts.length(); i++) { - if(width != m_parts[i] -> textWidth()) { + //The box shows whole pixels: a width dragged with the mouse or + //fitted to the text is not rounded just by leaving the box. + if(ui -> m_width_sb -> value() != qRound(m_parts[i] -> textWidth())) { QPropertyUndoCommand *undo = new QPropertyUndoCommand(m_parts[i], "textWidth", m_parts[i] -> textWidth(), width); undo -> setText(tr("Modifier la largeur d'un texte")); undoStack().push(undo); diff --git a/sources/editor/ui/dynamictextfieldeditor.ui b/sources/editor/ui/dynamictextfieldeditor.ui index 516b41853..59c8defde 100644 --- a/sources/editor/ui/dynamictextfieldeditor.ui +++ b/sources/editor/ui/dynamictextfieldeditor.ui @@ -101,11 +101,17 @@ + + Auto + + + px + -1 - 500 + 10000