3QMap<QString, FactMetaData*> RallyPoint::_metaDataMap;
8 , _longitudeFact(0, _longitudeFactName,
FactMetaData::valueTypeDouble)
9 , _latitudeFact(0, _latitudeFactName,
FactMetaData::valueTypeDouble)
10 , _altitudeFact(0, _altitudeFactName,
FactMetaData::valueTypeDouble)
23 , _longitudeFact(0, _longitudeFactName,
FactMetaData::valueTypeDouble)
24 , _latitudeFact(0, _latitudeFactName,
FactMetaData::valueTypeDouble)
25 , _altitudeFact(0, _altitudeFactName,
FactMetaData::valueTypeDouble)
50void RallyPoint::_factSetup(
void)
54 _latitudeFact.
setMetaData(_metaDataMap[_latitudeFactName]);
55 _longitudeFact.
setMetaData(_metaDataMap[_longitudeFactName]);
56 _altitudeFact.
setMetaData(_metaDataMap[_altitudeFactName]);
58 _textFieldFacts.append(QVariant::fromValue(&_latitudeFact));
59 _textFieldFacts.append(QVariant::fromValue(&_longitudeFact));
60 _textFieldFacts.append(QVariant::fromValue(&_altitudeFact));
62 connect(&_latitudeFact, &
Fact::valueChanged,
this, &RallyPoint::_sendCoordinateChanged);
63 connect(&_longitudeFact, &
Fact::valueChanged,
this, &RallyPoint::_sendCoordinateChanged);
64 connect(&_altitudeFact, &
Fact::valueChanged,
this, &RallyPoint::_sendCoordinateChanged);
67 for (
Fact*
const fact : {&_latitudeFact, &_longitudeFact, &_altitudeFact}) {
72void RallyPoint::_cacheFactMetadata() {
73 if (_metaDataMap.isEmpty()) {
91 if (
dirty != _dirty) {
99 auto it = _metaDataMap.find(QString(_altitudeFactName));
100 if(it != _metaDataMap.end() && (*it)->defaultValueAvailable()) {
101 return (*it)->rawDefaultValue().toDouble();
108 return QGeoCoordinate(_latitudeFact.
rawValue().toDouble(), _longitudeFact.
rawValue().toDouble(), _altitudeFact.
rawValue().toDouble());
111void RallyPoint::_sendCoordinateChanged(
void)
A Fact is used to hold a single value within the system.
void setMetaData(FactMetaData *metaData, bool setDefaultFromMetaData=false)
void rawValueChanged(const QVariant &value)
void setRawValue(const QVariant &value)
QVariant rawValue() const
void valueChanged(const QVariant &value)
This signal is only meant for use by the QT property system. It should not be connected to by client ...
This class is used to encapsulate the QGeoCoordinate associated with a Rally Point into a QObject suc...
QGeoCoordinate coordinate(void) const
void setCoordinate(const QGeoCoordinate &coordinate)
static double getDefaultFactAltitude()
const RallyPoint & operator=(const RallyPoint &other)
void dirtyChanged(bool dirty)
RallyPoint(const QGeoCoordinate &coordinate, QObject *parent=nullptr)
void coordinateChanged(const QGeoCoordinate &coordinate)
void setDirty(bool dirty)