Browse Source

Scale increment and decimal fields according to cooked unit, so that the decimal and increments provided by meta data still work in the cooked display

QGC4.4
Lorenz Meier 9 years ago
parent
commit
6020fc18d1
  1. 13
      src/FactSystem/FactMetaData.cc

13
src/FactSystem/FactMetaData.cc

@ -596,7 +596,7 @@ int FactMetaData::decimalPlaces(void) const @@ -596,7 +596,7 @@ int FactMetaData::decimalPlaces(void) const
int incrementDecimalPlaces = unknownDecimalPlaces;
// First determine decimal places from increment
double increment = this->increment();
double increment = _rawTranslator(this->increment()).toDouble();
if (!qIsNaN(increment)) {
double integralPart;
@ -614,7 +614,16 @@ int FactMetaData::decimalPlaces(void) const @@ -614,7 +614,16 @@ int FactMetaData::decimalPlaces(void) const
if (incrementDecimalPlaces != unknownDecimalPlaces && _decimalPlaces == unknownDecimalPlaces) {
actualDecimalPlaces = incrementDecimalPlaces;
} else {
actualDecimalPlaces = qMax(_decimalPlaces, incrementDecimalPlaces);
int settingsDecimalPlaces = _decimalPlaces;
double ctest = _rawTranslator(1.0).toDouble();
settingsDecimalPlaces += -log10(ctest);
settingsDecimalPlaces = qMin(25, settingsDecimalPlaces);
settingsDecimalPlaces = qMax(0, settingsDecimalPlaces);
actualDecimalPlaces = qMax(settingsDecimalPlaces, incrementDecimalPlaces);
}
return actualDecimalPlaces;

Loading…
Cancel
Save