22 Q_MOC_INCLUDE(
"FactValueSliderListModel.h")
23 Q_PROPERTY(
int componentId READ componentId CONSTANT)
24 Q_PROPERTY(QStringList bitmaskStrings READ bitmaskStrings NOTIFY bitmaskStringsChanged)
25 Q_PROPERTY(QVariantList bitmaskValues READ bitmaskValues NOTIFY bitmaskValuesChanged)
26 Q_PROPERTY(QStringList selectedBitmaskStrings READ selectedBitmaskStrings NOTIFY valueChanged)
27 Q_PROPERTY(
int decimalPlaces READ decimalPlaces CONSTANT)
28 Q_PROPERTY(QVariant defaultValue READ cookedDefaultValue CONSTANT)
29 Q_PROPERTY(QString defaultValueString READ cookedDefaultValueString CONSTANT)
30 Q_PROPERTY(
bool defaultValueAvailable READ defaultValueAvailable CONSTANT)
31 Q_PROPERTY(
int enumIndex READ enumIndex WRITE setEnumIndex NOTIFY valueChanged)
32 Q_PROPERTY(QStringList enumStrings READ enumStrings NOTIFY enumsChanged)
33 Q_PROPERTY(QString enumStringValue READ enumStringValue WRITE setEnumStringValue NOTIFY valueChanged)
34 Q_PROPERTY(QVariantList enumValues READ enumValues NOTIFY enumsChanged)
35 Q_PROPERTY(QString category READ category CONSTANT)
36 Q_PROPERTY(QString group READ group CONSTANT)
37 Q_PROPERTY(QString longDescription READ longDescription CONSTANT)
38 Q_PROPERTY(QVariant max READ cookedMax CONSTANT)
39 Q_PROPERTY(QString maxString READ cookedMaxString CONSTANT)
40 Q_PROPERTY(
bool maxIsDefaultForType READ maxIsDefaultForType CONSTANT)
41 Q_PROPERTY(QVariant min READ cookedMin CONSTANT)
42 Q_PROPERTY(QString minString READ cookedMinString CONSTANT)
43 Q_PROPERTY(
bool minIsDefaultForType READ minIsDefaultForType CONSTANT)
44 Q_PROPERTY(QVariant userMin READ cookedUserMin CONSTANT)
45 Q_PROPERTY(QString userMinString READ cookedUserMinString CONSTANT)
46 Q_PROPERTY(QVariant userMax READ cookedUserMax CONSTANT)
47 Q_PROPERTY(QString userMaxString READ cookedUserMaxString CONSTANT)
48 Q_PROPERTY(QString name READ name CONSTANT)
49 Q_PROPERTY(
bool vehicleRebootRequired READ vehicleRebootRequired CONSTANT)
50 Q_PROPERTY(
bool qgcRebootRequired READ qgcRebootRequired CONSTANT)
51 Q_PROPERTY(QString shortDescription READ shortDescription CONSTANT)
52 Q_PROPERTY(QString units READ cookedUnits CONSTANT)
53 Q_PROPERTY(QVariant value READ cookedValue WRITE setCookedValue NOTIFY valueChanged)
54 Q_PROPERTY(QVariant rawValue READ rawValue WRITE setRawValue NOTIFY rawValueChanged)
55 Q_PROPERTY(
bool valueEqualsDefault READ valueEqualsDefault NOTIFY valueChanged)
56 Q_PROPERTY(QString invalidValueString READ invalidValueString CONSTANT)
57 Q_PROPERTY(QString valueString READ cookedValueString NOTIFY valueChanged)
58 Q_PROPERTY(QString enumOrValueString READ enumOrValueString NOTIFY valueChanged)
59 Q_PROPERTY(
double increment READ cookedIncrement CONSTANT)
60 Q_PROPERTY(
bool typeIsString READ typeIsString CONSTANT)
61 Q_PROPERTY(
bool typeIsBool READ typeIsBool CONSTANT)
62 Q_PROPERTY(
bool hasControl READ hasControl CONSTANT)
63 Q_PROPERTY(
bool readOnly READ readOnly CONSTANT)
64 Q_PROPERTY(
bool writeOnly READ writeOnly CONSTANT)
65 Q_PROPERTY(
bool volatileValue READ volatileValue CONSTANT)
68 explicit Fact(QObject *parent =
nullptr);
70 explicit Fact(
const Fact &other, QObject *parent =
nullptr);
74 explicit Fact(
const QString &settingsGroup,
FactMetaData *metaData, QObject *parent =
nullptr);
77 const Fact &operator=(
const Fact &other);
82 Q_INVOKABLE QString validate(
const QString &cookedValue,
bool convertOnly);
84 Q_INVOKABLE QVariant clamp(
const QString &cookedValue);
85 QVariant cookedValue()
const;
86 QVariant rawValue()
const
88 QMutexLocker<QRecursiveMutex> locker(&_rawValueMutex);
91 int componentId()
const {
return _componentId; }
92 int decimalPlaces()
const;
93 QVariant rawDefaultValue()
const;
94 QVariant cookedDefaultValue()
const;
95 bool defaultValueAvailable()
const;
96 QString cookedDefaultValueString()
const;
97 QStringList bitmaskStrings()
const;
98 QVariantList bitmaskValues()
const;
100 QStringList selectedBitmaskStrings()
const;
102 QStringList enumStrings()
const;
103 QString enumStringValue();
104 QVariantList enumValues()
const;
105 QString category()
const;
106 QString group()
const;
107 QString longDescription()
const;
108 QVariant rawMax()
const;
109 QVariant cookedMax()
const;
110 QString cookedMaxString()
const;
111 bool maxIsDefaultForType()
const;
112 QVariant rawMin()
const;
113 QVariant cookedMin()
const;
114 QString cookedMinString()
const;
115 bool minIsDefaultForType()
const;
116 QVariant rawUserMin()
const;
117 QVariant cookedUserMin()
const;
118 QString cookedUserMinString()
const;
119 QVariant rawUserMax()
const;
120 QVariant cookedUserMax()
const;
121 QString cookedUserMaxString()
const;
122 QString name()
const {
return _name; }
123 QString shortDescription()
const;
125 QString cookedUnits()
const;
126 QString rawUnits()
const;
127 QString invalidValueString(
int decimalPlaces)
const;
128 QString invalidValueString()
const {
return invalidValueString(decimalPlaces()); }
129 QString rawValueString()
const;
130 QString cookedValueString()
const;
131 bool valueEqualsDefault()
const;
132 bool vehicleRebootRequired()
const;
133 bool qgcRebootRequired()
const;
134 QString enumOrValueString();
135 double rawIncrement()
const;
136 double cookedIncrement()
const;
139 bool hasControl()
const;
140 bool readOnly()
const;
141 bool writeOnly()
const;
142 bool volatileValue()
const;
147 QString rawValueStringFullPrecision()
const;
149 void setRawValue(
const QVariant &value);
150 void setCookedValue(
const QVariant &value);
151 void setEnumIndex(
int index);
152 void setEnumStringValue(
const QString &value);
153 int valueIndex(
const QString &value)
const;
157 void setSendValueChangedSignals (
bool sendValueChangedSignals);
158 bool sendValueChangedSignals ()
const {
return _sendValueChangedSignals; }
159 bool deferredValueChangeSignal()
const {
return _deferredValueChangeSignal; }
160 void clearDeferredValueChangeSignal() { _deferredValueChangeSignal =
false; }
161 void sendDeferredValueChangedSignal();
164 void forceSetRawValue(
const QVariant &value);
169 void setMetaData(
FactMetaData *metaData,
bool setDefaultFromMetaData =
false);
174 void containerSetRawValue(
const QVariant &value);
177 void setName(
const QString &name) { _name = name; }
180 void setEnumInfo(
const QStringList &strings,
const QVariantList &values);
199 QString _variantToString(
const QVariant &variant,
int decimalPlaces)
const;
200 void _sendValueChangedSignal(
const QVariant &value);
203 int _componentId = -1;
204 QVariant _rawValue{0};
208 bool _sendValueChangedSignals =
true;
209 bool _deferredValueChangeSignal =
false;
212 static constexpr const char *kMissingMetadata =
"Meta data pointer missing";
215 void _checkForRebootMessaging();