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

wimaMenu variable size added

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