Unverified Commit 6762622d authored by Don Gagne's avatar Don Gagne Committed by GitHub

Merge pull request #8552 from DonLakeFlyer/PlanViewTweals

Plan: Visual tweaks for mission items
parents 860915f7 edd8f9d0
...@@ -16,7 +16,7 @@ import QGroundControl.Palette 1.0 ...@@ -16,7 +16,7 @@ import QGroundControl.Palette 1.0
/// Mission item edit control /// Mission item edit control
Rectangle { Rectangle {
id: _root id: _root
height: editorLoader.visible ? (editorLoader.y + editorLoader.height + (_margin * 2)) : (commandPicker.y + commandPicker.height + _margin / 2) height: editorLoader.visible ? (editorLoader.y + editorLoader.height + _innerMargin) : (topRowLayout.y + topRowLayout.height + _margin)
color: _currentItem ? qgcPal.missionItemEditor : qgcPal.windowShade color: _currentItem ? qgcPal.missionItemEditor : qgcPal.windowShade
radius: _radius radius: _radius
opacity: _currentItem ? 1.0 : 0.7 opacity: _currentItem ? 1.0 : 0.7
...@@ -42,8 +42,9 @@ Rectangle { ...@@ -42,8 +42,9 @@ Rectangle {
property bool _readyForSave: missionItem.readyForSaveState === VisualMissionItem.ReadyForSave property bool _readyForSave: missionItem.readyForSaveState === VisualMissionItem.ReadyForSave
property var _activeVehicle: QGroundControl.multiVehicleManager.activeVehicle property var _activeVehicle: QGroundControl.multiVehicleManager.activeVehicle
readonly property real _editFieldWidth: Math.min(width - _margin * 2, ScreenTools.defaultFontPixelWidth * 12) readonly property real _editFieldWidth: Math.min(width - _innerMargin * 2, ScreenTools.defaultFontPixelWidth * 12)
readonly property real _margin: ScreenTools.defaultFontPixelWidth / 2 readonly property real _margin: ScreenTools.defaultFontPixelWidth / 2
readonly property real _innerMargin: 2
readonly property real _radius: ScreenTools.defaultFontPixelWidth / 2 readonly property real _radius: ScreenTools.defaultFontPixelWidth / 2
readonly property real _hamburgerSize: commandPicker.height * 0.75 readonly property real _hamburgerSize: commandPicker.height * 0.75
readonly property real _trashSize: commandPicker.height * 0.75 readonly property real _trashSize: commandPicker.height * 0.75
...@@ -76,11 +77,17 @@ Rectangle { ...@@ -76,11 +77,17 @@ Rectangle {
} }
} }
Row {
id: topRowLayout
anchors.margins: _margin
anchors.left: parent.left
anchors.right: parent.right
anchors.top: parent.top
spacing: _margin
Rectangle { Rectangle {
id: notReadyForSaveIndicator id: notReadyForSaveIndicator
anchors.verticalCenter: notReadyForSaveLabel.visible ? notReadyForSaveLabel.verticalCenter : commandPicker.verticalCenter anchors.verticalCenter: parent.verticalCenter
anchors.leftMargin: _margin
anchors.left: parent.left
width: readyForSaveLabel.contentHeight width: readyForSaveLabel.contentHeight
height: width height: width
border.width: 1 border.width: 1
...@@ -99,37 +106,97 @@ Rectangle { ...@@ -99,37 +106,97 @@ Rectangle {
} }
} }
QGCColoredImage {
id: deleteButton
anchors.verticalCenter: parent.verticalCenter
height: _hamburgerSize
width: height
sourceSize.height: height
fillMode: Image.PreserveAspectFit
mipmap: true
smooth: true
color: qgcPal.text
visible: _currentItem && missionItem.sequenceNumber !== 0
source: "/res/TrashDelete.svg"
QGCMouseArea {
fillItem: parent
onClicked: remove()
}
}
Item {
id: commandPicker
anchors.verticalCenter: parent.verticalCenter
height: ScreenTools.implicitComboBoxHeight
width: innerLayout.width
visible: !commandLabel.visible
RowLayout {
id: innerLayout
anchors.verticalCenter: parent.verticalCenter
spacing: _padding
property real _padding: ScreenTools.comboBoxPadding
QGCLabel { text: missionItem.commandName }
QGCColoredImage {
height: ScreenTools.defaultFontPixelWidth
width: height
fillMode: Image.PreserveAspectFit
smooth: true
antialiasing: true
color: qgcPal.text
source: "/qmlimages/arrow-down.png"
}
}
QGCMouseArea {
fillItem: parent
onClicked: mainWindow.showComponentDialog(commandDialog, qsTr("Select Mission Command"), mainWindow.showDialogDefaultWidth, StandardButton.Cancel)
}
Component {
id: commandDialog
MissionCommandDialog {
missionItem: _root.missionItem
map: _root.map
// FIXME: Disabling fly through commands doesn't work since you may need to change from an RTL to something else
flyThroughCommandsAllowed: true //_missionController.flyThroughCommandsAllowed
}
}
}
QGCLabel { QGCLabel {
id: notReadyForSaveLabel id: commandLabel
anchors.margins: _margin anchors.verticalCenter: parent.verticalCenter
anchors.left: notReadyForSaveIndicator.right width: commandPicker.width
anchors.right: parent.right height: commandPicker.height
anchors.top: commandPicker.bottom visible: !missionItem.isCurrentItem || !missionItem.isSimpleItem || _waypointsOnlyMode || missionItem.isTakeoffItem
visible: _currentItem && !_readyForSave verticalAlignment: Text.AlignVCenter
text: missionItem.readyForSaveState === VisualMissionItem.NotReadyForSaveTerrain ? text: missionItem.commandName
qsTr("Incomplete: Waiting on terrain data.") : color: _outerTextColor
qsTr("Incomplete: Item not fully specified.") }
wrapMode: Text.WordWrap
horizontalAlignment: Text.AlignHCenter
color: qgcPal.warningText
} }
QGCColoredImage { QGCColoredImage {
id: hamburger id: hamburger
anchors.rightMargin: ScreenTools.defaultFontPixelWidth anchors.margins: _margin
anchors.right: parent.right anchors.right: parent.right
anchors.verticalCenter: commandPicker.verticalCenter anchors.verticalCenter: parent.verticalCenter
width: _hamburgerSize width: _hamburgerSize
height: _hamburgerSize height: _hamburgerSize
sourceSize.height: _hamburgerSize sourceSize.height: _hamburgerSize
source: "qrc:/qmlimages/Hamburger.svg" source: "qrc:/qmlimages/Hamburger.svg"
visible: missionItem.isCurrentItem && missionItem.sequenceNumber !== 0 visible: missionItem.isCurrentItem && missionItem.sequenceNumber !== 0
color: qgcPal.text color: qgcPal.text
}
QGCMouseArea { QGCMouseArea {
fillItem: hamburger fillItem: hamburger
visible: hamburger.visible
onClicked: { onClicked: {
currentItemScope.focus = true currentItemScope.focus = true
hamburgerMenu.popup() hamburgerMenu.popup()
...@@ -187,100 +254,36 @@ Rectangle { ...@@ -187,100 +254,36 @@ Rectangle {
} }
} }
} }
QGCColoredImage {
id: deleteButton
anchors.margins: _margin
anchors.left: parent.left
anchors.verticalCenter: commandPicker.verticalCenter
height: _hamburgerSize
width: height
sourceSize.height: height
fillMode: Image.PreserveAspectFit
mipmap: true
smooth: true
color: qgcPal.text
visible: _currentItem && missionItem.sequenceNumber !== 0
source: "/res/TrashDelete.svg"
QGCMouseArea {
fillItem: parent
onClicked: remove()
}
} }
Rectangle { /*
id: commandPicker QGCLabel {
id: notReadyForSaveLabel
anchors.margins: _margin anchors.margins: _margin
anchors.left: deleteButton.right anchors.left: notReadyForSaveIndicator.right
anchors.top: parent.top anchors.right: parent.right
height: ScreenTools.implicitComboBoxHeight anchors.top: commandPicker.bottom
width: innerLayout.x + innerLayout.width + ScreenTools.comboBoxPadding visible: _currentItem && !_readyForSave
visible: !commandLabel.visible text: missionItem.readyForSaveState === VisualMissionItem.NotReadyForSaveTerrain ?
color: qgcPal.window qsTr("Incomplete: Waiting on terrain data.") :
border.width: 1 qsTr("Incomplete: Item not fully specified.")
border.color: qgcPal.text wrapMode: Text.WordWrap
horizontalAlignment: Text.AlignHCenter
RowLayout { color: qgcPal.warningText
id: innerLayout
anchors.margins: _padding
anchors.left: parent.left
anchors.verticalCenter: parent.verticalCenter
spacing: _padding
property real _padding: ScreenTools.comboBoxPadding
QGCLabel { text: missionItem.commandName }
QGCColoredImage {
height: ScreenTools.defaultFontPixelWidth
width: height
fillMode: Image.PreserveAspectFit
smooth: true
antialiasing: true
color: qgcPal.text
source: "/qmlimages/arrow-down.png"
}
}
QGCMouseArea {
fillItem: parent
onClicked: mainWindow.showComponentDialog(commandDialog, qsTr("Select Mission Command"), mainWindow.showDialogDefaultWidth, StandardButton.Cancel)
}
Component {
id: commandDialog
MissionCommandDialog {
missionItem: _root.missionItem
map: _root.map
// FIXME: Disabling fly through commands doesn't work since you may need to change from an RTL to something else
flyThroughCommandsAllowed: true //_missionController.flyThroughCommandsAllowed
}
}
} }
QGCLabel { */
id: commandLabel
anchors.leftMargin: ScreenTools.comboBoxPadding
anchors.fill: commandPicker
visible: !missionItem.isCurrentItem || !missionItem.isSimpleItem || _waypointsOnlyMode || missionItem.isTakeoffItem
verticalAlignment: Text.AlignVCenter
text: missionItem.commandName
color: _outerTextColor
}
Loader { Loader {
id: editorLoader id: editorLoader
anchors.margins: _margin anchors.margins: _innerMargin
anchors.left: parent.left anchors.left: parent.left
anchors.top: _readyForSave ? commandPicker.bottom : notReadyForSaveLabel.bottom anchors.top: topRowLayout.bottom
source: missionItem.editorQml source: missionItem.editorQml
visible: _currentItem visible: _currentItem
property var masterController: _masterController property var masterController: _masterController
property real availableWidth: _root.width - (_margin * 2) ///< How wide the editor should be property real availableWidth: _root.width - (anchors.margins * 2) ///< How wide the editor should be
property var editorRoot: _root property var editorRoot: _root
} }
} // Rectangle } // Rectangle
...@@ -49,7 +49,7 @@ Item { ...@@ -49,7 +49,7 @@ Item {
property bool _addWaypointOnClick: false property bool _addWaypointOnClick: false
property bool _addROIOnClick: false property bool _addROIOnClick: false
property bool _singleComplexItem: _missionController.complexMissionItemNames.length === 1 property bool _singleComplexItem: _missionController.complexMissionItemNames.length === 1
property int _editingLayer: bar.currentIndex ? _layers[bar.currentIndex] : _layerMission property int _editingLayer: layerTabBar.currentIndex ? _layers[layerTabBar.currentIndex] : _layerMission
property int _toolStripBottom: toolStrip.height + toolStrip.y property int _toolStripBottom: toolStrip.height + toolStrip.y
property var _appSettings: QGroundControl.settingsManager.appSettings property var _appSettings: QGroundControl.settingsManager.appSettings
property var _planViewSettings: QGroundControl.settingsManager.planViewSettings property var _planViewSettings: QGroundControl.settingsManager.planViewSettings
...@@ -704,7 +704,7 @@ Item { ...@@ -704,7 +704,7 @@ Item {
height: parent.height height: parent.height
width: _rightPanelWidth width: _rightPanelWidth
color: qgcPal.window color: qgcPal.window
opacity: planExpanded.visible ? 0.2 : 0 opacity: layerTabBar.visible ? 0.2 : 0
anchors.bottom: parent.bottom anchors.bottom: parent.bottom
anchors.right: parent.right anchors.right: parent.right
anchors.rightMargin: _toolsMargin anchors.rightMargin: _toolsMargin
...@@ -781,26 +781,11 @@ Item { ...@@ -781,26 +781,11 @@ Item {
} }
//------------------------------------------------------- //-------------------------------------------------------
// Mission Controls (Expanded) // Mission Controls (Expanded)
Rectangle {
id: planExpanded
width: parent.width
height: (!planControlColapsed || !_airspaceEnabled) ? bar.height + ScreenTools.defaultFontPixelHeight : 0
color: qgcPal.missionItemEditor
radius: _radius
visible: (!planControlColapsed || !_airspaceEnabled) && QGroundControl.corePlugin.options.enablePlanViewSelector
Item {
height: bar.height
anchors.left: parent.left
anchors.right: parent.right
anchors.margins: ScreenTools.defaultFontPixelWidth
anchors.verticalCenter: parent.verticalCenter
QGCTabBar { QGCTabBar {
id: bar id: layerTabBar
width: parent.width width: parent.width
anchors.centerIn: parent visible: (!planControlColapsed || !_airspaceEnabled) && QGroundControl.corePlugin.options.enablePlanViewSelector
Component.onCompleted: { Component.onCompleted: currentIndex = 0
currentIndex = 0
}
QGCTabButton { QGCTabButton {
text: qsTr("Mission") text: qsTr("Mission")
} }
...@@ -814,8 +799,6 @@ Item { ...@@ -814,8 +799,6 @@ Item {
} }
} }
} }
}
}
//------------------------------------------------------- //-------------------------------------------------------
// Mission Item Editor // Mission Item Editor
Item { Item {
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment