From 691051e1df6e88fc6bd1babc86c7718cccb54d3e Mon Sep 17 00:00:00 2001 From: Aapo Date: Mon, 18 Jan 2021 21:52:35 +0200 Subject: [PATCH] [TD] Fix Dimension unit printing problem for US building units and other multivalueschema. --- src/Mod/TechDraw/App/DrawViewDimension.cpp | 23 ++++++++++------------ 1 file changed, 10 insertions(+), 13 deletions(-) diff --git a/src/Mod/TechDraw/App/DrawViewDimension.cpp b/src/Mod/TechDraw/App/DrawViewDimension.cpp index 2d1ca70dfa..f848373005 100644 --- a/src/Mod/TechDraw/App/DrawViewDimension.cpp +++ b/src/Mod/TechDraw/App/DrawViewDimension.cpp @@ -647,11 +647,11 @@ bool DrawViewDimension::isMultiValueSchema(void) const } Base::UnitSystem uniSys = Base::UnitsApi::getSchema(); - if ( (uniSys == Base::UnitSystem::ImperialBuilding) && - !angularMeasure ) { + if ((uniSys == Base::UnitSystem::ImperialBuilding) && + !angularMeasure) { result = true; } else if ((uniSys == Base::UnitSystem::ImperialCivil) && - angularMeasure) { + !angularMeasure) { result = true; } return result; @@ -736,6 +736,13 @@ std::string DrawViewDimension::formatValue(qreal value, QString qFormatSpec, int qMultiValueStr = formatPrefix + qGenPrefix + displaySub + formatSuffix; } formattedValue = qMultiValueStr; + } else if (isMultiValueSchema()) { + qMultiValueStr = qUserString; + if (!genPrefix.empty()) { + //qUserString from Quantity includes units - prefix + R + nnn ft + suffix + qMultiValueStr = formatPrefix + qUserString + formatSuffix; + } + return qMultiValueStr.toStdString(); } else { if (formatSpecifier.isEmpty()) { Base::Console().Warning("Warning - no numeric format in Format Spec %s - %s\n", @@ -810,16 +817,6 @@ std::string DrawViewDimension::formatValue(qreal value, QString qFormatSpec, int } } - if ((unitSystem == Base::UnitSystem::ImperialBuilding) && - !angularMeasure) { - qMultiValueStr = formattedValue; - if (!genPrefix.empty()) { - //qUserString from Quantity includes units - prefix + R + nnn ft + suffix - qMultiValueStr = formatPrefix + qGenPrefix + qUserString + formatSuffix; - } - formattedValue = qMultiValueStr; - } - result = formattedValue.toStdString(); if (partial == 0) {