improved desktop UI
[mardrone] / mardrone / ardrone_desktop.qml
index 66f835a..d5bf0b8 100644 (file)
@@ -8,12 +8,12 @@ import JoyStick 1.0
 Window {
     title: "MArdrone"
     id:mainWindow
-    width: 1024
+    width: 700
     height: 800
     maximumHeight: mainWindow.height
     minimumHeight: 800
     maximumWidth: 1280
-    minimumWidth: 800
+    minimumWidth: 700
     visible: true
 
 
@@ -30,6 +30,11 @@ Window {
                 shortcut: "Ctrl+Q"
                 onTriggered: Qt.quit()
             }
+            MenuItem {
+                text: "Record"
+                shortcut: "Ctrl+R"
+                onTriggered: Qt.quit()
+            }
         }
         Menu {
             text: "Edit"
@@ -57,10 +62,11 @@ Window {
 
     Column {
         width:parent.width
-        spacing:5
+     //   spacing:5
       Rectangle {
         id:mainWiew
         width:parent.width
+        color:"black"
         height:480
         //onEntered:(mainWindow.fullscreen=true)
 
@@ -72,7 +78,11 @@ Window {
          //   anchors.horizontalCenter:parent.horizontalCenter
             width:drone.confFullScreen? parent.width:640 ;height:width<=640 ?480*width/640:480;
         }
-
+        Binding {
+          target:drone
+          property:"logSeq"
+          value: droneVideo.frameSeq;
+        }
         EfisPFD {
             id:hudPDF
             y:0
@@ -87,12 +97,9 @@ Window {
             groundColor:"#00000000"
             width:640;height:480;
         }
-
-
         Text {
             y:100
-
- //           visible:drone.confUseAccel
+            visible:drone.confShowDebug
             color: "#00FF00"
             id: droneCtrlValues
             font.pixelSize:20
@@ -177,6 +184,7 @@ Window {
                 id:lj
                 width:280;height:280;
                 y:200
+                joyBackground: ""
                 visible: !drone.confUseAccel & !drone.confUseJoyStick
                 anchors.left:parent.left
                 anchors.margins:50
@@ -190,6 +198,7 @@ Window {
                  visible: !drone.confUseJoyStick
                 id:rj
                 y:200
+                joyBackground: ""
                 anchors.right:parent.right
                 width:280;height:280;
                 anchors.margins:50
@@ -198,8 +207,21 @@ Window {
                 onPressedChanged: { drone.ctrlActive=pressed;}
             }
       }
+
+      Rectangle {
+          width:parent.width
+     //     width:chlidrenRect.width
+     //     height:childrenRect.height
+          height:320
+          color: "black"
+
+
+
         Row {
+            id:instrumentPanel
             spacing:5
+            anchors.fill:parent
+            anchors.margins:5
 
             EfisPFD {
                 id:pDF
@@ -231,88 +253,176 @@ Window {
             pitch:drone.dronePitch
             bezel:"bezel.png"
         }
-        HeadingGauge {
+        Item {
             width:120
             height:120
-            id:hdgGauge
-            value:drone.droneYaw
-            bezel:"bezel.png"
-        }
+
+
         GaugeArc {
-            width:120
-            height:120
-            id:fuelGauge
-            anchors.margins:10
-            displayScale:0.85
+            anchors.fill:parent
+            id:speedGauge
+ //           anchors.margins:10
+            displayScale:0.95
             font.pixelSize:10
-            tickIncrement:10
-            tickSpacing:20
+            tickIncrement:20
+            tickSpacing:24
             tickMinor:5
             lowPosition:220
             highPosition:120
             low:0
-            high:100
+            high:200
             gaugeStyle:2
             color:"white"
-            value:drone.droneVBat
+            value:drone.droneSpeed
             lineWidth:2
             backColor:"black"
         }
-        GaugeHSI{
-            anchors.margins:10
-            displayScale:0.7
+        Image {
+            anchors.fill:parent
+            source:"bezel.png"
+        }
+        }
+
+        Item {
             width:120
             height:120
+
+
+        GaugeArc {
+            anchors.fill:parent
+            id:fuelGauge
+ //           anchors.margins:10
+            displayScale:0.95
             font.pixelSize:10
-            tickIncrement:30
-            tickSpacing:10
+            tickIncrement:10
+            tickSpacing:22
             tickMinor:5
+            lowPosition:240
+            highPosition:120
+            low:0
+            high:100
             gaugeStyle:2
             color:"white"
+            value:drone.droneVBat
+            lineWidth:2
             backColor:"black"
-            id:hsi
         }
+        Image {
+            anchors.fill:parent
+            source:"bezel.png"
+        }
+        }
+        Item {
+            width:120
+            height:120
 
+            HeadingGauge {
+                width:120
+                height:120
+                id:hdgGauge
+                value:drone.droneYaw
+                bezel:"bezel.png"
+            }
+        }
+        Item {
+            width:120
+            height:120
+        Rectangle {
+            anchors.fill:parent
+            anchors.margins:5
+            color:"gray"
+            }
         Row {
+            anchors.centerIn:parent
             spacing: 5
-            anchors.rightMargin: 10
-            height:100
+            anchors.margins: 30
+            height:90
         BarGauge {
            val:drone.pwm_motor1;
            max: 255
-           height:100
+           height:parent.height
+           width:10
         }
         BarGauge {
             val:drone.pwm_motor2;
             max: 255
-            height:100
+           height:parent.height
+                     width:10
         }
         BarGauge {
             val:drone.pwm_motor3;
             max: 255
-            height:100
+            height:parent.height
+            width:10
         }
         BarGauge {
             val:drone.pwm_motor4;
             max: 255
-            height:100
+            height:parent.height
+             width:10
         }
+        /*
         BarGauge {
             val:drone.droneVBat
             max: 100
-            height:100
+            height:parent.height
+                      width:10
         }
+        */
+        }
+        Image {
+            anchors.fill:parent
+            source:"bezel.png"
+        }
+        }
+        Button {
+
+            width:80
+            height:50
+            id:flyButton
+     //       anchors.bottom:parent.bottom
+            anchors.margins:15
+            text:"Fly";
+            checkable:true
+            onClicked:{drone.fly=checked;
+            // mainWindow.fullsecreen=checked;
+            }
+        }
+        Button {
+
+            width:90
+            height:50
+            id:emergencyButton
+         //   anchors.bottom:parent.bottom
+            anchors.margins:15
+            text:"Emrg";
+            checkable:true
+            onClicked:{drone.emergency=checked;}
+        }
+
+        Button {
+
+            width:100
+            height:50
+            id:recordButton
+       //     anchors.bottom:parent.bottom
+            anchors.margins:15
+            text:"Rec";
+            checkable:true
+            onClicked:{droneVideo.recVideo=checked; drone.logFileName=droneVideo.videoFileName; drone.recordLog=checked;}
         }
             } // Grid if instruments
-        } // Column ( Main window content )
+        }
 
+        } // Column ( Main window content )
+       }
         Dialog {
             id:configDialog
             width:800
             height:600
             data:ConfigDialogDesktop {}
         }
-    }
+
   } // Main page