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
94abe381
Commit
94abe381
authored
Jun 17, 2016
by
Nate Weibley
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Defer loading and binding of mission editing QML components, fix editor view syncs
parent
cfc67361
Changes
3
Hide whitespace changes
Inline
Side-by-side
Showing
3 changed files
with
102 additions
and
115 deletions
+102
-115
MissionEditor.qml
src/MissionEditor/MissionEditor.qml
+4
-11
MissionItemStatus.qml
src/MissionEditor/MissionItemStatus.qml
+1
-10
SimpleItemEditor.qml
src/MissionEditor/SimpleItemEditor.qml
+97
-94
No files found.
src/MissionEditor/MissionEditor.qml
View file @
94abe381
...
@@ -46,8 +46,9 @@ QGCView {
...
@@ -46,8 +46,9 @@ QGCView {
readonly
property
int
_addMissionItemsButtonAutoOffTimeout
:
10000
readonly
property
int
_addMissionItemsButtonAutoOffTimeout
:
10000
readonly
property
var
_defaultVehicleCoordinate
:
QtPositioning
.
coordinate
(
37.803784
,
-
122.462276
)
readonly
property
var
_defaultVehicleCoordinate
:
QtPositioning
.
coordinate
(
37.803784
,
-
122.462276
)
property
var
_visualItems
:
controller
.
visualItems
property
var
_visualItems
:
controller
.
visualItems
property
var
_currentMissionItem
property
var
_currentMissionItem
property
int
_currentMissionIndex
:
0
property
bool
_firstVehiclePosition
:
true
property
bool
_firstVehiclePosition
:
true
property
var
activeVehiclePosition
:
_activeVehicle
?
_activeVehicle
.
coordinate
:
QtPositioning
.
coordinate
()
property
var
activeVehiclePosition
:
_activeVehicle
?
_activeVehicle
.
coordinate
:
QtPositioning
.
coordinate
()
property
bool
_lightWidgetBorders
:
editorMap
.
isSatelliteMap
property
bool
_lightWidgetBorders
:
editorMap
.
isSatelliteMap
...
@@ -168,6 +169,7 @@ QGCView {
...
@@ -168,6 +169,7 @@ QGCView {
if
(
visualItem
.
sequenceNumber
==
sequenceNumber
)
{
if
(
visualItem
.
sequenceNumber
==
sequenceNumber
)
{
_currentMissionItem
=
visualItem
_currentMissionItem
=
visualItem
_currentMissionItem
.
isCurrentItem
=
true
_currentMissionItem
.
isCurrentItem
=
true
_currentMissionIndex
=
i
}
else
{
}
else
{
visualItem
.
isCurrentItem
=
false
visualItem
.
isCurrentItem
=
false
}
}
...
@@ -485,6 +487,7 @@ QGCView {
...
@@ -485,6 +487,7 @@ QGCView {
model
:
controller
.
visualItems
model
:
controller
.
visualItems
cacheBuffer
:
height
*
2
cacheBuffer
:
height
*
2
clip
:
true
clip
:
true
currentIndex
:
_currentMissionIndex
highlightMoveDuration
:
250
highlightMoveDuration
:
250
delegate
:
MissionItemEditor
{
delegate
:
MissionItemEditor
{
...
@@ -506,16 +509,6 @@ QGCView {
...
@@ -506,16 +509,6 @@ QGCView {
}
}
onMoveHomeToMapCenter
:
controller
.
visualItems
.
get
(
0
).
coordinate
=
editorMap
.
center
onMoveHomeToMapCenter
:
controller
.
visualItems
.
get
(
0
).
coordinate
=
editorMap
.
center
Connections
{
target
:
object
onIsCurrentItemChanged
:
{
if
(
object
.
isCurrentItem
)
{
editorListView
.
currentIndex
=
index
}
}
}
}
}
}
// ListView
}
// ListView
}
// Item - Mission Item editor
}
// Item - Mission Item editor
...
...
src/MissionEditor/MissionItemStatus.qml
View file @
94abe381
...
@@ -87,6 +87,7 @@ Rectangle {
...
@@ -87,6 +87,7 @@ Rectangle {
visible
:
_expanded
visible
:
_expanded
width
:
parent
.
width
-
valueGrid
.
width
-
(
_margins
*
2
)
width
:
parent
.
width
-
valueGrid
.
width
-
(
_margins
*
2
)
clip
:
true
clip
:
true
currentIndex
:
_currentMissionIndex
delegate
:
Item
{
delegate
:
Item
{
height
:
statusListView
.
height
height
:
statusListView
.
height
...
@@ -107,16 +108,6 @@ Rectangle {
...
@@ -107,16 +108,6 @@ Rectangle {
label
:
object
.
abbreviation
label
:
object
.
abbreviation
visible
:
object
.
relativeAltitude
?
true
:
(
object
.
homePosition
||
graphAbsolute
)
visible
:
object
.
relativeAltitude
?
true
:
(
object
.
homePosition
||
graphAbsolute
)
}
}
Connections
{
target
:
object
onIsCurrentItemChanged
:
{
if
(
object
.
isCurrentItem
)
{
statusListView
.
currentIndex
=
index
}
}
}
}
}
}
}
}
}
...
...
src/MissionEditor/SimpleItemEditor.qml
View file @
94abe381
import
QtQuick
2.
2
import
QtQuick
2.
5
import
QtQuick
.
Controls
1.2
import
QtQuick
.
Controls
1.2
import
QtQuick
.
Controls
.
Styles
1.2
import
QtQuick
.
Controls
.
Styles
1.2
import
QtQuick
.
Dialogs
1.2
import
QtQuick
.
Dialogs
1.2
...
@@ -13,112 +13,115 @@ import QGroundControl.Palette 1.0
...
@@ -13,112 +13,115 @@ import QGroundControl.Palette 1.0
Rectangle
{
Rectangle
{
id
:
valuesRect
id
:
valuesRect
width
:
availableWidth
width
:
availableWidth
height
:
visible
?
valuesItem
.
height
:
0
height
:
deferedload
.
status
==
Loader
.
Ready
?
(
visible
?
deferedload
.
item
.
height
:
0
)
:
0
color
:
qgcPal
.
windowShadeDark
color
:
qgcPal
.
windowShadeDark
visible
:
missionItem
.
isCurrentItem
visible
:
missionItem
.
isCurrentItem
radius
:
_radius
radius
:
_radius
// The following properties must be available up the hierachy chain
Loader
{
//property real availableWidth ///< Width for control
id
:
deferedload
//property var missionItem ///< Mission Item for editor
active
:
valuesRect
.
visible
asynchronous
:
true
Item
{
anchors.margins
:
_margin
id
:
valuesItem
anchors.left
:
valuesRect
.
left
anchors.margins
:
_margin
anchors.right
:
valuesRect
.
right
anchors.left
:
parent
.
left
anchors.top
:
valuesRect
.
top
anchors.right
:
parent
.
right
sourceComponent
:
Component
{
anchors.top
:
parent
.
top
Item
{
height
:
valuesColumn
.
height
+
(
_margin
*
2
)
id
:
valuesItem
height
:
valuesColumn
.
height
+
(
_margin
*
2
)
Column
{
id
:
valuesColumn
Column
{
anchors.left
:
parent
.
left
id
:
valuesColumn
anchors.right
:
parent
.
right
anchors.left
:
parent
.
left
anchors.top
:
parent
.
top
anchors.right
:
parent
.
right
spacing
:
_margin
anchors.top
:
parent
.
top
spacing
:
_margin
QGCLabel
{
width
:
parent
.
width
wrapMode
:
Text
.
WordWrap
font.pointSize
:
ScreenTools
.
smallFontPointSize
text
:
missionItem
.
sequenceNumber
==
0
?
qsTr
(
"
Planned home position. Actual home position set by Vehicle.
"
)
:
(
missionItem
.
rawEdit
?
qsTr
(
"
Provides advanced access to all commands/parameters. Be very careful!
"
)
:
missionItem
.
commandDescription
)
}
Repeater
{
model
:
missionItem
.
comboboxFacts
Item
{
width
:
valuesColumn
.
width
height
:
comboBoxFact
.
height
QGCLabel
{
QGCLabel
{
id
:
comboBoxLabel
width
:
parent
.
width
anchors.baseline
:
comboBoxFact
.
baseline
wrapMode
:
Text
.
WordWrap
text
:
object
.
name
font.pointSize
:
ScreenTools
.
smallFontPointSize
visible
:
object
.
name
!=
""
text
:
missionItem
.
sequenceNumber
==
0
?
qsTr
(
"
Planned home position. Actual home position set by Vehicle.
"
)
:
(
missionItem
.
rawEdit
?
qsTr
(
"
Provides advanced access to all commands/parameters. Be very careful!
"
)
:
missionItem
.
commandDescription
)
}
}
FactComboBox
{
Repeater
{
id
:
comboBoxFact
model
:
missionItem
.
comboboxFacts
anchors.right
:
parent
.
right
width
:
comboBoxLabel
.
visible
?
_editFieldWidth
:
parent
.
width
Item
{
indexModel
:
false
width
:
valuesColumn
.
width
model
:
object
.
enumStrings
height
:
comboBoxFact
.
height
fact
:
object
QGCLabel
{
id
:
comboBoxLabel
anchors.baseline
:
comboBoxFact
.
baseline
text
:
object
.
name
visible
:
object
.
name
!=
""
}
FactComboBox
{
id
:
comboBoxFact
anchors.right
:
parent
.
right
width
:
comboBoxLabel
.
visible
?
_editFieldWidth
:
parent
.
width
indexModel
:
false
model
:
object
.
enumStrings
fact
:
object
}
}
}
}
}
}
Repeater
{
Repeater
{
model
:
missionItem
.
textFieldFacts
model
:
missionItem
.
textFieldFacts
Item
{
Item
{
width
:
valuesColumn
.
width
width
:
valuesColumn
.
width
height
:
textField
.
height
height
:
textField
.
height
QGCLabel
{
QGCLabel
{
id
:
textFieldLabel
id
:
textFieldLabel
anchors.baseline
:
textField
.
baseline
anchors.baseline
:
textField
.
baseline
text
:
object
.
name
text
:
object
.
name
}
FactTextField
{
id
:
textField
anchors.right
:
parent
.
right
width
:
_editFieldWidth
showUnits
:
true
fact
:
object
visible
:
!
_root
.
readOnly
}
FactLabel
{
anchors.baseline
:
textFieldLabel
.
baseline
anchors.right
:
parent
.
right
fact
:
object
visible
:
_root
.
readOnly
}
}
}
}
FactTextField
{
Repeater
{
id
:
textField
model
:
missionItem
.
checkboxFacts
anchors.right
:
parent
.
right
width
:
_editFieldWidth
FactCheckBox
{
showUnits
:
tru
e
text
:
object
.
nam
e
fact
:
object
fact
:
object
visible
:
!
_root
.
readOnly
}
}
}
FactLabel
{
QGCButton
{
anchors.baseline
:
textFieldLabel
.
baseline
text
:
qsTr
(
"
Move Home to map center
"
)
anchors.right
:
parent
.
right
visible
:
missionItem
.
homePosition
fact
:
object
onClicked
:
editorRoot
.
moveHomeToMapCenter
()
visible
:
_root
.
readOnly
anchors.horizontalCenter
:
parent
.
horizontalCenter
}
}
}
}
// Column
}
}
// Item
}
// Component
Repeater
{
}
// Loader
model
:
missionItem
.
checkboxFacts
FactCheckBox
{
text
:
object
.
name
fact
:
object
}
}
QGCButton
{
text
:
qsTr
(
"
Move Home to map center
"
)
visible
:
missionItem
.
homePosition
onClicked
:
editorRoot
.
moveHomeToMapCenter
()
anchors.horizontalCenter
:
parent
.
horizontalCenter
}
}
// Column
}
// Item
}
// Rectangle
}
// Rectangle
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