Skip to content

Commit ee8c883

Browse files
committed
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 1102785 commit ee8c883

File tree

6 files changed

+27
-16
lines changed

6 files changed

+27
-16
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 placeholderString(decimalPlaces);
334326
}
335327

336328
QString valueString;
@@ -340,7 +332,7 @@ QString Fact::_variantToString(const QVariant &variant, int decimalPlaces) const
340332
{
341333
const float fValue = variant.toFloat();
342334
if (qIsNaN(fValue)) {
343-
valueString = QStringLiteral("--.--");
335+
valueString = placeholderString(decimalPlaces);
344336
} else {
345337
valueString = QStringLiteral("%1").arg(fValue, 0, 'f', decimalPlaces);
346338
}
@@ -350,7 +342,7 @@ QString Fact::_variantToString(const QVariant &variant, int decimalPlaces) const
350342
{
351343
const double dValue = variant.toDouble();
352344
if (qIsNaN(dValue)) {
353-
valueString = QStringLiteral("--.--");
345+
valueString = placeholderString(decimalPlaces);
354346
} else {
355347
valueString = QStringLiteral("%1").arg(dValue, 0, 'f', decimalPlaces);
356348
}
@@ -363,7 +355,7 @@ QString Fact::_variantToString(const QVariant &variant, int decimalPlaces) const
363355
{
364356
const double dValue = variant.toDouble();
365357
if (qIsNaN(dValue)) {
366-
valueString = QStringLiteral("--:--:--");
358+
valueString = placeholderString(decimalPlaces);
367359
} else {
368360
QTime time(0, 0, 0, 0);
369361
time = time.addSecs(dValue);
@@ -379,6 +371,22 @@ QString Fact::_variantToString(const QVariant &variant, int decimalPlaces) const
379371
return valueString;
380372
}
381373

374+
QString Fact::placeholderString(int decimalPlaces) const {
375+
switch (type()) {
376+
case FactMetaData::valueTypeFloat:
377+
case FactMetaData::valueTypeDouble:
378+
if (decimalPlaces <= 0) {
379+
return QStringLiteral("-");
380+
}
381+
return QStringLiteral("-.") +
382+
QString(decimalPlaces, QLatin1Char('-'));
383+
case FactMetaData::valueTypeElapsedTimeInSeconds:
384+
return QStringLiteral("--:--:--");
385+
default:
386+
return QStringLiteral("-");
387+
}
388+
}
389+
382390
QString Fact::rawValueStringFullPrecision() const
383391
{
384392
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 placeholderString READ placeholderString 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 placeholderString(int decimalPlaces) const;
121+
QString placeholderString() const { return placeholderString(decimalPlaces()); }
119122
QString rawValueString() const;
120123
QString cookedValueString() const;
121124
bool valueEqualsDefault() const;

src/FlightDisplay/ProximityRadarValues.qml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -40,7 +40,7 @@ QtObject {
4040
property var rgRotationValueStrings: [ rotationNoneValueString, rotationYaw45ValueString, rotationYaw90ValueString, rotationYaw135ValueString, rotationYaw180ValueString, rotationYaw225ValueString, rotationYaw270ValueString, rotationYaw315ValueString ]
4141

4242
property var _distanceSensors: vehicle ? vehicle.distanceSensors : null
43-
property string _noValueStr: qsTr("--.--")
43+
property string _noValueStr: qsTr("-")
4444

4545
onRotationNoneValueChanged: rotationValueChanged()
4646
onRotationYaw45ValueChanged: rotationValueChanged()

src/QmlControls/GPSIndicatorPage.qml

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

2222
property var activeVehicle: QGroundControl.multiVehicleManager.activeVehicle
2323
property string na: qsTr("N/A", "No data to display")
24-
property string valueNA: qsTr("--.--", "No data to display")
24+
property string valueNA: qsTr("-", "No data to display")
2525
property var rtkSettings: QGroundControl.settingsManager.rtkSettings
2626
property var useFixedPosition: rtkSettings.useFixedBasePosition.rawValue
2727
property var manufacturer: rtkSettings.baseReceiverManufacturers.rawValue

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)