QGroundControl
Ground Control Station for MAVLink Drones
Loading...
Searching...
No Matches
FactMetaData.h
Go to the documentation of this file.
1#pragma once
2
3#include <QtCore/QHash>
4#include <QtCore/QObject>
5#include <QtCore/QString>
6#include <QtCore/QVariant>
7#include <QtQmlIntegration/QtQmlIntegration>
8
10
15
16class FactMetaData : public QObject
17{
18 Q_OBJECT
19 QML_ELEMENT
20
21 friend class SettingsManager;
22
23public:
40 Q_ENUM(ValueType_t)
41
42 typedef QVariant (*Translator)(const QVariant &from);
43
44 // Custom function to validate a cooked value.
45 // @return Error string for failed validation explanation to user. Empty string indicates no error.
46 typedef QString (*CustomCookedValidator)(const QVariant &cookedValue);
47
48 typedef QHash<QString /* param Name */, FactMetaData*> NameToMetaDataMap_t;
49
50 explicit FactMetaData(QObject *parent = nullptr);
51 explicit FactMetaData(ValueType_t type, QObject *parent = nullptr);
52 explicit FactMetaData(ValueType_t type, const QString &name, QObject *parent = nullptr);
53 explicit FactMetaData(const FactMetaData &other, QObject *parent = nullptr);
54 ~FactMetaData();
55
56 typedef QMap<QString, QString> DefineMap_t;
57
58 static QMap<QString, FactMetaData*> createMapFromJsonFile(const QString &jsonFilename, QObject *metaDataParent);
59 static QMap<QString, FactMetaData*> createMapFromJsonArray(const QJsonArray &jsonArray, const DefineMap_t &defineMap, QObject *metaDataParent);
60
61 static FactMetaData *createFromJsonObject(const QJsonObject &json, const QMap<QString, QString> &defineMap, QObject *metaDataParent);
62
63 const FactMetaData &operator=(const FactMetaData &other);
64
66 static QVariant metersToAppSettingsHorizontalDistanceUnits(const QVariant &meters);
67
69 static QVariant appSettingsHorizontalDistanceUnitsToMeters(const QVariant &distance);
70
73
75 static QVariant metersToAppSettingsVerticalDistanceUnits(const QVariant &meters);
76
78 static QVariant appSettingsVerticalDistanceUnitsToMeters(const QVariant &distance);
79
82
84 static QVariant gramsToAppSettingsWeightUnits(const QVariant &grams);
85
87 static QVariant appSettingsWeightUnitsToGrams(const QVariant &weight);
88
90 static QString appSettingsWeightUnitsString();
91
93 static QVariant squareMetersToAppSettingsAreaUnits(const QVariant &squareMeters);
94
96 static QVariant appSettingsAreaUnitsToSquareMeters(const QVariant &area);
97
99 static QString appSettingsAreaUnitsString();
100
102 static QVariant metersSecondToAppSettingsSpeedUnits(const QVariant &metersSecond);
103
105 static QVariant appSettingsSpeedUnitsToMetersSecond(const QVariant &speed);
106
108 static QString appSettingsSpeedUnitsString();
109
110 static const QString defaultCategory() { return QString(kDefaultCategory); }
111 static const QString defaultGroup() { return QString(kDefaultGroup); }
112
113 // Splits a comma separated list of strings into a QStringList. Taking into account the possibility that
114 // the commas may have been translated to other characters such as chinese commas.
115 static QStringList splitTranslatedList(const QString &translatedList);
116
117 int decimalPlaces() const;
118
120 int maxStringLength() const { return _maxStringLength; }
123
124 QVariant rawDefaultValue() const;
125 QVariant cookedDefaultValue() const { return _rawTranslator(rawDefaultValue()); }
126 bool defaultValueAvailable() const { return _defaultValueAvailable; }
127 QStringList bitmaskStrings() const { return _bitmaskStrings; }
128 QVariantList bitmaskValues() const { return _bitmaskValues; }
129 QStringList enumStrings() const { return _enumStrings; }
130 QVariantList enumValues() const { return _enumValues; }
131 QString category() const { return _category; }
132 QString group() const { return _group; }
133 QString longDescription() const { return _longDescription;}
134 QVariant rawMax() const { return _rawMax; }
135 QVariant cookedMax() const;
136 bool maxIsDefaultForType() const { return (_rawMax == _maxForType()); }
137 QVariant rawMin() const { return _rawMin; }
138 QVariant cookedMin() const;
139 bool minIsDefaultForType() const { return (_rawMin == _minForType()); }
140 QVariant rawUserMin() const { return _rawUserMin; }
141 QVariant rawUserMax() const { return _rawUserMax; }
142 QVariant cookedUserMin() const;
143 QVariant cookedUserMax() const;
144 QString name() const { return _name; }
145 QString label() const { return _label; }
146 QString shortDescription() const { return _shortDescription; }
147 ValueType_t type() const { return _type; }
148 QString rawUnits() const { return _rawUnits; }
149 QString cookedUnits() const { return _cookedUnits; }
150 bool vehicleRebootRequired() const { return _vehicleRebootRequired; }
151 bool qgcRebootRequired() const { return _qgcRebootRequired; }
152 bool hasControl() const { return _hasControl; }
153 bool readOnly() const { return _readOnly; }
154 bool writeOnly() const { return _writeOnly; }
155 bool volatileValue() const { return _volatile; }
156
159 double rawIncrement() const { return _rawIncrement; }
160 double cookedIncrement() const;
161
162 Translator rawTranslator() const { return _rawTranslator; }
163 Translator cookedTranslator() const { return _cookedTranslator; }
164
166 void addBitmaskInfo(const QString &name, const QVariant &value);
167
169 void addEnumInfo(const QString &name, const QVariant &value);
170
172 void removeEnumInfo(const QVariant &value);
173
174 void setDecimalPlaces(int decimalPlaces) { _decimalPlaces = decimalPlaces; }
175 void setRawDefaultValue(const QVariant &rawDefaultValue);
176
183
184 void setBitmaskInfo(const QStringList &strings, const QVariantList &values);
185 void setEnumInfo(const QStringList &strings, const QVariantList &values);
186 void setCategory(const QString &category) { _category = category; }
187 void setGroup(const QString &group) { _group = group; }
188 void setLongDescription(const QString &longDescription) { _longDescription = longDescription;}
189 void setRawMax(const QVariant &rawMax);
190 void setRawMin(const QVariant &rawMin);
191 void setRawUserMin(const QVariant &rawUserMin);
192 void setRawUserMax(const QVariant &rawUserMax);
193 void setName(const QString &name) { _name = name; }
194 void setLabel(const QString &label) { _label = label; }
195 void setShortDescription(const QString &shortDescription) { _shortDescription = shortDescription; }
196 void setRawUnits(const QString &rawUnits);
197 void setVehicleRebootRequired(bool rebootRequired) { _vehicleRebootRequired = rebootRequired; }
198 void setQGCRebootRequired(bool rebootRequired) { _qgcRebootRequired = rebootRequired; }
199 void setRawIncrement(double increment) { _rawIncrement = increment; }
200 void setHasControl(bool bValue) { _hasControl = bValue; }
201 void setReadOnly(bool bValue) { _readOnly = bValue; }
202 void setWriteOnly(bool bValue) { _writeOnly = bValue; }
203 void setVolatileValue(bool bValue);
204
205 void setTranslators(Translator rawTranslator_, Translator cookedTranslator_);
206
209
216 bool convertAndValidateRaw(const QVariant &rawValue, bool convertOnly, QVariant &typedValue, QString &errorString) const;
217
219 bool convertAndValidateCooked(const QVariant &cookedValue, bool convertOnly, QVariant &typedValue, QString &errorString) const;
220
225 bool clampValue(const QVariant &cookedValue, QVariant &typedValue) const;
226
229 void setCustomCookedValidator(CustomCookedValidator customValidator) { _customCookedValidator = customValidator; }
230
231 static constexpr int kDefaultDecimalPlaces = 3;
232 static constexpr int kUnknownDecimalPlaces = -1;
233
234 static ValueType_t stringToType(const QString &typeString, bool &unknownType);
235 static QString typeToString(ValueType_t type);
236 static size_t typeToSize(ValueType_t type);
237
238 static QVariant minForType(ValueType_t type);
239 static QVariant maxForType(ValueType_t type);
240
241 static constexpr const char *kDefaultCategory = QT_TRANSLATE_NOOP("FactMetaData", "Other");
242 static constexpr const char *kDefaultGroup = QT_TRANSLATE_NOOP("FactMetaData", "Misc");
243 static constexpr const char *qgcFileType = "FactMetaData";
244
245private:
246 QVariant _minForType() const { return minForType(_type); };
247 QVariant _maxForType() const { return maxForType(_type); };
249 void _setAppSettingsTranslators();
250
252 template<class T>
253 void clamp(QVariant& variantValue) const {
254 if (cookedMin().value<T>() > variantValue.value<T>()) {
255 variantValue = cookedMin();
256 } else if(variantValue.value<T>() > cookedMax().value<T>()) {
257 variantValue = cookedMax();
258 }
259 }
260
261 template<class T>
262 bool isInCookedLimit(const QVariant &variantValue) const {
263 return ((cookedMin().value<T>() <= variantValue.value<T>()) && (variantValue.value<T>() <= cookedMax().value<T>()));
264 }
265
266 template<class T>
267 bool isInRawLimit(const QVariant &variantValue) const {
268 return ((rawMin().value<T>() <= variantValue.value<T>()) && (variantValue.value<T>() <= rawMax().value<T>()));
269 }
270
271 bool isInRawMinLimit(const QVariant &variantValue) const;
272 bool isInRawMaxLimit(const QVariant &variantValue) const;
273
274 static bool _parseEnum(const QString& name, const QJsonObject &jsonObject, const DefineMap_t &defineMap, QStringList &rgDescriptions, QStringList &rgValues, QString &errorString);
275 static bool _parseValuesArray(const QJsonObject &jsonObject, QStringList &rgDescriptions, QList<double> &rgValues, QString &errorString);
276 static bool _parseBitmaskArray(const QJsonObject &jsonObject, QStringList &rgDescriptions, QList<int> &rgValues, QString &errorString);
277
278 // Built in translators
279 static QVariant _defaultTranslator(const QVariant &from) { return from; }
280 static QVariant _degreesToRadians(const QVariant &degrees);
281 static QVariant _radiansToDegrees(const QVariant &radians);
282 static QVariant _centiDegreesToDegrees(const QVariant &centiDegrees);
283 static QVariant _degreesToCentiDegrees(const QVariant &degrees);
284 static QVariant _centiCelsiusToCelsius(const QVariant &centiCelsius);
285 static QVariant _celsiusToCentiCelsius(const QVariant &celsius);
286 static QVariant _userGimbalDegreesToMavlinkGimbalDegrees(const QVariant &userGimbalDegrees);
287 static QVariant _mavlinkGimbalDegreesToUserGimbalDegrees(const QVariant &mavlinkGimbalDegrees);
288 static QVariant _metersToFeet(const QVariant &meters);
289 static QVariant _feetToMeters(const QVariant &feet);
290 static QVariant _squareMetersToSquareKilometers(const QVariant &squareMeters);
291 static QVariant _squareKilometersToSquareMeters(const QVariant &squareKilometers);
292 static QVariant _squareMetersToHectares(const QVariant &squareMeters);
293 static QVariant _hectaresToSquareMeters(const QVariant &hectares);
294 static QVariant _squareMetersToSquareFeet(const QVariant &squareMeters);
295 static QVariant _squareFeetToSquareMeters(const QVariant &squareFeet);
296 static QVariant _squareMetersToAcres(const QVariant &squareMeters);
297 static QVariant _acresToSquareMeters(const QVariant &acres);
298 static QVariant _squareMetersToSquareMiles(const QVariant &squareMeters);
299 static QVariant _squareMilesToSquareMeters(const QVariant &squareMiles);
300 static QVariant _metersPerSecondToMilesPerHour(const QVariant &metersPerSecond);
301 static QVariant _milesPerHourToMetersPerSecond(const QVariant &milesPerHour);
302 static QVariant _metersPerSecondToKilometersPerHour(const QVariant &metersPerSecond);
303 static QVariant _kilometersPerHourToMetersPerSecond(const QVariant &kilometersPerHour);
304 static QVariant _metersPerSecondToKnots(const QVariant &metersPerSecond);
305 static QVariant _knotsToMetersPerSecond(const QVariant &knots);
306 static QVariant _percentToNorm(const QVariant &percent);
307 static QVariant _normToPercent(const QVariant &normalized);
308 static QVariant _centimetersToInches(const QVariant &centimeters);
309 static QVariant _inchesToCentimeters(const QVariant &inches);
310 static QVariant _celsiusToFarenheit(const QVariant &celsius);
311 static QVariant _farenheitToCelsius(const QVariant &farenheit);
312 static QVariant _kilogramsToGrams(const QVariant &kg);
313 static QVariant _ouncesToGrams(const QVariant &oz);
314 static QVariant _poundsToGrams(const QVariant &lbs);
315 static QVariant _gramsToKilograms(const QVariant &g);
316 static QVariant _gramsToOunces(const QVariant &g);
317 static QVariant _gramsToPunds(const QVariant &g);
318
319 enum UnitTypes {
320 UnitHorizontalDistance = 0,
321 UnitVerticalDistance,
322 UnitArea,
323 UnitSpeed,
324 UnitTemperature,
325 UnitWeight
326 };
327
328 struct AppSettingsTranslation_s {
329 QString rawUnits;
330 const char *cookedUnits = nullptr;
331 UnitTypes unitType = UnitHorizontalDistance;
332 uint32_t unitOption = 0;
333 Translator rawTranslator;
334 Translator cookedTranslator;
335 };
336
337 static const AppSettingsTranslation_s *_findAppSettingsUnitsTranslation(const QString &rawUnits, UnitTypes type);
338
339 static void _loadJsonDefines(const QJsonObject &jsonDefinesObject, QMap<QString, QString> &defineMap);
340
341 ValueType_t _type = valueTypeInt32; // must be first for correct constructor init
342 int _decimalPlaces = kUnknownDecimalPlaces;
343 int _maxStringLength = 0;
344 QVariant _rawDefaultValue = 0;
345 bool _defaultValueAvailable = false;
346 QStringList _bitmaskStrings;
347 QVariantList _bitmaskValues;
348 QStringList _enumStrings;
349 QVariantList _enumValues;
350 QString _category = kDefaultCategory;
351 QString _group = kDefaultGroup;
352 QString _longDescription;
353 QVariant _rawMax = _maxForType();
354 QVariant _rawMin = _minForType();
355 QVariant _rawUserMin; // Specifically left as unset by default to indicate no user min
356 QVariant _rawUserMax; // Specifically left as unset by default to indicate no user max
357 QString _name;
358 QString _label;
359 QString _shortDescription;
360 QString _rawUnits;
361 QString _cookedUnits;
362 Translator _rawTranslator = _defaultTranslator;
363 Translator _cookedTranslator = _defaultTranslator;
364 bool _vehicleRebootRequired = false;
365 bool _qgcRebootRequired = false;
366 double _rawIncrement = std::numeric_limits<double>::quiet_NaN();
367 bool _hasControl = true;
368 bool _readOnly = false;
369 bool _writeOnly = false;
370 bool _volatile = false;
371 CustomCookedValidator _customCookedValidator = nullptr;
372
373 // Exact conversion constants
374 static constexpr struct UnitConsts_s {
375 static constexpr const qreal secondsPerHour = 3600.0;
376 static constexpr const qreal knotsToKPH = 1.852;
377 static constexpr const qreal milesToMeters = 1609.344;
378 static constexpr const qreal feetToMeters = 0.3048;
379 static constexpr const qreal inchesToCentimeters = 2.54;
380 static constexpr const qreal ouncesToGrams = 28.3495;
381 static constexpr const qreal poundsToGrams = 453.592;
382 static constexpr const qreal acresToSquareMeters = 4046.86;
383 static constexpr const qreal squareMetersToAcres = 0.000247105;
384 static constexpr const qreal feetToSquareMeters = 0.0929;
385 static constexpr const qreal squareMetersToSquareFeet = 10.7639;
386 static constexpr const qreal squareMetersToSquareMiles = 3.86102e-7;
387 static constexpr const qreal squareMilesToSquareMeters = 2589988.11;
388 } constants{};
389
390 struct BuiltInTranslation_s {
391 QString rawUnits;
392 const char *cookedUnits;
393 Translator rawTranslator;
394 Translator cookedTranslator;
395 };
396
397 static const BuiltInTranslation_s _rgBuiltInTranslations[];
398 static const AppSettingsTranslation_s _rgAppSettingsTranslations[];
399
400 static constexpr const char *_jsonMetaDataDefinesName = "QGC.MetaData.Defines";
401 static constexpr const char *_jsonMetaDataFactsName = "QGC.MetaData.Facts";
402 static constexpr const char *_enumStringsJsonKey = "enumStrings";
403 static constexpr const char *_enumValuesJsonKey = "enumValues";
404
405 // This is the newer json format for enums and bitmasks. They are used by the new COMPONENT_METADATA parameter metadata for example.
406 static constexpr const char *_enumValuesArrayJsonKey = "values";
407 static constexpr const char *_enumBitmaskArrayJsonKey = "bitmask";
408 static constexpr const char *_enumValuesArrayValueJsonKey = "value";
409 static constexpr const char *_enumValuesArrayDescriptionJsonKey = "description";
410 static constexpr const char *_enumBitmaskArrayIndexJsonKey = "index";
411 static constexpr const char *_enumBitmaskArrayDescriptionJsonKey = "description";
412
413 static constexpr const char *_rgKnownTypeStrings[] = {
414 "Uint8",
415 "Int8",
416 "Uint16",
417 "Int16",
418 "Uint32",
419 "Int32",
420 "Uint64",
421 "Int64",
422 "Float",
423 "Double",
424 "String",
425 "Bool",
426 "ElapsedSeconds",
427 "Custom",
428 };
429
430 static constexpr const ValueType_t _rgKnownValueTypes[] = {
445 };
446
447 static constexpr const char *_decimalPlacesJsonKey = "decimalPlaces";
448 static constexpr const char *_maxStringLengthJsonKey = "maxStringLength";
449 static constexpr const char *_commentJsonKey = "comment";
450 static constexpr const char *_keywordsJsonKey = "keywords";
451 static constexpr const char *_nameJsonKey = "name";
452 static constexpr const char *_labelJsonKey = "label";
453 static constexpr const char *_typeJsonKey = "type";
454 static constexpr const char *_shortDescriptionJsonKey = "shortDesc";
455 static constexpr const char *_longDescriptionJsonKey = "longDesc";
456 static constexpr const char *_unitsJsonKey = "units";
457 static constexpr const char *_defaultValueJsonKey = "default";
458 static constexpr const char *_mobileDefaultValueJsonKey = "mobileDefault";
459 static constexpr const char *_minJsonKey = "min";
460 static constexpr const char *_maxJsonKey = "max";
461 static constexpr const char *_userMinJsonKey = "userMin";
462 static constexpr const char *_userMaxJsonKey = "userMax";
463 static constexpr const char *_incrementJsonKey = "increment";
464 static constexpr const char *_hasControlJsonKey = "control";
465 static constexpr const char *_qgcRebootRequiredJsonKey = "qgcRebootRequired";
466 static constexpr const char *_rebootRequiredJsonKey = "rebootRequired";
467 static constexpr const char *_categoryJsonKey = "category";
468 static constexpr const char *_groupJsonKey = "group";
469 static constexpr const char *_volatileJsonKey = "volatile";
470 static constexpr const char *_readOnlyJsonKey = "readOnly";
471};
QString errorString
Holds the meta data associated with a Fact.
static FactMetaData * createFromJsonObject(const QJsonObject &json, const QMap< QString, QString > &defineMap, QObject *metaDataParent)
QString label() const
QHash< QString, FactMetaData * > NameToMetaDataMap_t
void setRawUnits(const QString &rawUnits)
void setDecimalPlaces(int decimalPlaces)
void setHasControl(bool bValue)
QStringList enumStrings() const
static constexpr const char * qgcFileType
QVariant cookedDefaultValue() const
void setRawUserMin(const QVariant &rawUserMin)
static QVariant appSettingsAreaUnitsToSquareMeters(const QVariant &area)
Converts from user specified distance unit to meters.
static QVariant metersToAppSettingsVerticalDistanceUnits(const QVariant &meters)
Converts from meters to the user specified vertical distance unit.
bool hasControl() const
void setShortDescription(const QString &shortDescription)
void setRawDefaultValueFirmwareForce(const QVariant &rawDefaultValue)
QVariant cookedMin() const
static QVariant metersToAppSettingsHorizontalDistanceUnits(const QVariant &meters)
Converts from meters to the user specified horizontal distance unit.
QStringList bitmaskStrings() const
static QVariant metersSecondToAppSettingsSpeedUnits(const QVariant &metersSecond)
Converts from meters/second to the user specified speed unit.
bool clampValue(const QVariant &cookedValue, QVariant &typedValue) const
bool qgcRebootRequired() const
bool convertAndValidateCooked(const QVariant &cookedValue, bool convertOnly, QVariant &typedValue, QString &errorString) const
Same as convertAndValidateRaw except for cookedValue input.
QVariant cookedUserMax() const
void setQGCRebootRequired(bool rebootRequired)
static size_t typeToSize(ValueType_t type)
Translator cookedTranslator() const
QVariant cookedMax() const
static QStringList splitTranslatedList(const QString &translatedList)
static QString typeToString(ValueType_t type)
QString group() const
static QMap< QString, FactMetaData * > createMapFromJsonFile(const QString &jsonFilename, QObject *metaDataParent)
QVariant rawMin() const
@ valueTypeElapsedTimeInSeconds
static constexpr const char * kDefaultGroup
void setName(const QString &name)
QVariantList enumValues() const
void addBitmaskInfo(const QString &name, const QVariant &value)
Used to add new values to the bitmask lists after the meta data has been loaded.
void setLongDescription(const QString &longDescription)
static QMap< QString, FactMetaData * > createMapFromJsonArray(const QJsonArray &jsonArray, const DefineMap_t &defineMap, QObject *metaDataParent)
QString cookedUnits() const
QString shortDescription() const
static QString appSettingsVerticalDistanceUnitsString()
Returns the string for vertical distance units which has configued by user.
void setRawUserMax(const QVariant &rawUserMax)
void setLabel(const QString &label)
bool maxIsDefaultForType() const
static constexpr int kUnknownDecimalPlaces
Number of decimal places to specify is not known.
void setMaxStringLength(int maxStringLength)
Negative values are invalid (they would silently disable length validation): warns and clamps to 0.
static constexpr const char * kDefaultCategory
int decimalPlaces() const
void setVehicleRebootRequired(bool rebootRequired)
static constexpr int kDefaultDecimalPlaces
Default value for decimal places if not specified/known.
static QString appSettingsWeightUnitsString()
Returns the string for weight units which has configued by user.
void setTranslators(Translator rawTranslator_, Translator cookedTranslator_)
void setRawMin(const QVariant &rawMin)
QVariant cookedUserMin() const
QVariant rawUserMin() const
void setCategory(const QString &category)
bool convertAndValidateRaw(const QVariant &rawValue, bool convertOnly, QVariant &typedValue, QString &errorString) const
QString rawUnits() const
QVariant rawUserMax() const
static const QString defaultCategory()
QString(* CustomCookedValidator)(const QVariant &cookedValue)
static QString appSettingsAreaUnitsString()
Returns the string for distance units which has configued by user.
static QVariant maxForType(ValueType_t type)
void setWriteOnly(bool bValue)
void setRawDefaultValue(const QVariant &rawDefaultValue)
static const QString defaultGroup()
static QVariant gramsToAppSettingsWeightUnits(const QVariant &grams)
Converts from grams to the user specified weight unit.
static QString appSettingsHorizontalDistanceUnitsString()
Returns the string for horizontal distance units which has configued by user.
double rawIncrement() const
int maxStringLength() const
Maximum string length for valueTypeString facts. 0 means no limit.
void setEnumInfo(const QStringList &strings, const QVariantList &values)
void setBitmaskInfo(const QStringList &strings, const QVariantList &values)
void setRawMax(const QVariant &rawMax)
bool readOnly() const
static QVariant squareMetersToAppSettingsAreaUnits(const QVariant &squareMeters)
Converts from meters to the user specified distance unit.
QString category() const
void removeEnumInfo(const QVariant &value)
Used to remove values from the enum lists after the meta data has been loaded.
QVariant(* Translator)(const QVariant &from)
static QVariant minForType(ValueType_t type)
static QVariant appSettingsVerticalDistanceUnitsToMeters(const QVariant &distance)
Converts from user specified vertical distance unit to meters.
QString longDescription() const
bool minIsDefaultForType() const
void setRawIncrement(double increment)
bool writeOnly() const
void addEnumInfo(const QString &name, const QVariant &value)
Used to add new values to the enum lists after the meta data has been loaded.
void setVolatileValue(bool bValue)
QString name() const
static QVariant appSettingsHorizontalDistanceUnitsToMeters(const QVariant &distance)
Converts from user specified horizontal distance unit to meters.
void setGroup(const QString &group)
QVariantList bitmaskValues() const
QVariant rawDefaultValue() const
ValueType_t type() const
static ValueType_t stringToType(const QString &typeString, bool &unknownType)
static QVariant appSettingsSpeedUnitsToMetersSecond(const QVariant &speed)
Converts from user specified speed unit to meters/second.
void setCustomCookedValidator(CustomCookedValidator customValidator)
static QVariant appSettingsWeightUnitsToGrams(const QVariant &weight)
Converts from user specified weight unit to grams.
bool vehicleRebootRequired() const
bool volatileValue() const
QVariant rawMax() const
bool defaultValueAvailable() const
double cookedIncrement() const
void setBuiltInTranslator()
Set the translators to the standard built in versions.
QMap< QString, QString > DefineMap_t
static QString appSettingsSpeedUnitsString()
Returns the string for speed units which has configued by user.
void setReadOnly(bool bValue)
Translator rawTranslator() const
Provides access to all app settings.