From e3852f77322ec6a65f2f3e5dbcc60b8fe930e70b Mon Sep 17 00:00:00 2001 From: Ladislav Michl Date: Sun, 6 Apr 2025 22:16:21 +0200 Subject: [PATCH] Base: make UnitsApi::toString method of Quantity This static method takes Quantity as a parameter, so make it method of Quantity directly. --- src/Base/Quantity.cpp | 5 +++++ src/Base/Quantity.h | 3 +++ src/Base/UnitsApi.cpp | 6 ------ src/Base/UnitsApi.h | 6 ------ src/Gui/propertyeditor/PropertyItem.cpp | 2 +- 5 files changed, 9 insertions(+), 13 deletions(-) diff --git a/src/Base/Quantity.cpp b/src/Base/Quantity.cpp index 1803fd0dcb..073c4dc6be 100644 --- a/src/Base/Quantity.cpp +++ b/src/Base/Quantity.cpp @@ -241,6 +241,11 @@ Quantity Quantity::operator-() const return Quantity(-(this->myValue), this->myUnit); } +std::string Quantity::toString(const QuantityFormat& format) const +{ + return fmt::format("'{} {}'", UnitsApi::toNumber(myValue, format), myUnit.getString()); +} + std::string Quantity::getUserString() const { double dummy1 {}; // to satisfy GCC diff --git a/src/Base/Quantity.h b/src/Base/Quantity.h index 657f3af1b4..26632c1382 100644 --- a/src/Base/Quantity.h +++ b/src/Base/Quantity.h @@ -157,6 +157,9 @@ public: myFormat = fmt; } + std::string + toString(const QuantityFormat& format = QuantityFormat(QuantityFormat::Default)) const; + std::string getUserString() const; /// transfer to user preferred unit/potence std::string getUserString(double& factor, std::string& unitString) const; diff --git a/src/Base/UnitsApi.cpp b/src/Base/UnitsApi.cpp index 41328297fd..0615f5c887 100644 --- a/src/Base/UnitsApi.cpp +++ b/src/Base/UnitsApi.cpp @@ -27,7 +27,6 @@ #endif #include -#include #include "Exception.h" #include "UnitsApi.h" @@ -94,11 +93,6 @@ void UnitsApi::setSchema(const size_t num) schemas->select(num); } -std::string UnitsApi::toString(const Quantity& quantity, const QuantityFormat& format) -{ - return fmt::format("'{} {}'", toNumber(quantity, format), quantity.getUnit().getString()); -} - std::string UnitsApi::toNumber(const Quantity& quantity, const QuantityFormat& format) { return toNumber(quantity.getValue(), format); diff --git a/src/Base/UnitsApi.h b/src/Base/UnitsApi.h index d5a6d95af3..82475e9708 100644 --- a/src/Base/UnitsApi.h +++ b/src/Base/UnitsApi.h @@ -52,17 +52,11 @@ public: static std::string schemaTranslate(const Quantity& quant); /** - * toString & toNumber: * Quantity to string. Optionally apply format * The string is a number in C locale (i.e. the decimal separator is always a dot) * Scientific notation (if needed). */ - /** INCLUDES unit */ - static std::string - toString(const Quantity& quantity, - const QuantityFormat& format = QuantityFormat(QuantityFormat::Default)); - /** Does NOT include unit */ static std::string toNumber(const Quantity& quantity, diff --git a/src/Gui/propertyeditor/PropertyItem.cpp b/src/Gui/propertyeditor/PropertyItem.cpp index fe04c47657..23b43e80ef 100644 --- a/src/Gui/propertyeditor/PropertyItem.cpp +++ b/src/Gui/propertyeditor/PropertyItem.cpp @@ -1187,7 +1187,7 @@ void PropertyUnitItem::setValue(const QVariant& value) if (!hasExpression() && value.canConvert()) { const Base::Quantity& val = value.value(); Base::QuantityFormat format(Base::QuantityFormat::Default, highPrec); - setPropertyValue(Base::UnitsApi::toString(val, format)); + setPropertyValue(val.toString(format)); } }