From 62328bb54c6910cf1968aad2889c0d2d2172daab Mon Sep 17 00:00:00 2001 From: WandererFan Date: Tue, 4 Oct 2016 09:10:38 -0400 Subject: [PATCH] Prepare App side for "show units" preference --- src/Mod/TechDraw/App/DrawViewDimension.cpp | 21 +++++++++++++++++++-- src/Mod/TechDraw/App/DrawViewDimension.h | 1 + 2 files changed, 20 insertions(+), 2 deletions(-) diff --git a/src/Mod/TechDraw/App/DrawViewDimension.cpp b/src/Mod/TechDraw/App/DrawViewDimension.cpp index 5d56363a3d..698abef182 100644 --- a/src/Mod/TechDraw/App/DrawViewDimension.cpp +++ b/src/Mod/TechDraw/App/DrawViewDimension.cpp @@ -191,7 +191,10 @@ std::string DrawViewDimension::getFormatedValue() const } else { qVal.setUnit(Base::Unit::Length); } - QString userStr = qVal.getUserString(); + QString userStr = qVal.getUserString(); //this handles mm to inch/km/parsec etc and decimal positions + QRegExp rx2(QString::fromUtf8("\\D*$")); + QString userVal = userStr; + userVal.remove(rx2); QRegExp rx(QString::fromUtf8("%(\\w+)%")); //any word bracketed by % QStringList list; @@ -202,15 +205,29 @@ std::string DrawViewDimension::getFormatedValue() const pos += rx.matchedLength(); } + QString repl = userVal; + if (showUnits()) { + repl = userStr; + } + for(QStringList::const_iterator it = list.begin(); it != list.end(); ++it) { if(*it == QString::fromUtf8("%value%")){ - str.replace(*it,userStr); + str.replace(*it,repl); // } else { //insert additional placeholder replacement logic here } } return str.toUtf8().constData(); } +bool DrawViewDimension::showUnits() const +{ + bool result = false; + Base::Reference hGrp = App::GetApplication().GetUserParameter() + .GetGroup("BaseApp")->GetGroup("Preferences")->GetGroup("Mod/TechDraw/Dimensions"); + result = hGrp->GetBool("ShowUnits", true); + return result; +} + double DrawViewDimension::getDimValue() const { double result = 0.0; diff --git a/src/Mod/TechDraw/App/DrawViewDimension.h b/src/Mod/TechDraw/App/DrawViewDimension.h index 41e27b961b..fbb3c84d4e 100644 --- a/src/Mod/TechDraw/App/DrawViewDimension.h +++ b/src/Mod/TechDraw/App/DrawViewDimension.h @@ -88,6 +88,7 @@ protected: virtual void onDocumentRestored(); int getIndexFromName(std::string geomName) const; int getRefType() const; //Vertex-Vertex, Edge, Edge-Edge + bool showUnits() const; protected: Measure::Measurement *measurement;