@ -349,7 +349,7 @@ int MissionController::_nextSequenceNumber(void)
@@ -349,7 +349,7 @@ int MissionController::_nextSequenceNumber(void)
}
}
int MissionController : : insertSimpleMissionItem ( QGeoCoordinate coordinate , int i )
int MissionController : : insertSimpleMissionItem ( QGeoCoordinate coordinate , int v isualItemIndex )
{
int sequenceNumber = _nextSequenceNumber ( ) ;
SimpleMissionItem * newItem = new SimpleMissionItem ( _controllerVehicle , _flyView , this ) ;
@ -367,13 +367,13 @@ int MissionController::insertSimpleMissionItem(QGeoCoordinate coordinate, int i)
@@ -367,13 +367,13 @@ int MissionController::insertSimpleMissionItem(QGeoCoordinate coordinate, int i)
double prevAltitude ;
int prevAltitudeMode ;
if ( _findPreviousAltitude ( i , & prevAltitude , & prevAltitudeMode ) ) {
if ( _findPreviousAltitude ( v isualItemIndex , & prevAltitude , & prevAltitudeMode ) ) {
newItem - > altitude ( ) - > setRawValue ( prevAltitude ) ;
newItem - > setAltitudeMode ( static_cast < QGroundControlQmlGlobal : : AltitudeMode > ( prevAltitudeMode ) ) ;
}
}
newItem - > setMissionFlightStatus ( _missionFlightStatus ) ;
_visualItems - > insert ( i , newItem ) ;
_visualItems - > insert ( v isualItemIndex , newItem ) ;
// We send the click coordinate through here to be able to set the planned home position from the user click location if needed
_recalcAllWithClickCoordinate ( coordinate ) ;
@ -381,7 +381,7 @@ int MissionController::insertSimpleMissionItem(QGeoCoordinate coordinate, int i)
@@ -381,7 +381,7 @@ int MissionController::insertSimpleMissionItem(QGeoCoordinate coordinate, int i)
return newItem - > sequenceNumber ( ) ;
}
int MissionController : : insertROIMissionItem ( QGeoCoordinate coordinate , int i )
int MissionController : : insertROIMissionItem ( QGeoCoordinate coordinate , int v isualItemIndex )
{
int sequenceNumber = _nextSequenceNumber ( ) ;
SimpleMissionItem * newItem = new SimpleMissionItem ( _controllerVehicle , _flyView , this ) ;
@ -395,18 +395,18 @@ int MissionController::insertROIMissionItem(QGeoCoordinate coordinate, int i)
@@ -395,18 +395,18 @@ int MissionController::insertROIMissionItem(QGeoCoordinate coordinate, int i)
double prevAltitude ;
int prevAltitudeMode ;
if ( _findPreviousAltitude ( i , & prevAltitude , & prevAltitudeMode ) ) {
if ( _findPreviousAltitude ( v isualItemIndex , & prevAltitude , & prevAltitudeMode ) ) {
newItem - > altitude ( ) - > setRawValue ( prevAltitude ) ;
newItem - > setAltitudeMode ( static_cast < QGroundControlQmlGlobal : : AltitudeMode > ( prevAltitudeMode ) ) ;
}
_visualItems - > insert ( i , newItem ) ;
_visualItems - > insert ( v isualItemIndex , newItem ) ;
_recalcAll ( ) ;
return newItem - > sequenceNumber ( ) ;
}
int MissionController : : insertComplexMissionItem ( QString itemName , QGeoCoordinate mapCenterCoordinate , int i )
int MissionController : : insertComplexMissionItem ( QString itemName , QGeoCoordinate mapCenterCoordinate , int v isualItemIndex )
{
ComplexMissionItem * newItem ;
@ -425,10 +425,10 @@ int MissionController::insertComplexMissionItem(QString itemName, QGeoCoordinate
@@ -425,10 +425,10 @@ int MissionController::insertComplexMissionItem(QString itemName, QGeoCoordinate
return sequenceNumber ;
}
return _insertComplexMissionItemWorker ( newItem , i ) ;
return _insertComplexMissionItemWorker ( newItem , v isualItemIndex ) ;
}
int MissionController : : insertComplexMissionItemFromKMLOrSHP ( QString itemName , QString file , int i )
int MissionController : : insertComplexMissionItemFromKMLOrSHP ( QString itemName , QString file , int v isualItemIndex )
{
ComplexMissionItem * newItem ;
@ -443,10 +443,10 @@ int MissionController::insertComplexMissionItemFromKMLOrSHP(QString itemName, QS
@@ -443,10 +443,10 @@ int MissionController::insertComplexMissionItemFromKMLOrSHP(QString itemName, QS
return _nextSequenceNumber ( ) ;
}
return _insertComplexMissionItemWorker ( newItem , i ) ;
return _insertComplexMissionItemWorker ( newItem , v isualItemIndex ) ;
}
int MissionController : : _insertComplexMissionItemWorker ( ComplexMissionItem * complexItem , int i )
int MissionController : : _insertComplexMissionItemWorker ( ComplexMissionItem * complexItem , int v isualItemIndex )
{
int sequenceNumber = _nextSequenceNumber ( ) ;
bool surveyStyleItem = qobject_cast < SurveyComplexItem * > ( complexItem ) | |
@ -482,10 +482,10 @@ int MissionController::_insertComplexMissionItemWorker(ComplexMissionItem* compl
@@ -482,10 +482,10 @@ int MissionController::_insertComplexMissionItemWorker(ComplexMissionItem* compl
complexItem - > setSequenceNumber ( sequenceNumber ) ;
_initVisualItem ( complexItem ) ;
if ( i = = - 1 ) {
if ( v isualItemIndex = = - 1 ) {
_visualItems - > append ( complexItem ) ;
} else {
_visualItems - > insert ( i , complexItem ) ;
_visualItems - > insert ( v isualItemIndex , complexItem ) ;
}
//-- Keep track of bounding box changes in complex items
@ -2227,3 +2227,16 @@ bool MissionController::isEmpty(void) const
@@ -2227,3 +2227,16 @@ bool MissionController::isEmpty(void) const
{
return _visualItems - > count ( ) < = 1 ;
}
int MissionController : : visualItemIndexFromSequenceNumber ( int sequenceNumber ) const
{
for ( int i = 0 ; i < _visualItems - > count ( ) ; i + + ) {
const VisualMissionItem * vi = _visualItems - > value < VisualMissionItem * > ( i ) ;
if ( vi - > sequenceNumber ( ) = = sequenceNumber ) {
return i ;
}
}
qWarning ( ) < < " MissionController::getVisualItemIndex visual item not found " ;
return 0 ;
}