Base: escape quotes in Quantity::getSafeUserString

fix #12204 and fix #12206
This commit is contained in:
Adrián Insaurralde Avalos
2024-02-10 22:17:07 -03:00
committed by Chris Hennes
parent 006f64b64e
commit 9c3ab15ecb
2 changed files with 19 additions and 0 deletions

View File

@@ -28,6 +28,7 @@
#include <array>
#endif
#include <Base/Tools.h>
#include "Quantity.h"
#include "Exception.h"
#include "UnitsApi.h"
@@ -255,6 +256,8 @@ QString Quantity::getSafeUserString() const
retString = QStringLiteral("%1 %2").arg(this->myValue).arg(this->getUnit().getString());
}
}
retString =
QString::fromStdString(Base::Tools::escapeQuotesFromString(retString.toStdString()));
return retString;
}

View File

@@ -226,5 +226,21 @@ TEST_F(Quantity, TestSafeUserString)
QString result = quantity.getSafeUserString();
EXPECT_EQ(result.toStdString(), "1 mm");
Base::UnitsApi::setSchema(Base::UnitSystem::Imperial1);
quantity = Base::Quantity {304.8, Base::Unit::Length};
quantity.setFormat(format);
result = quantity.getSafeUserString();
EXPECT_EQ(result.toStdString(), "1.0 \\'");
quantity = Base::Quantity {25.4, Base::Unit::Length};
quantity.setFormat(format);
result = quantity.getSafeUserString();
EXPECT_EQ(result.toStdString(), "1.0 \\\"");
}
// NOLINTEND