Skip to content

Commit 9ff35f1

Browse files
rubenp02DonLakeFlyer
authored andcommitted
Improve Fact placeholder String support
Implemented Fact::placeholderString to centralize the placeholder String generation logic and take into account the number of decimal places. Changed various hardcoded fallback Strings in QML for consistency with the new placeholder String format.
1 parent 6684883 commit 9ff35f1

File tree

4 files changed

+25
-14
lines changed

4 files changed

+25
-14
lines changed

src/FactSystem/Fact.cc

Lines changed: 20 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -322,15 +322,7 @@ QStringList Fact::selectedBitmaskStrings() const
322322
QString Fact::_variantToString(const QVariant &variant, int decimalPlaces) const
323323
{
324324
if (!variant.isValid()) {
325-
switch (type()) {
326-
case FactMetaData::valueTypeFloat:
327-
case FactMetaData::valueTypeDouble:
328-
return QStringLiteral("--.--");
329-
case FactMetaData::valueTypeElapsedTimeInSeconds:
330-
return QStringLiteral("--:--:--");
331-
default:
332-
return QStringLiteral("-");
333-
}
325+
return invalidValueString(decimalPlaces);
334326
}
335327

336328
QString valueString;
@@ -348,7 +340,7 @@ QString Fact::_variantToString(const QVariant &variant, int decimalPlaces) const
348340
{
349341
const float fValue = variant.toFloat();
350342
if (qIsNaN(fValue)) {
351-
valueString = QStringLiteral("--.--");
343+
valueString = invalidValueString(decimalPlaces);
352344
} else {
353345
valueString = QStringLiteral("%1").arg(fValue, 0, 'f', decimalPlaces);
354346
stripNegativeZero(valueString);
@@ -359,7 +351,7 @@ QString Fact::_variantToString(const QVariant &variant, int decimalPlaces) const
359351
{
360352
const double dValue = variant.toDouble();
361353
if (qIsNaN(dValue)) {
362-
valueString = QStringLiteral("--.--");
354+
valueString = invalidValueString(decimalPlaces);
363355
} else {
364356
valueString = QStringLiteral("%1").arg(dValue, 0, 'f', decimalPlaces);
365357
stripNegativeZero(valueString);
@@ -373,7 +365,7 @@ QString Fact::_variantToString(const QVariant &variant, int decimalPlaces) const
373365
{
374366
const double dValue = variant.toDouble();
375367
if (qIsNaN(dValue)) {
376-
valueString = QStringLiteral("--:--:--");
368+
valueString = invalidValueString(decimalPlaces);
377369
} else {
378370
QTime time(0, 0, 0, 0);
379371
time = time.addSecs(dValue);
@@ -389,6 +381,22 @@ QString Fact::_variantToString(const QVariant &variant, int decimalPlaces) const
389381
return valueString;
390382
}
391383

384+
QString Fact::invalidValueString(int decimalPlaces) const {
385+
switch (type()) {
386+
case FactMetaData::valueTypeFloat:
387+
case FactMetaData::valueTypeDouble:
388+
if (decimalPlaces <= 0) {
389+
return QStringLiteral("--");
390+
}
391+
return QStringLiteral("--.") +
392+
QString(decimalPlaces, QLatin1Char('-'));
393+
case FactMetaData::valueTypeElapsedTimeInSeconds:
394+
return QStringLiteral("--:--:--");
395+
default:
396+
return QStringLiteral("--");
397+
}
398+
}
399+
392400
QString Fact::rawValueStringFullPrecision() const
393401
{
394402
return _variantToString(rawValue(), 18);

src/FactSystem/Fact.h

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -56,6 +56,7 @@ class Fact : public QObject
5656
Q_PROPERTY(QVariant value READ cookedValue WRITE setCookedValue NOTIFY valueChanged)
5757
Q_PROPERTY(QVariant rawValue READ rawValue WRITE setRawValue NOTIFY rawValueChanged)
5858
Q_PROPERTY(bool valueEqualsDefault READ valueEqualsDefault NOTIFY valueChanged)
59+
Q_PROPERTY(QString invalidValueString READ invalidValueString CONSTANT)
5960
Q_PROPERTY(QString valueString READ cookedValueString NOTIFY valueChanged)
6061
Q_PROPERTY(QString enumOrValueString READ enumOrValueString NOTIFY valueChanged)
6162
Q_PROPERTY(double increment READ cookedIncrement CONSTANT)
@@ -116,6 +117,8 @@ class Fact : public QObject
116117
FactMetaData::ValueType_t type() const { return _type; }
117118
QString cookedUnits() const;
118119
QString rawUnits() const;
120+
QString invalidValueString(int decimalPlaces) const;
121+
QString invalidValueString() const { return invalidValueString(decimalPlaces()); }
119122
QString rawValueString() const;
120123
QString cookedValueString() const;
121124
bool valueEqualsDefault() const;

src/QmlControls/InstrumentValueValue.qml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -43,7 +43,7 @@ ColumnLayout {
4343
if (instrumentValueData.fact) {
4444
return instrumentValueData.fact.enumOrValueString + (instrumentValueData.showUnits ? " " + instrumentValueData.fact.units : "")
4545
} else {
46-
return qsTr("--.--")
46+
return qsTr("--")
4747
}
4848
}
4949
}

src/UI/toolbar/EscIndicatorPage.qml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,7 @@ ToolIndicatorPage {
2020

2121
property var activeVehicle: QGroundControl.multiVehicleManager.activeVehicle
2222
property string na: qsTr("N/A", "No data to display")
23-
property string valueNA: qsTr("--.--", "No data to display")
23+
property string valueNA: qsTr("--", "No data to display")
2424

2525
property var _escs: activeVehicle ? activeVehicle.escs : null
2626
property int _onlineBitmask: _escs ? _escs.get(0).info.rawValue : 0

0 commit comments

Comments
 (0)