Commit 9df678f1 authored by Valentin Platzgummer's avatar Valentin Platzgummer

wimaMenu variable size added

parent 3b151cb4
...@@ -546,6 +546,59 @@ QGCView { ...@@ -546,6 +546,59 @@ QGCView {
visible: singleVehicleView.checked && !QGroundControl.videoManager.fullScreen visible: singleVehicleView.checked && !QGroundControl.videoManager.fullScreen
} }
/*Rectangle {
z: _panel.z + 4
anchors.left: parent.left
anchors.bottom: parent.bottom
anchors.leftMargin: ScreenTools.defaultFontPixelWidth
anchors.bottomMargin: ScreenTools.defaultFontPixelWidth
color: "red"
width: childrenRect.width
height: childrenRect.height
Rectangle {
height: 20
width: 100
anchors.bottom: innerRectangle.top
anchors.left: parent.left
color: "green"
}
Rectangle {
id:innerRectangle
height: 100
width: 100
anchors.bottom: parent.bottom
anchors.left: parent.left
color: "blue"
}
MouseArea {
property bool value: false
anchors.fill: innerRectangle
onClicked: {
if (value) {
innerRectangle.height /= 2
innerRectangle.width /= 2
value = false
}
else
{
innerRectangle.height *= 2
innerRectangle.width *= 2
value = true
}
}
}
}*/
FlightDisplayWimaMenu { FlightDisplayWimaMenu {
id: wimaMenu id: wimaMenu
z: _panel.z + 4 z: _panel.z + 4
...@@ -553,6 +606,8 @@ QGCView { ...@@ -553,6 +606,8 @@ QGCView {
anchors.bottom: parent.bottom anchors.bottom: parent.bottom
anchors.leftMargin: ScreenTools.defaultFontPixelWidth anchors.leftMargin: ScreenTools.defaultFontPixelWidth
anchors.bottomMargin: ScreenTools.defaultFontPixelWidth anchors.bottomMargin: ScreenTools.defaultFontPixelWidth
maxWidth: 300
maxHeight: 500
wimaController: wimaController wimaController: wimaController
......
...@@ -21,14 +21,16 @@ Item { ...@@ -21,14 +21,16 @@ Item {
id: _root id: _root
height: mainFrame.height height: mainFrame.height
width: mainFrame.width width: mainFrame.width
property var maxHeight: 500
property var maxWidth: 300 property int maxHeight: 500
property int maxWidth: 300
property var wimaController // must be provided by the user property var wimaController // must be provided by the user
property var planMasterController // must be provided by the user property var planMasterController // must be provided by the user
property bool _controllerValid: planMasterController !== undefined property bool _controllerValid: planMasterController !== undefined
property real _controllerProgressPct: _controllerValid ? planMasterController.missionController.progressPct : 0 property real _controllerProgressPct: _controllerValid ? planMasterController.missionController.progressPct : 0
property double _margins: ScreenTools.defaultPixelWidth*0.3 property real _margins: ScreenTools.defaultPixelWidth*0.3
signal initSmartRTL(); signal initSmartRTL();
...@@ -57,14 +59,14 @@ Item { ...@@ -57,14 +59,14 @@ Item {
// box containing all items // box containing all items
Rectangle { // maybe replace with column and remove anchors => dynamic height: Rectangle { // maybe replace with column and remove anchors => dynamic height:
id: mainFrame id: mainFrame
anchors.left: parent.left height: enableWima.height + flickable.height
anchors.bottom: parent.bottom width: Math.max(enableWima.width, flickable.width)
height: enableWima.enableWimaBoolean ? Math.min(parent.maxHeight, enableWima.height + flickable.contentHeight + 2*_margins) : enableWima.height + _margins color: enableWima.enableWimaBoolean ? qgcPal.window : "transparent"
width: enableWima.enableWimaBoolean ? Math.min(parent.maxWidth, flickable.contentWidth + 2*_margins) : enableWima.width radius: Math.min(height, width)/50
color: enableWima.enableWimaBoolean ? qgcPal.window : "transparent" clip: true
radius: ScreenTools.defaultFontPixelHeight / 4
clip: false property real _margins: _root._margins
Component.onCompleted: { Component.onCompleted: {
console.log('onCompleted') console.log('onCompleted')
...@@ -72,46 +74,65 @@ Item { ...@@ -72,46 +74,65 @@ Item {
console.log(height) console.log(height)
console.log('width') console.log('width')
console.log(width) console.log(width)
console.log(enableWima.width)
console.log(enableWima.height)
console.log(flickable.contentWidth)
console.log(flickable.contentHeight)
width = enableWima.width + flickable.contentWidth + 2*_margins
console.log('width')
console.log(width)
} }
onHeightChanged: { onHeightChanged: {
console.log('height') console.log('height')
console.log(height) console.log(height)
_root.height = mainFrame.height //_root.height = mainFrame.height
} }
onWidthChanged: { onWidthChanged: {
console.log('width') console.log('width')
console.log(width) console.log(width)
_root.width = mainFrame.width //_root.width = mainFrame.width
} }
// checkbox to enable/ disable wima // checkbox to enable/ disable wima
SliderSwitch { SliderSwitch {
id: enableWima id: enableWima
anchors.horizontalCenter: parent.horizontalCenter anchors.horizontalCenter: flickable.horizontalCenter
anchors.topMargin: _margins anchors.bottom: flickable.top
anchors.top: parent.top
confirmText: enableWimaBoolean ? qsTr("disable WiMA") : qsTr("enable WiMA") confirmText: enableWimaBoolean ? qsTr("disable WiMA") : qsTr("enable WiMA")
property var enableWimaFact: wimaController.enableWimaController property var enableWimaFact: wimaController.enableWimaController
property bool enableWimaBoolean: enableWimaFact.value property bool enableWimaBoolean: enableWimaFact.value
Component.onCompleted: { /*onXChanged: {
enableWimaFact.value = false console.log('x')
}
onYChanged: {
console.log('y')
} }
Component.onCompleted: {
enableWimaFact.value = true
}*/
onAccept: { onAccept: {
if (enableWimaBoolean) { if (enableWimaBoolean) {
enableWimaFact.value = false enableWimaFact.value = false
enableWimaMouseArea.enabled = true
timer.start()
} else { } else {
enableWimaFact.value = true enableWimaFact.value = true
enableWimaMouseArea.enabled = false
timer.stop()
} }
} }
} }
/*MouseArea { MouseArea {
id: enableWimaMouseArea
anchors.fill: enableWima anchors.fill: enableWima
hoverEnabled: true hoverEnabled: true
...@@ -119,268 +140,296 @@ Item { ...@@ -119,268 +140,296 @@ Item {
property var enableWimaFact: wimaController.enableWimaController property var enableWimaFact: wimaController.enableWimaController
property bool enableWimaBoolean: enableWimaFact.value property bool enableWimaBoolean: enableWimaFact.value
onEntered: { onEntered: {
timer.stop()
enableWima.visible = true enableWima.visible = true
enabled = false
timer.start()
} }
onExited: {
if (enableWimaBoolean === false) { onExited: timer.start()
timer.start()
}
}
} }
Timer { Timer {
id: timer id: timer
interval: 1000 interval: 3000
running: false running: false
repeat: false repeat: false
onTriggered: enableWima.visible = false onTriggered: triggerHandler()
}*/
function triggerHandler() {
if (enableWima.enableWimaBoolean === false) {
enableWima.visible = false
enableWimaMouseArea.enabled = true
}
}
Component.onCompleted: {
start()
}
}
QGCFlickable { QGCFlickable {
id: flickable id: flickable
clip: false clip: true
anchors.top: enableWima.bottom visible: enableWima.enableWimaBoolean
anchors.left: parent.left anchors.left: parent.left
contentHeight: mainColumn.height anchors.bottom: parent.bottom
contentWidth: mainColumn.width width: enableWima.enableWimaBoolean ? Math.min(contentWidth, maxWidth) : enableWima.width
height: enableWima.enableWimaBoolean ? Math.min(contentHeight, maxHeight) : 0
contentHeight: columnWrapper.height
contentWidth: columnWrapper.width
onContentHeightChanged: {
onContentHeightChanged: {
console.log('contentHeight') console.log('contentHeight')
console.log(contentHeight) console.log(contentHeight)
mainFrame.height = enableWima.enableWimaBoolean ? Math.min(parent.maxHeight, enableWima.height + flickable.contentHeight + 2*_margins) : enableWima.height + _margins //mainFrame.height = enableWima.enableWimaBoolean ? Math.min(parent.maxHeight, enableWima.height + flickable.contentHeight + 2*_margins) : enableWima.height + _margins
} }
onContentWidthChanged: { onContentWidthChanged: {
console.log('contentWidth') console.log('contentWidth')
console.log(contentWidth) console.log(contentWidth)
mainFrame.width = enableWima.enableWimaBoolean ? Math.min(parent.maxWidth, flickable.contentWidth + 2*_margins) : enableWima.width //mainFrame.width = enableWima.enableWimaBoolean ? Math.min(parent.maxWidth, flickable.contentWidth + 2*_margins) : enableWima.width
} }
Column {
id: mainColumn
anchors.horizontalCenter: parent.horizontalCenter
spacing: ScreenTools.defaultFontPixelHeight * 0.3
SectionHeader{
id: settingsHeader
text: qsTr("Settings")
}
GridLayout {
columns: 2
rowSpacing: ScreenTools.defaultFontPixelHeight * 0.5
columnSpacing: ScreenTools.defaultFontPixelHeight * 0.5
visible: settingsHeader.checked
QGCLabel {
text: qsTr("Next Waypoint")
Layout.fillWidth: true
}
FactTextField {
fact: wimaController.startWaypointIndex
Layout.fillWidth: true
}
QGCLabel {
text: qsTr("Max Waypoints")
Layout.fillWidth: true
}
FactTextField {
fact: wimaController.maxWaypointsPerPhase
Layout.fillWidth: true
}
QGCLabel { Row {
text: qsTr("Overlap") id: columnWrapper
Layout.fillWidth: true Item{ // spacer
} width: 6
FactTextField { height: 1
fact: wimaController.overlapWaypoints
Layout.fillWidth: true
}
} }
GridLayout {
columns: 2
rowSpacing: ScreenTools.defaultFontPixelHeight * 0.5
columnSpacing: ScreenTools.defaultFontPixelHeight * 0.5
visible: settingsHeader.checked
FactCheckBox {
text: qsTr("Show All")
fact: wimaController.showAllMissionItems
Layout.fillWidth: true
}
FactCheckBox {
text: qsTr("Show Current")
fact: wimaController.showCurrentMissionItems
Layout.fillWidth: true
}
FactCheckBox {
text: qsTr("Reverse")
fact: wimaController.reverse
Layout.fillWidth: true
}
} // Grid
SectionHeader{ Column {
id: missionHeader id: mainColumn
text: qsTr("Mission") spacing: ScreenTools.defaultFontPixelHeight * 0.3
}
GridLayout {
columns: 2
rowSpacing: ScreenTools.defaultFontPixelHeight * 0.5
columnSpacing: ScreenTools.defaultFontPixelHeight * 0.5
visible: missionHeader.checked
width: parent.width
QGCLabel {
text: qsTr("Speed")
Layout.fillWidth: true
}
FactTextField {
fact: wimaController.flightSpeed
Layout.fillWidth: true
}
QGCLabel { SectionHeader{
text: qsTr("Altitude") id: settingsHeader
Layout.fillWidth: true text: qsTr("Settings")
}
FactTextField {
fact: wimaController.altitude
Layout.fillWidth: true
} }
GridLayout {
} columns: 2
rowSpacing: ScreenTools.defaultFontPixelHeight * 0.5
GridLayout { columnSpacing: ScreenTools.defaultFontPixelHeight * 0.5
columns: 2 visible: settingsHeader.checked
rowSpacing: ScreenTools.defaultFontPixelHeight * 0.5
columnSpacing: ScreenTools.defaultFontPixelHeight * 0.5 QGCLabel {
visible: missionHeader.checked text: qsTr("Next Waypoint")
width: parent.width Layout.fillWidth: true
}
// Buttons FactTextField {
QGCButton { fact: wimaController.startWaypointIndex
id: buttonPreviousMissionPhase Layout.fillWidth: true
text: qsTr("Reverse") }
onClicked: wimaController.previousPhase()
Layout.fillWidth: true QGCLabel {
text: qsTr("Max Waypoints")
Layout.fillWidth: true
}
FactTextField {
fact: wimaController.maxWaypointsPerPhase
Layout.fillWidth: true
}
QGCLabel {
text: qsTr("Overlap")
Layout.fillWidth: true
}
FactTextField {
fact: wimaController.overlapWaypoints
Layout.fillWidth: true
}
} }
GridLayout {
QGCButton { columns: 2
id: buttonNextMissionPhase rowSpacing: ScreenTools.defaultFontPixelHeight * 0.5
text: qsTr("Forward") columnSpacing: ScreenTools.defaultFontPixelHeight * 0.5
onClicked: wimaController.nextPhase() visible: settingsHeader.checked
Layout.fillWidth: true
FactCheckBox {
text: qsTr("Show All")
fact: wimaController.showAllMissionItems
Layout.fillWidth: true
}
FactCheckBox {
text: qsTr("Show Current")
fact: wimaController.showCurrentMissionItems
Layout.fillWidth: true
}
FactCheckBox {
text: qsTr("Reverse")
fact: wimaController.reverse
Layout.fillWidth: true
}
} // Grid
SectionHeader{
id: missionHeader
text: qsTr("Mission")
} }
GridLayout {
columns: 2
rowSpacing: ScreenTools.defaultFontPixelHeight * 0.5
columnSpacing: ScreenTools.defaultFontPixelHeight * 0.5
visible: missionHeader.checked
width: parent.width
QGCLabel {
text: qsTr("Speed")
Layout.fillWidth: true
}
FactTextField {
fact: wimaController.flightSpeed
Layout.fillWidth: true
}
QGCLabel {
text: qsTr("Altitude")
Layout.fillWidth: true
}
FactTextField {
fact: wimaController.altitude
Layout.fillWidth: true
}
QGCButton {
id: buttonResetPhase
text: qsTr("Reset Phase")
onClicked: wimaController.resetPhase();
Layout.columnSpan: 2
Layout.fillWidth: true
} }
} // Grid
SectionHeader{ GridLayout {
id: vehicleHeader columns: 2
text: qsTr("Vehicle") rowSpacing: ScreenTools.defaultFontPixelHeight * 0.5
} columnSpacing: ScreenTools.defaultFontPixelHeight * 0.5
GridLayout { visible: missionHeader.checked
columns: 2 width: parent.width
rowSpacing: ScreenTools.defaultFontPixelHeight * 0.5
columnSpacing: ScreenTools.defaultFontPixelHeight * 0.5 // Buttons
visible: vehicleHeader.checked QGCButton {
width: parent.width id: buttonPreviousMissionPhase
text: qsTr("Reverse")
QGCButton { onClicked: wimaController.previousPhase()
id: buttonUpload Layout.fillWidth: true
text: qsTr("Upload") }
onClicked: wimaController.uploadToVehicle()
Layout.fillWidth: true QGCButton {
id: buttonNextMissionPhase
text: qsTr("Forward")
onClicked: wimaController.nextPhase()
Layout.fillWidth: true
}
QGCButton {
id: buttonResetPhase
text: qsTr("Reset Phase")
onClicked: wimaController.resetPhase();
Layout.columnSpan: 2
Layout.fillWidth: true
}
} // Grid
SectionHeader{
id: vehicleHeader
text: qsTr("Vehicle")
} }
GridLayout {
QGCButton { columns: 2
id: buttonRemoveFromVehicle rowSpacing: ScreenTools.defaultFontPixelHeight * 0.5
text: qsTr("Remove") columnSpacing: ScreenTools.defaultFontPixelHeight * 0.5
onClicked: wimaController.removeFromVehicle() visible: vehicleHeader.checked
Layout.fillWidth: true width: parent.width
QGCButton {
id: buttonUpload
text: qsTr("Upload")
onClicked: wimaController.uploadToVehicle()
Layout.fillWidth: true
}
QGCButton {
id: buttonRemoveFromVehicle
text: qsTr("Remove")
onClicked: wimaController.removeFromVehicle()
Layout.fillWidth: true
}
QGCButton {
id: buttonSmartRTL
text: qsTr("Smart RTL")
onClicked: initSmartRTL()
Layout.columnSpan: 2
Layout.fillWidth: true
}
// progess bar
Rectangle {
id: progressBar
height: 4
width: _controllerProgressPct * parent.width
color: qgcPal.colorGreen
visible: false
Layout.columnSpan: 2
Layout.fillWidth: true
}
QGCLabel {
id: uploadCompleteText
font.pointSize: ScreenTools.largeFontPointSize
Layout.columnSpan: 2
horizontalAlignment: Text.AlignHCenter
verticalAlignment: Text.AlignVCenter
text: "Done"
visible: false
Layout.fillWidth: true
}
} }
QGCButton { SectionHeader {
id: buttonSmartRTL id: statsHeader
text: qsTr("Smart RTL") text: qsTr("Statistics")
onClicked: initSmartRTL()
Layout.columnSpan: 2
Layout.fillWidth: true
} }
GridLayout {
columns: 2
// progess bar rowSpacing: ScreenTools.defaultFontPixelHeight * 0.5
Rectangle { anchors.topMargin: ScreenTools.defaultFontPixelHeight * 0.5
id: progressBar visible: statsHeader.checked
height: 4
width: _controllerProgressPct * parent.width QGCLabel {
color: qgcPal.colorGreen text: qsTr("Phase Length: ")
visible: false wrapMode: Text.WordWrap
Layout.columnSpan: 2 Layout.fillWidth: true
Layout.fillWidth: true }
QGCLabel {
text: wimaController.phaseDistance >= 0 ? wimaController.phaseDistance.toFixed(2) + " m": ""
wrapMode: Text.WordWrap
Layout.fillWidth: true
}
QGCLabel {
text: qsTr("Phase Duration: ")
wrapMode: Text.WordWrap
Layout.fillWidth: true
}
QGCLabel {
text: wimaController.phaseDuration >= 0 ? getTime(wimaController.phaseDuration) : ""
wrapMode: Text.WordWrap
Layout.fillWidth: true
}
QGCLabel {
text: ""
Layout.columnSpan: 2
}
} }
} // settingsColumn
QGCLabel { Item { // spacer
id: uploadCompleteText width: 6
font.pointSize: ScreenTools.largeFontPointSize height: 1
Layout.columnSpan: 2
horizontalAlignment: Text.AlignHCenter
verticalAlignment: Text.AlignVCenter
text: "Done"
visible: false
Layout.fillWidth: true
}
} }
}
SectionHeader {
id: statsHeader
text: qsTr("Statistics")
}
GridLayout {
columns: 2
rowSpacing: ScreenTools.defaultFontPixelHeight * 0.5
anchors.topMargin: ScreenTools.defaultFontPixelHeight * 0.5
visible: statsHeader.checked
QGCLabel {
text: qsTr("Phase Length: ")
wrapMode: Text.WordWrap
Layout.fillWidth: true
}
QGCLabel {
text: wimaController.phaseDistance >= 0 ? wimaController.phaseDistance.toFixed(2) + " m": ""
wrapMode: Text.WordWrap
Layout.fillWidth: true
}
QGCLabel {
text: qsTr("Phase Duration: ")
wrapMode: Text.WordWrap
Layout.fillWidth: true
}
QGCLabel {
text: wimaController.phaseDuration >= 0 ? getTime(wimaController.phaseDuration) : ""
wrapMode: Text.WordWrap
Layout.fillWidth: true
}
QGCLabel {
text: ""
Layout.columnSpan: 2
}
}
} // settingsColumn
} // QGCFlickable } // QGCFlickable
} }
} }
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