Browse Source

Merge pull request #3595 from NaterGator/missionedit

Defer loading and binding of mission editing QML components
QGC4.4
Don Gagne 9 years ago committed by GitHub
parent
commit
4609fbe576
  1. 13
      src/MissionEditor/MissionEditor.qml
  2. 11
      src/MissionEditor/MissionItemStatus.qml
  3. 23
      src/MissionEditor/SimpleItemEditor.qml

13
src/MissionEditor/MissionEditor.qml

@ -48,6 +48,7 @@ QGCView { @@ -48,6 +48,7 @@ QGCView {
property var _visualItems: controller.visualItems
property var _currentMissionItem
property int _currentMissionIndex: 0
property bool _firstVehiclePosition: true
property var activeVehiclePosition: _activeVehicle ? _activeVehicle.coordinate : QtPositioning.coordinate()
property bool _lightWidgetBorders: editorMap.isSatelliteMap
@ -168,6 +169,7 @@ QGCView { @@ -168,6 +169,7 @@ QGCView {
if (visualItem.sequenceNumber == sequenceNumber) {
_currentMissionItem = visualItem
_currentMissionItem.isCurrentItem = true
_currentMissionIndex = i
} else {
visualItem.isCurrentItem = false
}
@ -485,6 +487,7 @@ QGCView { @@ -485,6 +487,7 @@ QGCView {
model: controller.visualItems
cacheBuffer: height * 2
clip: true
currentIndex: _currentMissionIndex
highlightMoveDuration: 250
delegate: MissionItemEditor {
@ -506,16 +509,6 @@ QGCView { @@ -506,16 +509,6 @@ QGCView {
}
onMoveHomeToMapCenter: controller.visualItems.get(0).coordinate = editorMap.center
Connections {
target: object
onIsCurrentItemChanged: {
if (object.isCurrentItem) {
editorListView.currentIndex = index
}
}
}
}
} // ListView
} // Item - Mission Item editor

11
src/MissionEditor/MissionItemStatus.qml

@ -87,6 +87,7 @@ Rectangle { @@ -87,6 +87,7 @@ Rectangle {
visible: _expanded
width: parent.width - valueGrid.width - (_margins * 2)
clip: true
currentIndex: _currentMissionIndex
delegate: Item {
height: statusListView.height
@ -107,16 +108,6 @@ Rectangle { @@ -107,16 +108,6 @@ Rectangle {
label: object.abbreviation
visible: object.relativeAltitude ? true : (object.homePosition || graphAbsolute)
}
Connections {
target: object
onIsCurrentItemChanged: {
if (object.isCurrentItem) {
statusListView.currentIndex = index
}
}
}
}
}
}

23
src/MissionEditor/SimpleItemEditor.qml

@ -1,4 +1,4 @@ @@ -1,4 +1,4 @@
import QtQuick 2.2
import QtQuick 2.5
import QtQuick.Controls 1.2
import QtQuick.Controls.Styles 1.2
import QtQuick.Dialogs 1.2
@ -13,21 +13,22 @@ import QGroundControl.Palette 1.0 @@ -13,21 +13,22 @@ import QGroundControl.Palette 1.0
Rectangle {
id: valuesRect
width: availableWidth
height: visible ? valuesItem.height : 0
height: deferedload.status == Loader.Ready ? (visible ? deferedload.item.height : 0) : 0
color: qgcPal.windowShadeDark
visible: missionItem.isCurrentItem
radius: _radius
// The following properties must be available up the hierachy chain
//property real availableWidth ///< Width for control
//property var missionItem ///< Mission Item for editor
Loader {
id: deferedload
active: valuesRect.visible
asynchronous: true
anchors.margins: _margin
anchors.left: valuesRect.left
anchors.right: valuesRect.right
anchors.top: valuesRect.top
sourceComponent: Component {
Item {
id: valuesItem
anchors.margins: _margin
anchors.left: parent.left
anchors.right: parent.right
anchors.top: parent.top
height: valuesColumn.height + (_margin * 2)
Column {
@ -121,4 +122,6 @@ Rectangle { @@ -121,4 +122,6 @@ Rectangle {
}
} // Column
} // Item
} // Component
} // Loader
} // Rectangle

Loading…
Cancel
Save