15 Q_MOC_INCLUDE(
"SpeedSection.h")
16 Q_MOC_INCLUDE(
"CameraSection.h")
98 virtual bool load(QTextStream &loadStream);
105 bool dirty (
void)
const override {
return _dirty; }
125 QString
mapVisualQML (
void)
const override {
return QStringLiteral(
"SimpleItemMapVisual.qml"); }
126 QString
geoMapVisualQML (
void)
const override {
return QStringLiteral(
"GeoMapWaypointItem.qml"); }
128 void appendMissionItems (QList<MissionItem*>& items, QObject* missionItemParent)
final;
139 void save (QJsonArray& missionItems)
final;
154 void _setDirty (
void);
155 void _sectionDirtyChanged (
bool dirty);
156 void _sendCommandChanged (
void);
157 void _sendCoordinateChanged (
void);
158 void _sendFriendlyEditAllowedChanged (
void);
159 void _altitudeChanged (
void);
160 void _altitudeFrameChanged (
void);
161 void _terrainAltChanged (
void);
162 void _updateLastSequenceNumber (
void);
163 void _rebuildFacts (
void);
164 void _rebuildTextFieldFacts (
void);
165 void _possibleAdditionalTimeDelayChanged (
void);
166 void _setDefaultsForCommand (
void);
167 void _possibleVehicleYawChanged (
void);
168 void _signalIfVTOLTransitionCommand (
void);
169 void _possibleRadiusChanged (
void);
172 void _connectSignals (
void);
173 void _setupMetaData (
void);
174 void _updateOptionalSections(
void);
175 void _rebuildNaNFacts (
void);
176 void _rebuildComboBoxFacts (
void);
179 bool _rawEdit =
false;
181 bool _ignoreDirtyChangeSignals =
false;
182 QGeoCoordinate _mapCenterHint;
186 bool _syncingHeadingDegreesAndParam4 =
false;
188 Fact _supportedCommandFact;
192 Fact _amslAltAboveTerrainFact;
216 static constexpr const char* _jsonAltitudeModeKey =
"AltitudeMode";
217 static constexpr const char* _jsonAltitudeKey =
"Altitude";
218 static constexpr const char* _jsonAMSLAltAboveTerrainKey =
"AMSLAltAboveTerrain";
225 static constexpr const struct EnumInfo_s _rgMavFrameInfo[] = {
226 {
"MAV_FRAME_GLOBAL", MAV_FRAME_GLOBAL },
227 {
"MAV_FRAME_LOCAL_NED", MAV_FRAME_LOCAL_NED },
228 {
"MAV_FRAME_MISSION", MAV_FRAME_MISSION },
229 {
"MAV_FRAME_GLOBAL_RELATIVE_ALT", MAV_FRAME_GLOBAL_RELATIVE_ALT },
230 {
"MAV_FRAME_LOCAL_ENU", MAV_FRAME_LOCAL_ENU },
231 {
"MAV_FRAME_GLOBAL_INT", MAV_FRAME_GLOBAL_INT },
232 {
"MAV_FRAME_GLOBAL_RELATIVE_ALT_INT", MAV_FRAME_GLOBAL_RELATIVE_ALT_INT },
233 {
"MAV_FRAME_LOCAL_OFFSET_NED", MAV_FRAME_LOCAL_OFFSET_NED },
234 {
"MAV_FRAME_BODY_NED", MAV_FRAME_BODY_NED },
235 {
"MAV_FRAME_BODY_OFFSET_NED", MAV_FRAME_BODY_OFFSET_NED },
236 {
"MAV_FRAME_GLOBAL_TERRAIN_ALT", MAV_FRAME_GLOBAL_TERRAIN_ALT },
237 {
"MAV_FRAME_GLOBAL_TERRAIN_ALT_INT", MAV_FRAME_GLOBAL_TERRAIN_ALT_INT },
A Fact is used to hold a single value within the system.
QVariant cookedValue() const
int sequenceNumber(void) const
Master controller for mission, fence, rally.
A SimpleMissionItem is used to represent a single MissionItem to the ui.
QString commandDescription(void) const override
bool specifiesCoordinate(void) const final
void setSequenceNumber(int sequenceNumber) final
void setAzimuth(double azimuth)
QmlObjectListModel * textFieldFactsAdvanced(void)
bool specifiesAltitudeOnly(void) const final
ReadyForSaveState readyForSaveState(void) const final
bool exitCoordinateSameAsEntry(void) const final
double editableAlt(void) const final
void setCommandByIndex(int index)
bool dirty(void) const override
bool isSimpleItem(void) const final
bool friendlyEditAllowed(void) const
void rawEditChanged(bool rawEdit)
void speedSectionChanged(QObject *cameraSection)
void commandChanged(int command)
bool isStandaloneCoordinate(void) const final
void applyNewAltitude(double newAltitude) final
Adjust the altitude of the item if appropriate to the new altitude.
QmlObjectListModel * textFieldFacts(void)
void appendMissionItems(QList< MissionItem * > &items, QObject *missionItemParent) final
void isLoiterItemChanged(void)
void friendlyEditAllowedChanged(bool friendlyEditAllowed)
int sequenceNumber(void) const final
QString commandName(void) const override
void loiterRadiusChanged(double loiterRadius)
QGeoCoordinate entryCoordinate(void) const final
void showLoiterRadiusChanged(void)
QmlObjectListModel * nanFactsAdvanced(void)
void setDistance(double distance)
bool scanForSections(QmlObjectListModel *visualItems, int scanIndex, PlanMasterController *masterController)
bool showLoiterRadius(void) const
bool terrainAltitudeRequiredInFlyView(void) const final
QmlObjectListModel * nanFacts(void)
void altitudeFrameChanged(void)
QString abbreviation(void) const final
void setAltPercent(double altPercent)
SpeedSection * speedSection(void)
const MissionItem & missionItem(void) const
CameraSection * cameraSection(void)
double specifiedVehicleYaw(void) override
int lastSequenceNumber(void) const final
void setRadius(double loiterRadius)
MAV_CMD mavCommand(void) const
QString mapVisualQML(void) const override
QString geoMapVisualQML(void) const override
void setAltDifference(double altDifference)
double amslEntryAlt(void) const final
bool specifiesAltitude(void) const
QGeoCoordinate exitCoordinate(void) const final
Fact * amslAltAboveTerrain(void)
bool isLandCommand(void) const final
QGeoCoordinate coordinate(void) const final
virtual bool load(QTextStream &loadStream)
double loiterRadius(void) const
void setCoordinate(const QGeoCoordinate &coordinate) override
void setCommand(int command)
double specifiedFlightSpeed(void) override
bool isLoiterItem(void) const
double amslExitAlt(void) const final
QmlObjectListModel * comboboxFactsAdvanced(void)
Q_INVOKABLE void setMapCenterHintForCommandChange(QGeoCoordinate mapCenter)
Optional sections.
void setAltitudeFrame(QGroundControlQmlGlobal::AltitudeFrame altitudeFrame)
double specifiedGimbalYaw(void) override
MissionItem & missionItem(void)
~SimpleMissionItem()
true: raw item editing with all params
double specifiedGimbalPitch(void) override
void cameraSectionChanged(QObject *cameraSection)
QGroundControlQmlGlobal::AltitudeFrame altitudeFrame(void) const
QmlObjectListModel * comboboxFacts(void)
void setDirty(bool dirty) final
void setRawEdit(bool rawEdit)
void save(QJsonArray &missionItems) final
QString category(void) const
void setMissionFlightStatus(MissionFlightStatus_t &missionFlightStatus) final
void headingDegreesChanged(double heading)
double additionalTimeDelay(void) const final
double altDifference(void) const
double altPercent(void) const
double distance(void) const
PlanMasterController * masterController(void)
double azimuth(void) const