From 57977bbdaf08a61daec69157d9bf02e470f3480a Mon Sep 17 00:00:00 2001 From: Ladislav Michl Date: Mon, 1 Dec 2025 17:07:23 +0100 Subject: [PATCH] TechDraw: Fix MultiValueSchema formatting Multi Value schemas cannot be forced to use Format::FORMATTED. --- src/Mod/TechDraw/App/DimensionFormatter.cpp | 2 +- src/Mod/TechDraw/Gui/QGIViewDimension.cpp | 13 +++---------- 2 files changed, 4 insertions(+), 11 deletions(-) diff --git a/src/Mod/TechDraw/App/DimensionFormatter.cpp b/src/Mod/TechDraw/App/DimensionFormatter.cpp index 291c0e3ab8..b9123b2424 100644 --- a/src/Mod/TechDraw/App/DimensionFormatter.cpp +++ b/src/Mod/TechDraw/App/DimensionFormatter.cpp @@ -77,7 +77,7 @@ std::string DimensionFormatter::formatValue(const qreal value, // won't give more than Global_Decimals precision std::string basicString = formatPrefix + asQuantity.getUserString() + formatSuffix; - if (isMultiValueSchema() && partial == Format::UNALTERED) { + if (isMultiValueSchema() || partial == Format::UNALTERED) { return basicString; // Don't even try to use Alt Decimals or hide units } diff --git a/src/Mod/TechDraw/Gui/QGIViewDimension.cpp b/src/Mod/TechDraw/Gui/QGIViewDimension.cpp index 694b7d661b..a275c821be 100644 --- a/src/Mod/TechDraw/Gui/QGIViewDimension.cpp +++ b/src/Mod/TechDraw/Gui/QGIViewDimension.cpp @@ -273,22 +273,15 @@ void QGIViewDimension::updateDim() return; } - QString labelText = - // what about fromStdString? - QString::fromUtf8(dim->getFormattedDimensionValue(Format::FORMATTED).c_str());// pre value [unit] post - if (dim->isMultiValueSchema()) { - labelText = - QString::fromUtf8(dim->getFormattedDimensionValue(Format::UNALTERED).c_str());//don't format multis - } - - QFont font = datumLabel->getFont(); + auto labelText = dim->getFormattedDimensionValue(Format::FORMATTED); + auto font = datumLabel->getFont(); font.setFamily(QString::fromUtf8(vp->Font.getValue())); int fontSize = QGIView::exactFontSize(vp->Font.getValue(), std::max(1.0, vp->Fontsize.getValue())); font.setPixelSize(fontSize); datumLabel->setFont(font); prepareGeometryChange(); - datumLabel->setDimString(labelText); + datumLabel->setDimString(QString::fromStdString(labelText)); datumLabel->setToleranceString(); datumLabel->setFramed(dim->TheoreticalExact.getValue());