Commit 6256bc21 authored by DonLakeFlyer's avatar DonLakeFlyer

parent 9f396d68
...@@ -321,9 +321,9 @@ bool FactMetaData::isInRawMinLimit(const QVariant& variantValue) const ...@@ -321,9 +321,9 @@ bool FactMetaData::isInRawMinLimit(const QVariant& variantValue) const
case valueTypeInt64: case valueTypeInt64:
return _rawMin.value<int64_t>() <= variantValue.value<int64_t>(); return _rawMin.value<int64_t>() <= variantValue.value<int64_t>();
case valueTypeFloat: case valueTypeFloat:
return _rawMin.value<float>() <= variantValue.value<float>(); return qIsNaN(variantValue.toFloat()) || _rawMin.value<float>() <= variantValue.value<float>();
case valueTypeDouble: case valueTypeDouble:
return _rawMin.value<double>() <= variantValue.value<double>(); return qIsNaN(variantValue.toDouble()) || _rawMin.value<double>() <= variantValue.value<double>();
default: default:
return true; return true;
} }
...@@ -351,9 +351,9 @@ bool FactMetaData::isInRawMaxLimit(const QVariant& variantValue) const ...@@ -351,9 +351,9 @@ bool FactMetaData::isInRawMaxLimit(const QVariant& variantValue) const
case valueTypeInt64: case valueTypeInt64:
return _rawMax.value<int64_t>() >= variantValue.value<int64_t>(); return _rawMax.value<int64_t>() >= variantValue.value<int64_t>();
case valueTypeFloat: case valueTypeFloat:
return _rawMax.value<float>() >= variantValue.value<float>(); return qIsNaN(variantValue.toFloat()) || _rawMax.value<float>() >= variantValue.value<float>();
case valueTypeDouble: case valueTypeDouble:
return _rawMax.value<double>() >= variantValue.value<double>(); return qIsNaN(variantValue.toDouble()) || _rawMax.value<double>() >= variantValue.value<double>();
default: default:
return true; return true;
} }
...@@ -1294,19 +1294,23 @@ FactMetaData* FactMetaData::createFromJsonObject(const QJsonObject& json, QMap<Q ...@@ -1294,19 +1294,23 @@ FactMetaData* FactMetaData::createFromJsonObject(const QJsonObject& json, QMap<Q
metaData->setRawUnits(json[_unitsJsonKey].toString()); metaData->setRawUnits(json[_unitsJsonKey].toString());
} }
QString defaultValueJsonKey; QString defaultValueJsonKey = _defaultValueJsonKey;
#ifdef __mobile__ #ifdef __mobile__
if (json.contains(_mobileDefaultValueJsonKey)) { if (json.contains(_mobileDefaultValueJsonKey)) {
defaultValueJsonKey = _mobileDefaultValueJsonKey; defaultValueJsonKey = _mobileDefaultValueJsonKey;
} }
#endif #endif
if (defaultValueJsonKey.isEmpty() && json.contains(_defaultValueJsonKey)) {
defaultValueJsonKey = _defaultValueJsonKey; if (json.contains(defaultValueJsonKey)) {
} const QJsonValue jsonValue = json[defaultValueJsonKey];
if (!defaultValueJsonKey.isEmpty()) {
if (jsonValue.type() == QJsonValue::Null && (type == valueTypeFloat || type == valueTypeDouble)) {
metaData->setRawDefaultValue(type == valueTypeFloat ? std::numeric_limits<float>::quiet_NaN() : std::numeric_limits<double>::quiet_NaN());
} else {
QVariant typedValue; QVariant typedValue;
QString errorString; QString errorString;
QVariant initialValue = json[defaultValueJsonKey].toVariant(); QVariant initialValue = jsonValue.toVariant();
if (metaData->convertAndValidateRaw(initialValue, true /* convertOnly */, typedValue, errorString)) { if (metaData->convertAndValidateRaw(initialValue, true /* convertOnly */, typedValue, errorString)) {
metaData->setRawDefaultValue(typedValue); metaData->setRawDefaultValue(typedValue);
} else { } else {
...@@ -1316,6 +1320,7 @@ FactMetaData* FactMetaData::createFromJsonObject(const QJsonObject& json, QMap<Q ...@@ -1316,6 +1320,7 @@ FactMetaData* FactMetaData::createFromJsonObject(const QJsonObject& json, QMap<Q
<< " error:" << errorString; << " error:" << errorString;
} }
} }
}
if (json.contains(_incrementJsonKey)) { if (json.contains(_incrementJsonKey)) {
QVariant typedValue; QVariant typedValue;
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment