Base: Drop QString-std::string conversion functions from Tools

Convenience helpers function Tools::toStdString and Tools::fromStdString
were implemented for Qt4 or older to perform utf8 aware conversion as
QString::toStdString/QString::fromStdString were using toAscii/fromAscii
internally (see https://dreamswork.github.io/qt4/classQString.html).

Since Qt5 QString uses toUtf8/fromUTf8, which makes the helper functions
obsolete (see https://doc.qt.io/qt-5/qstring.html#fromStdString).
This commit is contained in:
Ladislav Michl
2024-12-02 12:34:11 +01:00
committed by Chris Hennes
parent f9d1391588
commit 0ee3c9f8e6
54 changed files with 190 additions and 255 deletions

View File

@@ -27,7 +27,6 @@
#endif
#include <Base/Console.h>
#include <Base/Tools.h>
#include <Base/UnitsApi.h>
#include "DimensionFormatter.h"
@@ -90,7 +89,7 @@ std::string DimensionFormatter::formatValue(const qreal value,
QString formatSpecifier = qsl[2]; //FormatSpec specifier
QString qMultiValueStr;
QString qBasicUnit = Base::Tools::fromStdString(Base::UnitsApi::getBasicLengthUnit());
QString qBasicUnit = QString::fromStdString(Base::UnitsApi::getBasicLengthUnit());
QString formattedValue;
if (isMultiValueSchema() && partial == 0) {
@@ -102,7 +101,7 @@ std::string DimensionFormatter::formatValue(const qreal value,
if (formatSpecifier.isEmpty()) {
Base::Console().Warning("Warning - no numeric format in Format Spec %s - %s\n",
qPrintable(qFormatSpec), m_dimension->getNameInDocument());
return Base::Tools::toStdString(qFormatSpec);
return qFormatSpec.toStdString();
}
// for older TD drawings the formatSpecifier "%g" was used, but the number of decimals was
@@ -158,45 +157,44 @@ std::string DimensionFormatter::formatValue(const qreal value,
//formattedValue is now in formatSpec format with local decimal separator
std::string formattedValueString = formattedValue.toStdString();
if (partial == 0) { //prefix + unit subsystem string + suffix
return Base::Tools::toStdString(formatPrefix) +
Base::Tools::toStdString(qUserString) +
Base::Tools::toStdString(formatSuffix);
return formatPrefix.toStdString() +
qUserString.toStdString() +
formatSuffix.toStdString();
}
else if (partial == 1) { // prefix number[unit] suffix
if (angularMeasure) {
//always insert unit after value
return Base::Tools::toStdString(formatPrefix) +
formattedValueString + "°" +
Base::Tools::toStdString(formatSuffix);
return formatPrefix.toStdString() + formattedValueString + "°" +
formatSuffix.toStdString();
}
else if (m_dimension->showUnits() || areaMeasure){
if (isDim && m_dimension->haveTolerance()) {
//unit will be included in tolerance so don't repeat it here
return Base::Tools::toStdString(formatPrefix) +
return formatPrefix.toStdString() +
formattedValueString +
Base::Tools::toStdString(formatSuffix);
formatSuffix.toStdString();
}
else {
//no tolerance, so we need to include unit
return Base::Tools::toStdString(formatPrefix) +
return formatPrefix.toStdString() +
formattedValueString + " " +
Base::Tools::toStdString(qBasicUnit) +
Base::Tools::toStdString(formatSuffix);
qBasicUnit.toStdString() +
formatSuffix.toStdString();
}
}
else {
//showUnits is false
return Base::Tools::toStdString(formatPrefix) +
return formatPrefix.toStdString() +
formattedValueString +
Base::Tools::toStdString(formatSuffix);
formatSuffix.toStdString();
}
}
else if (partial == 2) { // just the unit
if (angularMeasure) {
return Base::Tools::toStdString(qBasicUnit);
return qBasicUnit.toStdString();
}
else if (m_dimension->showUnits() || areaMeasure) {
return Base::Tools::toStdString(qBasicUnit);
return qBasicUnit.toStdString();
}
else {
return "";
@@ -318,14 +316,14 @@ QString DimensionFormatter::formatValueToSpec(const double value, const QString&
QString fs = formatSpecifier;
fs.replace(QRegularExpression(QStringLiteral("%(.*)w")), QStringLiteral("%\\1f"));
fs.replace(QRegularExpression(QStringLiteral("%(.*)W")), QStringLiteral("%\\1F"));
formattedValue = QString::asprintf(Base::Tools::toStdString(fs).c_str(), value);
formattedValue = QString::asprintf(fs.toStdString().c_str(), value);
// First, try to cut trailing zeros, if AFTER decimal dot there are nonzero numbers
// Second, try to cut also decimal dot and zeros, if there are just zeros after it
formattedValue.replace(QRegularExpression(QStringLiteral("([0-9][0-9]*\\.[0-9]*[1-9])00*$")), QStringLiteral("\\1"));
formattedValue.replace(QRegularExpression(QStringLiteral("([0-9][0-9]*)\\.0*$")), QStringLiteral("\\1"));
} else {
if (isNumericFormat(formatSpecifier)) {
formattedValue = QString::asprintf(Base::Tools::toStdString(formatSpecifier).c_str(), value);
formattedValue = QString::asprintf(formatSpecifier.toStdString().c_str(), value);
}
}
@@ -374,8 +372,8 @@ std::string DimensionFormatter::getDefaultFormatSpec(bool isToleranceFormat) con
QString formatSpec;
QString qPrefix;
if (prefFormat.empty()) {
QString format1 = Base::Tools::fromStdString("%.");
QString format2 = Base::Tools::fromStdString("f");
QString format1 = QString::fromStdString("%.");
QString format2 = QString::fromStdString("f");
int precision;
if (m_dimension->useDecimals()) {
precision = Base::UnitsApi::getDecimals();
@@ -403,7 +401,7 @@ std::string DimensionFormatter::getDefaultFormatSpec(bool isToleranceFormat) con
formatSpec.replace(QString::fromUtf8("%"), QString::fromUtf8("%+"));
}
return Base::Tools::toStdString(formatSpec);
return formatSpec.toStdString();
}
//true if value is too small to display using formatSpec