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
245signals:
248
249private slots:
250 void _appSettingsUnitsChanged();
251
252private:
253 QVariant _minForType() const { return minForType(_type); };
254 QVariant _maxForType() const { return maxForType(_type); };
256 void _setAppSettingsTranslators();
257
259 template<class T>
260 void clamp(QVariant& variantValue) const {
261 if (cookedMin().value<T>() > variantValue.value<T>()) {
262 variantValue = cookedMin();
263 } else if(variantValue.value<T>() > cookedMax().value<T>()) {
264 variantValue = cookedMax();
265 }
266 }
267
268 template<class T>
269 bool isInCookedLimit(const QVariant &variantValue) const {
270 return ((cookedMin().value<T>() <= variantValue.value<T>()) && (variantValue.value<T>() <= cookedMax().value<T>()));
271 }
272
273 template<class T>
274 bool isInRawLimit(const QVariant &variantValue) const {
275 return ((rawMin().value<T>() <= variantValue.value<T>()) && (variantValue.value<T>() <= rawMax().value<T>()));
276 }
277
278 bool isInRawMinLimit(const QVariant &variantValue) const;
279 bool isInRawMaxLimit(const QVariant &variantValue) const;
280
281 static bool _parseEnum(const QString& name, const QJsonObject &jsonObject, const DefineMap_t &defineMap, QStringList &rgDescriptions, QStringList &rgValues, QString &errorString);
282 static bool _parseValuesArray(const QJsonObject &jsonObject, QStringList &rgDescriptions, QList<double> &rgValues, QString &errorString);
283 static bool _parseBitmaskArray(const QJsonObject &jsonObject, QStringList &rgDescriptions, QList<int> &rgValues, QString &errorString);
284
285 // Built in translators
286 static QVariant _defaultTranslator(const QVariant &from) { return from; }
287 static QVariant _degreesToRadians(const QVariant &degrees);
288 static QVariant _radiansToDegrees(const QVariant &radians);
289 static QVariant _centiDegreesToDegrees(const QVariant &centiDegrees);
290 static QVariant _degreesToCentiDegrees(const QVariant &degrees);
291 static QVariant _centiCelsiusToCelsius(const QVariant &centiCelsius);
292 static QVariant _celsiusToCentiCelsius(const QVariant &celsius);
293 static QVariant _userGimbalDegreesToMavlinkGimbalDegrees(const QVariant &userGimbalDegrees);
294 static QVariant _mavlinkGimbalDegreesToUserGimbalDegrees(const QVariant &mavlinkGimbalDegrees);
295 static QVariant _metersToFeet(const QVariant &meters);
296 static QVariant _feetToMeters(const QVariant &feet);
297 static QVariant _squareMetersToSquareKilometers(const QVariant &squareMeters);
298 static QVariant _squareKilometersToSquareMeters(const QVariant &squareKilometers);
299 static QVariant _squareMetersToHectares(const QVariant &squareMeters);
300 static QVariant _hectaresToSquareMeters(const QVariant &hectares);
301 static QVariant _squareMetersToSquareFeet(const QVariant &squareMeters);
302 static QVariant _squareFeetToSquareMeters(const QVariant &squareFeet);
303 static QVariant _squareMetersToAcres(const QVariant &squareMeters);
304 static QVariant _acresToSquareMeters(const QVariant &acres);
305 static QVariant _squareMetersToSquareMiles(const QVariant &squareMeters);
306 static QVariant _squareMilesToSquareMeters(const QVariant &squareMiles);
307 static QVariant _metersPerSecondToMilesPerHour(const QVariant &metersPerSecond);
308 static QVariant _milesPerHourToMetersPerSecond(const QVariant &milesPerHour);
309 static QVariant _metersPerSecondToKilometersPerHour(const QVariant &metersPerSecond);
310 static QVariant _kilometersPerHourToMetersPerSecond(const QVariant &kilometersPerHour);
311 static QVariant _metersPerSecondToKnots(const QVariant &metersPerSecond);
312 static QVariant _knotsToMetersPerSecond(const QVariant &knots);
313 static QVariant _percentToNorm(const QVariant &percent);
314 static QVariant _normToPercent(const QVariant &normalized);
315 static QVariant _centimetersToInches(const QVariant &centimeters);
316 static QVariant _inchesToCentimeters(const QVariant &inches);
317 static QVariant _celsiusToFarenheit(const QVariant &celsius);
318 static QVariant _farenheitToCelsius(const QVariant &farenheit);
319 static QVariant _kilogramsToGrams(const QVariant &kg);
320 static QVariant _ouncesToGrams(const QVariant &oz);
321 static QVariant _poundsToGrams(const QVariant &lbs);
322 static QVariant _gramsToKilograms(const QVariant &g);
323 static QVariant _gramsToOunces(const QVariant &g);
324 static QVariant _gramsToPunds(const QVariant &g);
325
326 enum UnitTypes {
327 UnitHorizontalDistance = 0,
328 UnitVerticalDistance,
329 UnitArea,
330 UnitSpeed,
331 UnitTemperature,
332 UnitWeight
333 };
334
335 struct AppSettingsTranslation_s {
336 QString rawUnits;
337 const char *cookedUnits = nullptr;
338 UnitTypes unitType = UnitHorizontalDistance;
339 uint32_t unitOption = 0;
340 Translator rawTranslator;
341 Translator cookedTranslator;
342 };
343
344 static const AppSettingsTranslation_s *_findAppSettingsUnitsTranslation(const QString &rawUnits, UnitTypes type);
345
346 static void _loadJsonDefines(const QJsonObject &jsonDefinesObject, QMap<QString, QString> &defineMap);
347
348 ValueType_t _type = valueTypeInt32; // must be first for correct constructor init
349 int _decimalPlaces = kUnknownDecimalPlaces;
350 int _maxStringLength = 0;
351 QVariant _rawDefaultValue = 0;
352 bool _defaultValueAvailable = false;
353 QStringList _bitmaskStrings;
354 QVariantList _bitmaskValues;
355 QStringList _enumStrings;
356 QVariantList _enumValues;
357 QString _category = kDefaultCategory;
358 QString _group = kDefaultGroup;
359 QString _longDescription;
360 QVariant _rawMax = _maxForType();
361 QVariant _rawMin = _minForType();
362 QVariant _rawUserMin; // Specifically left as unset by default to indicate no user min
363 QVariant _rawUserMax; // Specifically left as unset by default to indicate no user max
364 QString _name;
365 QString _label;
366 QString _shortDescription;
367 QString _rawUnits;
368 QString _cookedUnits;
369 Translator _rawTranslator = _defaultTranslator;
370 Translator _cookedTranslator = _defaultTranslator;
371 QMetaObject::Connection _appSettingsUnitsConnection;
372 bool _vehicleRebootRequired = false;
373 bool _qgcRebootRequired = false;
374 double _rawIncrement = std::numeric_limits<double>::quiet_NaN();
375 bool _hasControl = true;
376 bool _readOnly = false;
377 bool _writeOnly = false;
378 bool _volatile = false;
379 CustomCookedValidator _customCookedValidator = nullptr;
380
381 // Exact conversion constants
382 static constexpr struct UnitConsts_s {
383 static constexpr const qreal secondsPerHour = 3600.0;
384 static constexpr const qreal knotsToKPH = 1.852;
385 static constexpr const qreal milesToMeters = 1609.344;
386 static constexpr const qreal feetToMeters = 0.3048;
387 static constexpr const qreal inchesToCentimeters = 2.54;
388 static constexpr const qreal ouncesToGrams = 28.3495;
389 static constexpr const qreal poundsToGrams = 453.592;
390 static constexpr const qreal acresToSquareMeters = 4046.86;
391 static constexpr const qreal squareMetersToAcres = 0.000247105;
392 static constexpr const qreal feetToSquareMeters = 0.0929;
393 static constexpr const qreal squareMetersToSquareFeet = 10.7639;
394 static constexpr const qreal squareMetersToSquareMiles = 3.86102e-7;
395 static constexpr const qreal squareMilesToSquareMeters = 2589988.11;
396 } constants{};
397
398 struct BuiltInTranslation_s {
399 QString rawUnits;
400 const char *cookedUnits;
401 Translator rawTranslator;
402 Translator cookedTranslator;
403 };
404
405 static const BuiltInTranslation_s _rgBuiltInTranslations[];
406 static const AppSettingsTranslation_s _rgAppSettingsTranslations[];
407
408 static constexpr const char *_jsonMetaDataDefinesName = "QGC.MetaData.Defines";
409 static constexpr const char *_jsonMetaDataFactsName = "QGC.MetaData.Facts";
410 static constexpr const char *_enumStringsJsonKey = "enumStrings";
411 static constexpr const char *_enumValuesJsonKey = "enumValues";
412
413 // This is the newer json format for enums and bitmasks. They are used by the new COMPONENT_METADATA parameter metadata for example.
414 static constexpr const char *_enumValuesArrayJsonKey = "values";
415 static constexpr const char *_enumBitmaskArrayJsonKey = "bitmask";
416 static constexpr const char *_enumValuesArrayValueJsonKey = "value";
417 static constexpr const char *_enumValuesArrayDescriptionJsonKey = "description";
418 static constexpr const char *_enumBitmaskArrayIndexJsonKey = "index";
419 static constexpr const char *_enumBitmaskArrayDescriptionJsonKey = "description";
420
421 static constexpr const char *_rgKnownTypeStrings[] = {
422 "Uint8",
423 "Int8",
424 "Uint16",
425 "Int16",
426 "Uint32",
427 "Int32",
428 "Uint64",
429 "Int64",
430 "Float",
431 "Double",
432 "String",
433 "Bool",
434 "ElapsedSeconds",
435 "Custom",
436 };
437
438 static constexpr const ValueType_t _rgKnownValueTypes[] = {
453 };
454
455 static constexpr const char *_decimalPlacesJsonKey = "decimalPlaces";
456 static constexpr const char *_maxStringLengthJsonKey = "maxStringLength";
457 static constexpr const char *_commentJsonKey = "comment";
458 static constexpr const char *_keywordsJsonKey = "keywords";
459 static constexpr const char *_nameJsonKey = "name";
460 static constexpr const char *_labelJsonKey = "label";
461 static constexpr const char *_typeJsonKey = "type";
462 static constexpr const char *_shortDescriptionJsonKey = "shortDesc";
463 static constexpr const char *_longDescriptionJsonKey = "longDesc";
464 static constexpr const char *_unitsJsonKey = "units";
465 static constexpr const char *_defaultValueJsonKey = "default";
466 static constexpr const char *_mobileDefaultValueJsonKey = "mobileDefault";
467 static constexpr const char *_minJsonKey = "min";
468 static constexpr const char *_maxJsonKey = "max";
469 static constexpr const char *_userMinJsonKey = "userMin";
470 static constexpr const char *_userMaxJsonKey = "userMax";
471 static constexpr const char *_incrementJsonKey = "increment";
472 static constexpr const char *_hasControlJsonKey = "control";
473 static constexpr const char *_qgcRebootRequiredJsonKey = "qgcRebootRequired";
474 static constexpr const char *_rebootRequiredJsonKey = "rebootRequired";
475 static constexpr const char *_categoryJsonKey = "category";
476 static constexpr const char *_groupJsonKey = "group";
477 static constexpr const char *_volatileJsonKey = "volatile";
478 static constexpr const char *_readOnlyJsonKey = "readOnly";
479};
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
void appSettingsUnitsChanged()
Translators and cooked units were updated to a new app units setting.
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.