From 350d8bb55be292e80667626cdc22bbd4d83e8b74 Mon Sep 17 00:00:00 2001 From: WandererFan Date: Sun, 3 Jul 2016 20:22:35 -0400 Subject: [PATCH] fix precision and thousands separator --- src/Mod/TechDraw/App/DrawViewDimension.cpp | 14 ++++++++------ 1 file changed, 8 insertions(+), 6 deletions(-) diff --git a/src/Mod/TechDraw/App/DrawViewDimension.cpp b/src/Mod/TechDraw/App/DrawViewDimension.cpp index 6abcbff61..f122e97e4 100644 --- a/src/Mod/TechDraw/App/DrawViewDimension.cpp +++ b/src/Mod/TechDraw/App/DrawViewDimension.cpp @@ -32,6 +32,8 @@ # include #endif +#include + #include #include #include @@ -198,9 +200,12 @@ App::DocumentObjectExecReturn *DrawViewDimension::execute(void) std::string DrawViewDimension::getFormatedValue() const { - QString str = QString::fromUtf8(FormatSpec.getStrValue().c_str()); double val = std::abs(getDimValue()); + //QLocale here(QLocale::German); //for testing + //here.setNumberOptions(QLocale::OmitGroupSeparator); + QLocale here = QLocale(); //system locale + QString valText = here.toString(val, 'f',Precision.getValue()); Base::Quantity qVal; qVal.setValue(val); @@ -210,11 +215,9 @@ std::string DrawViewDimension::getFormatedValue() const qVal.setUnit(Base::Unit::Length); } QString userStr = qVal.getUserString(); - QStringList userSplit = userStr.split(QString::fromUtf8(" "),QString::SkipEmptyParts); + QStringList userSplit = userStr.split(QString::fromUtf8(" "),QString::SkipEmptyParts); //break userString into number + UoM QString displayText; if (!userSplit.isEmpty()) { - double valNum = userSplit.front().toDouble(); - QString valText = QString::number(valNum, 'f', Precision.getValue()); QString unitText = userSplit.back(); displayText = valText + QString::fromUtf8(" ") + unitText; } @@ -232,10 +235,9 @@ std::string DrawViewDimension::getFormatedValue() const if(*it == QString::fromAscii("%value%")){ str.replace(*it,displayText); } else { //insert additional placeholder replacement logic here - str.replace(*it, QString::fromAscii("")); + str.replace(*it, QString::fromAscii("")); //maybe we should just leave what was there? } } - return str.toStdString(); }