Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
Q
qgroundcontrol
Project
Project
Details
Activity
Releases
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Boards
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
Valentin Platzgummer
qgroundcontrol
Commits
45dceec3
Commit
45dceec3
authored
Feb 27, 2016
by
Don Gagne
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Survey initial grid generation
parent
4e9d37b5
Changes
7
Expand all
Hide whitespace changes
Inline
Side-by-side
Showing
7 changed files
with
298 additions
and
125 deletions
+298
-125
MissionEditor.qml
src/MissionEditor/MissionEditor.qml
+32
-23
SurveyItemEditor.qml
src/MissionEditor/SurveyItemEditor.qml
+25
-1
ComplexMissionItem.cc
src/MissionManager/ComplexMissionItem.cc
+175
-78
ComplexMissionItem.h
src/MissionManager/ComplexMissionItem.h
+39
-2
MissionController.cc
src/MissionManager/MissionController.cc
+20
-15
MissionController.h
src/MissionManager/MissionController.h
+6
-2
SimpleMissionItem.h
src/MissionManager/SimpleMissionItem.h
+1
-4
No files found.
src/MissionEditor/MissionEditor.qml
View file @
45dceec3
...
@@ -173,14 +173,15 @@ QGCView {
...
@@ -173,14 +173,15 @@ QGCView {
id
:
_dropButtonsExclusiveGroup
id
:
_dropButtonsExclusiveGroup
}
}
function
setCurrentItem
(
index
)
{
function
setCurrentItem
(
sequenceNumber
)
{
_currentMissionItem
=
undefined
_currentMissionItem
=
undefined
for
(
var
i
=
0
;
i
<
_visualItems
.
count
;
i
++
)
{
for
(
var
i
=
0
;
i
<
_visualItems
.
count
;
i
++
)
{
if
(
i
==
index
)
{
var
visualItem
=
_visualItems
.
get
(
i
)
_currentMissionItem
=
_visualItems
.
get
(
i
)
if
(
visualItem
.
sequenceNumber
==
sequenceNumber
)
{
_currentMissionItem
=
visualItem
_currentMissionItem
.
isCurrentItem
=
true
_currentMissionItem
.
isCurrentItem
=
true
}
else
{
}
else
{
_visualItems
.
get
(
i
)
.
isCurrentItem
=
false
visualItem
.
isCurrentItem
=
false
}
}
}
}
}
}
...
@@ -306,8 +307,8 @@ QGCView {
...
@@ -306,8 +307,8 @@ QGCView {
coordinate
.
longitude
=
coordinate
.
longitude
.
toFixed
(
_decimalPlaces
)
coordinate
.
longitude
=
coordinate
.
longitude
.
toFixed
(
_decimalPlaces
)
coordinate
.
altitude
=
coordinate
.
altitude
.
toFixed
(
_decimalPlaces
)
coordinate
.
altitude
=
coordinate
.
altitude
.
toFixed
(
_decimalPlaces
)
if
(
addMissionItemsButton
.
checked
)
{
if
(
addMissionItemsButton
.
checked
)
{
var
index
=
controller
.
insertSimpleMissionItem
(
coordinate
,
controller
.
visualItems
.
count
)
var
sequenceNumber
=
controller
.
insertSimpleMissionItem
(
coordinate
,
controller
.
visualItems
.
count
)
setCurrentItem
(
index
)
setCurrentItem
(
sequenceNumber
)
}
else
{
}
else
{
editorMap
.
mapClicked
(
coordinate
)
editorMap
.
mapClicked
(
coordinate
)
}
}
...
@@ -364,13 +365,7 @@ QGCView {
...
@@ -364,13 +365,7 @@ QGCView {
}
}
}
}
// Add the simple mission items to the map
// Add the complex mission item polygon to the map
MapItemView
{
model
:
controller
.
visualItems
delegate
:
missionItemComponent
}
// Add the complex mission items to the map
MapItemView
{
MapItemView
{
model
:
controller
.
complexVisualItems
model
:
controller
.
complexVisualItems
delegate
:
polygonItemComponent
delegate
:
polygonItemComponent
...
@@ -386,6 +381,16 @@ QGCView {
...
@@ -386,6 +381,16 @@ QGCView {
}
}
}
}
// Add the complex mission item grid to the map
MapItemView
{
model
:
controller
.
complexVisualItems
delegate
:
MapPolyline
{
line.color
:
"
white
"
path
:
object
.
gridPoints
}
}
// Add the complex mission item exit coordinates
// Add the complex mission item exit coordinates
MapItemView
{
MapItemView
{
model
:
controller
.
complexVisualItems
model
:
controller
.
complexVisualItems
...
@@ -404,6 +409,12 @@ QGCView {
...
@@ -404,6 +409,12 @@ QGCView {
}
}
}
}
// Add the simple mission items to the map
MapItemView
{
model
:
controller
.
visualItems
delegate
:
missionItemComponent
}
Component
{
Component
{
id
:
missionItemComponent
id
:
missionItemComponent
...
@@ -417,10 +428,8 @@ QGCView {
...
@@ -417,10 +428,8 @@ QGCView {
onClicked
:
setCurrentItem
(
object
.
sequenceNumber
)
onClicked
:
setCurrentItem
(
object
.
sequenceNumber
)
function
updateItemIndicator
()
function
updateItemIndicator
()
{
{
if
(
object
.
isCurrentItem
&&
itemIndicator
.
visible
&&
object
.
specifiesCoordinate
&&
object
.
isSimpleItem
)
{
if
(
object
.
isCurrentItem
&&
itemIndicator
.
visible
&&
object
.
specifiesCoordinate
&&
object
.
isSimpleItem
)
{
// Setup our drag item
// Setup our drag item
itemDragger
.
visible
=
true
itemDragger
.
visible
=
true
itemDragger
.
missionItem
=
Qt
.
binding
(
function
()
{
return
object
})
itemDragger
.
missionItem
=
Qt
.
binding
(
function
()
{
return
object
})
...
@@ -516,8 +525,8 @@ QGCView {
...
@@ -516,8 +525,8 @@ QGCView {
}
}
onInsert
:
{
onInsert
:
{
controller
.
insertSimpleMissionItem
(
editorMap
.
center
,
i
)
var
sequenceNumber
=
controller
.
insertSimpleMissionItem
(
editorMap
.
center
,
i
)
setCurrentItem
(
i
)
setCurrentItem
(
sequenceNumber
)
}
}
onMoveHomeToMapCenter
:
controller
.
visualItems
.
get
(
0
).
coordinate
=
editorMap
.
center
onMoveHomeToMapCenter
:
controller
.
visualItems
.
get
(
0
).
coordinate
=
editorMap
.
center
...
@@ -567,8 +576,8 @@ QGCView {
...
@@ -567,8 +576,8 @@ QGCView {
coordinate
.
latitude
=
coordinate
.
latitude
.
toFixed
(
_decimalPlaces
)
coordinate
.
latitude
=
coordinate
.
latitude
.
toFixed
(
_decimalPlaces
)
coordinate
.
longitude
=
coordinate
.
longitude
.
toFixed
(
_decimalPlaces
)
coordinate
.
longitude
=
coordinate
.
longitude
.
toFixed
(
_decimalPlaces
)
coordinate
.
altitude
=
coordinate
.
altitude
.
toFixed
(
_decimalPlaces
)
coordinate
.
altitude
=
coordinate
.
altitude
.
toFixed
(
_decimalPlaces
)
var
index
=
controller
.
insertComplexMissionItem
(
coordinate
,
controller
.
visualItems
.
count
)
var
sequenceNumber
=
controller
.
insertComplexMissionItem
(
coordinate
,
controller
.
visualItems
.
count
)
setCurrentItem
(
index
)
setCurrentItem
(
sequenceNumber
)
checked
=
false
checked
=
false
addMissionItemsButton
.
checked
=
false
addMissionItemsButton
.
checked
=
false
}
}
...
@@ -775,7 +784,7 @@ QGCView {
...
@@ -775,7 +784,7 @@ QGCView {
QGCButton
{
QGCButton
{
text
:
"
Send to vehicle
"
text
:
"
Send to vehicle
"
enabled
:
!
controller
.
syncInProgress
enabled
:
_activeVehicle
&&
!
controller
.
syncInProgress
onClicked
:
{
onClicked
:
{
syncButton
.
hideDropDown
()
syncButton
.
hideDropDown
()
...
@@ -785,7 +794,7 @@ QGCView {
...
@@ -785,7 +794,7 @@ QGCView {
QGCButton
{
QGCButton
{
text
:
"
Load from vehicle
"
text
:
"
Load from vehicle
"
enabled
:
!
controller
.
syncInProgress
enabled
:
_activeVehicle
&&
!
controller
.
syncInProgress
onClicked
:
{
onClicked
:
{
syncButton
.
hideDropDown
()
syncButton
.
hideDropDown
()
...
...
src/MissionEditor/SurveyItemEditor.qml
View file @
45dceec3
...
@@ -29,7 +29,7 @@ Rectangle {
...
@@ -29,7 +29,7 @@ Rectangle {
anchors.margins
:
_margin
anchors.margins
:
_margin
anchors.top
:
parent
.
top
anchors.top
:
parent
.
top
anchors.left
:
parent
.
left
anchors.left
:
parent
.
left
width
:
availableWidth
anchors.right
:
parent
.
right
spacing
:
_margin
spacing
:
_margin
Connections
{
Connections
{
...
@@ -47,6 +47,30 @@ Rectangle {
...
@@ -47,6 +47,30 @@ Rectangle {
wrapMode
:
Text
.
WordWrap
wrapMode
:
Text
.
WordWrap
}
}
Repeater
{
model
:
[
missionItem
.
gridAltitude
,
missionItem
.
gridAngle
,
missionItem
.
gridSpacing
]
Item
{
anchors.left
:
parent
.
left
anchors.right
:
parent
.
right
height
:
textField
.
height
QGCLabel
{
anchors.baseline
:
textField
.
baseline
anchors.left
:
parent
.
left
text
:
modelData
.
name
}
FactTextField
{
id
:
textField
anchors.right
:
parent
.
right
width
:
_editFieldWidth
showUnits
:
true
fact
:
modelData
}
}
}
QGCButton
{
QGCButton
{
text
:
_addPointsMode
?
"
Finished
"
:
"
Draw Polygon
"
text
:
_addPointsMode
?
"
Finished
"
:
"
Draw Polygon
"
onClicked
:
{
onClicked
:
{
...
...
src/MissionManager/ComplexMissionItem.cc
View file @
45dceec3
This diff is collapsed.
Click to expand it.
src/MissionManager/ComplexMissionItem.h
View file @
45dceec3
...
@@ -26,6 +26,7 @@
...
@@ -26,6 +26,7 @@
#include "VisualMissionItem.h"
#include "VisualMissionItem.h"
#include "MissionItem.h"
#include "MissionItem.h"
#include "Fact.h"
class
ComplexMissionItem
:
public
VisualMissionItem
class
ComplexMissionItem
:
public
VisualMissionItem
{
{
...
@@ -35,19 +36,30 @@ public:
...
@@ -35,19 +36,30 @@ public:
ComplexMissionItem
(
Vehicle
*
vehicle
,
QObject
*
parent
=
NULL
);
ComplexMissionItem
(
Vehicle
*
vehicle
,
QObject
*
parent
=
NULL
);
ComplexMissionItem
(
const
ComplexMissionItem
&
other
,
QObject
*
parent
=
NULL
);
ComplexMissionItem
(
const
ComplexMissionItem
&
other
,
QObject
*
parent
=
NULL
);
Q_PROPERTY
(
Fact
*
gridAltitude
READ
gridAltitude
CONSTANT
)
Q_PROPERTY
(
Fact
*
gridAngle
READ
gridAngle
CONSTANT
)
Q_PROPERTY
(
Fact
*
gridSpacing
READ
gridSpacing
CONSTANT
)
Q_PROPERTY
(
QVariantList
polygonPath
READ
polygonPath
NOTIFY
polygonPathChanged
)
Q_PROPERTY
(
QVariantList
polygonPath
READ
polygonPath
NOTIFY
polygonPathChanged
)
Q_PROPERTY
(
int
lastSequenceNumber
READ
lastSequenceNumber
NOTIFY
lastSequenceNumberChanged
)
Q_PROPERTY
(
int
lastSequenceNumber
READ
lastSequenceNumber
NOTIFY
lastSequenceNumberChanged
)
Q_PROPERTY
(
QVariantList
gridPoints
READ
gridPoints
NOTIFY
gridPointsChanged
)
Q_INVOKABLE
void
clearPolygon
(
void
);
Q_INVOKABLE
void
clearPolygon
(
void
);
Q_INVOKABLE
void
addPolygonCoordinate
(
const
QGeoCoordinate
coordinate
);
Q_INVOKABLE
void
addPolygonCoordinate
(
const
QGeoCoordinate
coordinate
);
QVariantList
polygonPath
(
void
)
{
return
_polygonPath
;
}
QVariantList
polygonPath
(
void
)
{
return
_polygonPath
;
}
QVariantList
gridPoints
(
void
)
{
return
_gridPoints
;
}
QList
<
MissionItem
*>&
missionItems
(
void
)
{
return
_missionItems
;
}
Fact
*
gridAltitude
(
void
)
{
return
&
_gridAltitudeFact
;
}
Fact
*
gridAngle
(
void
)
{
return
&
_gridAngleFact
;
}
Fact
*
gridSpacing
(
void
)
{
return
&
_gridSpacingFact
;
}
/// @return The last sequence number used by this item. Takes into account child items of the complex item
/// @return The last sequence number used by this item. Takes into account child items of the complex item
int
lastSequenceNumber
(
void
)
const
;
int
lastSequenceNumber
(
void
)
const
;
/// Returns the mission items associated with the complex item. Caller is responsible for freeing. Calling
/// delete on returned QmlObjectListModel will free all memory including internal items.
QmlObjectListModel
*
getMissionItems
(
void
)
const
;
/// Load the complex mission item from Json
/// Load the complex mission item from Json
/// @param complexObject Complex mission item json object
/// @param complexObject Complex mission item json object
/// @param[out] errorString Error if load fails
/// @param[out] errorString Error if load fails
...
@@ -78,22 +90,47 @@ public:
...
@@ -78,22 +90,47 @@ public:
signals:
signals:
void
polygonPathChanged
(
void
);
void
polygonPathChanged
(
void
);
void
lastSequenceNumberChanged
(
int
lastSequenceNumber
);
void
lastSequenceNumberChanged
(
int
lastSequenceNumber
);
void
altitudeChanged
(
double
altitude
);
void
gridAngleChanged
(
double
gridAngle
);
void
gridPointsChanged
(
void
);
private:
private:
typedef
struct
Point_s
{
double
x
;
double
y
;
Point_s
(
double
x
,
double
y
)
{
this
->
x
=
x
;
this
->
y
=
y
;
}
}
Point_t
;
void
_clear
(
void
);
void
_clear
(
void
);
void
_setExitCoordinate
(
const
QGeoCoordinate
&
coordinate
);
void
_setExitCoordinate
(
const
QGeoCoordinate
&
coordinate
);
void
_clearGrid
(
void
);
void
_generateGrid
(
void
);
void
_gridGenerator
(
const
QList
<
Point_t
>&
polygonPoints
,
QList
<
Point_t
>&
gridPoints
);
int
_sequenceNumber
;
int
_sequenceNumber
;
bool
_dirty
;
bool
_dirty
;
QVariantList
_polygonPath
;
QVariantList
_polygonPath
;
Q
List
<
MissionItem
*>
_missionItem
s
;
Q
VariantList
_gridPoint
s
;
QGeoCoordinate
_coordinate
;
QGeoCoordinate
_coordinate
;
QGeoCoordinate
_exitCoordinate
;
QGeoCoordinate
_exitCoordinate
;
double
_altitude
;
double
_gridAngle
;
Fact
_gridAltitudeFact
;
Fact
_gridAngleFact
;
Fact
_gridSpacingFact
;
static
const
char
*
_jsonVersionKey
;
static
const
char
*
_jsonVersionKey
;
static
const
char
*
_jsonTypeKey
;
static
const
char
*
_jsonTypeKey
;
static
const
char
*
_jsonPolygonKey
;
static
const
char
*
_jsonPolygonKey
;
static
const
char
*
_jsonIdKey
;
static
const
char
*
_jsonIdKey
;
static
const
char
*
_jsonGridAltitudeKey
;
static
const
char
*
_jsonGridAngleKey
;
static
const
char
*
_jsonGridSpacingKey
;
static
const
char
*
_complexType
;
static
const
char
*
_complexType
;
};
};
...
...
src/MissionManager/MissionController.cc
View file @
45dceec3
...
@@ -132,28 +132,28 @@ void MissionController::sendMissionItems(void)
...
@@ -132,28 +132,28 @@ void MissionController::sendMissionItems(void)
{
{
if
(
_activeVehicle
)
{
if
(
_activeVehicle
)
{
// Convert to MissionItems so we can send to vehicle
// Convert to MissionItems so we can send to vehicle
QList
<
MissionItem
*>
missionItems
;
QList
<
MissionItem
*>
missionItems
;
int
sequenceNumber
=
0
;
for
(
int
i
=
0
;
i
<
_visualItems
->
count
();
i
++
)
{
for
(
int
i
=
0
;
i
<
_visualItems
->
count
();
i
++
)
{
VisualMissionItem
*
visualItem
=
qobject_cast
<
VisualMissionItem
*>
(
_visualItems
->
get
(
i
));
VisualMissionItem
*
visualItem
=
qobject_cast
<
VisualMissionItem
*>
(
_visualItems
->
get
(
i
));
if
(
visualItem
->
isSimpleItem
())
{
if
(
visualItem
->
isSimpleItem
())
{
MissionItem
&
missionItem
=
qobject_cast
<
SimpleMissionItem
*>
(
visualItem
)
->
missionItem
();
missionItems
.
append
(
new
MissionItem
(
qobject_cast
<
SimpleMissionItem
*>
(
visualItem
)
->
missionItem
()));
missionItem
.
setSequenceNumber
(
sequenceNumber
++
);
missionItems
.
append
(
&
missionItem
);
}
else
{
}
else
{
ComplexMissionItem
*
complexItem
=
qobject_cast
<
ComplexMissionItem
*>
(
visualItem
);
ComplexMissionItem
*
complexItem
=
qobject_cast
<
ComplexMissionItem
*>
(
visualItem
);
for
(
int
j
=
0
;
j
<
complexItem
->
missionItems
().
count
();
j
++
)
{
QmlObjectListModel
*
complexMissionItems
=
complexItem
->
getMissionItems
();
MissionItem
*
missionItem
=
complexItem
->
missionItems
()[
i
];
for
(
int
j
=
0
;
j
<
complexMissionItems
->
count
();
j
++
)
{
missionItem
->
setSequenceNumber
(
sequenceNumber
++
);
missionItems
.
append
(
new
MissionItem
(
*
qobject_cast
<
MissionItem
*>
(
complexMissionItems
->
get
(
j
))));
missionItems
.
append
(
missionItem
);
}
}
delete
complexMissionItems
;
}
}
}
}
_activeVehicle
->
missionManager
()
->
writeMissionItems
(
missionItems
);
_activeVehicle
->
missionManager
()
->
writeMissionItems
(
missionItems
);
_visualItems
->
setDirty
(
false
);
_visualItems
->
setDirty
(
false
);
for
(
int
i
=
0
;
i
<
missionItems
.
count
();
i
++
)
{
delete
missionItems
[
i
];
}
}
}
}
}
...
@@ -175,8 +175,9 @@ int MissionController::_nextSequenceNumber(void)
...
@@ -175,8 +175,9 @@ int MissionController::_nextSequenceNumber(void)
int
MissionController
::
insertSimpleMissionItem
(
QGeoCoordinate
coordinate
,
int
i
)
int
MissionController
::
insertSimpleMissionItem
(
QGeoCoordinate
coordinate
,
int
i
)
{
{
int
sequenceNumber
=
_nextSequenceNumber
();
SimpleMissionItem
*
newItem
=
new
SimpleMissionItem
(
_activeVehicle
,
this
);
SimpleMissionItem
*
newItem
=
new
SimpleMissionItem
(
_activeVehicle
,
this
);
newItem
->
setSequenceNumber
(
_nextSequenceNumber
()
);
newItem
->
setSequenceNumber
(
sequenceNumber
);
newItem
->
setCoordinate
(
coordinate
);
newItem
->
setCoordinate
(
coordinate
);
newItem
->
setCommand
(
MavlinkQmlSingleton
::
MAV_CMD_NAV_WAYPOINT
);
newItem
->
setCommand
(
MavlinkQmlSingleton
::
MAV_CMD_NAV_WAYPOINT
);
_initVisualItem
(
newItem
);
_initVisualItem
(
newItem
);
...
@@ -198,13 +199,14 @@ int MissionController::insertSimpleMissionItem(QGeoCoordinate coordinate, int i)
...
@@ -198,13 +199,14 @@ int MissionController::insertSimpleMissionItem(QGeoCoordinate coordinate, int i)
_recalcAll
();
_recalcAll
();
return
_visualItems
->
count
()
-
1
;
return
sequenceNumber
;
}
}
int
MissionController
::
insertComplexMissionItem
(
QGeoCoordinate
coordinate
,
int
i
)
int
MissionController
::
insertComplexMissionItem
(
QGeoCoordinate
coordinate
,
int
i
)
{
{
int
sequenceNumber
=
_nextSequenceNumber
();
ComplexMissionItem
*
newItem
=
new
ComplexMissionItem
(
_activeVehicle
,
this
);
ComplexMissionItem
*
newItem
=
new
ComplexMissionItem
(
_activeVehicle
,
this
);
newItem
->
setSequenceNumber
(
_nextSequenceNumber
()
);
newItem
->
setSequenceNumber
(
sequenceNumber
);
newItem
->
setCoordinate
(
coordinate
);
newItem
->
setCoordinate
(
coordinate
);
_initVisualItem
(
newItem
);
_initVisualItem
(
newItem
);
...
@@ -213,7 +215,7 @@ int MissionController::insertComplexMissionItem(QGeoCoordinate coordinate, int i
...
@@ -213,7 +215,7 @@ int MissionController::insertComplexMissionItem(QGeoCoordinate coordinate, int i
_recalcAll
();
_recalcAll
();
return
_visualItems
->
count
()
-
1
;
return
sequenceNumber
;
}
}
void
MissionController
::
removeMissionItem
(
int
index
)
void
MissionController
::
removeMissionItem
(
int
index
)
...
@@ -771,7 +773,7 @@ void MissionController::_recalcChildItems(void)
...
@@ -771,7 +773,7 @@ void MissionController::_recalcChildItems(void)
if
(
item
->
specifiesCoordinate
())
{
if
(
item
->
specifiesCoordinate
())
{
item
->
childItems
()
->
clear
();
item
->
childItems
()
->
clear
();
currentParentItem
=
item
;
currentParentItem
=
item
;
}
else
{
}
else
if
(
item
->
isSimpleItem
())
{
currentParentItem
->
childItems
()
->
append
(
item
);
currentParentItem
->
childItems
()
->
append
(
item
);
}
}
}
}
...
@@ -860,13 +862,16 @@ void MissionController::_initVisualItem(VisualMissionItem* visualItem)
...
@@ -860,13 +862,16 @@ void MissionController::_initVisualItem(VisualMissionItem* visualItem)
if
(
visualItem
->
isSimpleItem
())
{
if
(
visualItem
->
isSimpleItem
())
{
// We need to track commandChanged on simple item since recalc has special handling for takeoff command
// We need to track commandChanged on simple item since recalc has special handling for takeoff command
SimpleMissionItem
*
simpleItem
=
qobject_cast
<
SimpleMissionItem
*>
(
visualItem
);
SimpleMissionItem
*
simpleItem
=
qobject_cast
<
SimpleMissionItem
*>
(
visualItem
);
if
(
simpleItem
)
{
if
(
simpleItem
)
{
connect
(
&
simpleItem
->
missionItem
().
_commandFact
,
&
Fact
::
valueChanged
,
this
,
&
MissionController
::
_itemCommandChanged
);
connect
(
&
simpleItem
->
missionItem
().
_commandFact
,
&
Fact
::
valueChanged
,
this
,
&
MissionController
::
_itemCommandChanged
);
}
else
{
}
else
{
qWarning
()
<<
"isSimpleItem == true, yet not SimpleMissionItem"
;
qWarning
()
<<
"isSimpleItem == true, yet not SimpleMissionItem"
;
}
}
}
else
{
// We need to track changes of lastSequenceNumber so we can recalc sequence numbers for subsequence items
ComplexMissionItem
*
complexItem
=
qobject_cast
<
ComplexMissionItem
*>
(
visualItem
);
connect
(
complexItem
,
&
ComplexMissionItem
::
lastSequenceNumberChanged
,
this
,
&
MissionController
::
_recalcSequence
);
}
}
}
}
...
...
src/MissionManager/MissionController.h
View file @
45dceec3
...
@@ -59,10 +59,14 @@ public:
...
@@ -59,10 +59,14 @@ public:
Q_INVOKABLE
void
removeAllMissionItems
(
void
);
Q_INVOKABLE
void
removeAllMissionItems
(
void
);
Q_INVOKABLE
QStringList
getMobileMissionFiles
(
void
);
Q_INVOKABLE
QStringList
getMobileMissionFiles
(
void
);
/// @param i: index to insert at
/// Add a new simple mission item to the list
/// @param i: index to insert at
/// @return Sequence number for new item
Q_INVOKABLE
int
insertSimpleMissionItem
(
QGeoCoordinate
coordinate
,
int
i
);
Q_INVOKABLE
int
insertSimpleMissionItem
(
QGeoCoordinate
coordinate
,
int
i
);
/// @param i: index to insert at
/// Add a new complex mission item to the list
/// @param i: index to insert at
/// @return Sequence number for new item
Q_INVOKABLE
int
insertComplexMissionItem
(
QGeoCoordinate
coordinate
,
int
i
);
Q_INVOKABLE
int
insertComplexMissionItem
(
QGeoCoordinate
coordinate
,
int
i
);
// Property accessors
// Property accessors
...
...
src/MissionManager/SimpleMissionItem.h
View file @
45dceec3
...
@@ -117,16 +117,13 @@ public slots:
...
@@ -117,16 +117,13 @@ public slots:
signals:
signals:
void
commandChanged
(
int
command
);
void
commandChanged
(
int
command
);
void
coordinateChanged
(
const
QGeoCoordinate
&
coordinate
);
void
exitCoordinateChanged
(
const
QGeoCoordinate
&
exitCoordinate
);
//void dirtyChanged (bool dirty);
void
frameChanged
(
int
frame
);
void
frameChanged
(
int
frame
);
void
friendlyEditAllowedChanged
(
bool
friendlyEditAllowed
);
void
friendlyEditAllowedChanged
(
bool
friendlyEditAllowed
);
void
headingDegreesChanged
(
double
heading
);
void
headingDegreesChanged
(
double
heading
);
void
rawEditChanged
(
bool
rawEdit
);
void
rawEditChanged
(
bool
rawEdit
);
void
uiModelChanged
(
void
);
void
uiModelChanged
(
void
);
void
showHomePositionChanged
(
bool
showHomePosition
);
void
showHomePositionChanged
(
bool
showHomePosition
);
private
slots
:
private
slots
:
void
_setDirtyFromSignal
(
void
);
void
_setDirtyFromSignal
(
void
);
void
_sendCommandChanged
(
void
);
void
_sendCommandChanged
(
void
);
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment