Auto indent.
[qzeecontrol] / qml / QZeeControl / MainPage.qml
index 848babc..b661377 100644 (file)
 import QtQuick 1.1
 import com.nokia.meego 1.0
 import QtMobility.connectivity 1.2
+import QtMobility.systeminfo 1.2
 import "settingsstorage.js" as SettingsStorage
 import qzeecontrol 1.0
 
 Page {
+    id: mainPage
     tools: commonTools
 
     orientationLock: PageOrientation.LockPortrait
@@ -47,6 +49,7 @@ Page {
         }
 
         loadKeyBindings()
+        updateConnectAndScanButton()
         initializing = false
     }
 
@@ -76,6 +79,30 @@ Page {
         btConn.keyBindingRight = SettingsStorage.getSetting("Right")
     }
 
+    function updateConnectAndScanButton(){
+        if(!deviceInfo.currentBluetoothPowerState){
+            scanButton.enabled = false
+            connectButton.enabled = false
+
+            addressField.enabled = false
+            portField.enabled = false
+
+            infoText.text = "To get started please turn Bluetooth on."
+            return
+        }
+
+        scanButton.enabled = true
+
+        addressField.enabled = true
+        portField.enabled = true
+
+        connectButton.enabled = (addressField.text !== "No device found yet.")
+        infoText.text = (addressField.text !== "No device found yet.") ?
+                    "To enable remote control please press \"Connect\" when ready." :
+                    "Please scan for a Zeemote first."
+
+    }
+
     states: [
         State {
             name: "active"
@@ -221,14 +248,14 @@ Page {
         anchors{top: headerItem.bottom; bottom: parent.bottom; left: parent.left; right: parent.right}
         contentHeight: contentColumn.height
 
-            Column{
-                id: contentColumn
-                spacing: 10
-                anchors{top: parent.top; left: parent.left; right: parent.right; topMargin: 10}
+        Column{
+            id: contentColumn
+            spacing: 10
+            anchors{top: parent.top; left: parent.left; right: parent.right; topMargin: 10}
 
             Button{
                 id: scanButton
-                enabled: true
+                enabled: false
 
                 anchors.horizontalCenter: parent.horizontalCenter
                 text: "Scan"
@@ -248,14 +275,14 @@ Page {
                     text: "No device found yet."
 
                     onTextChanged: {
-                        if(initializing)
+                        if(mainPage.initializing)
                             return
 
                         if(text === "No device found yet.")
                             return
 
-                        connectButton.enabled = true
-                        infoText.text = "Press \"Connect\" to connect to the device."
+                        updateConnectAndScanButton();
+
                         console.log("Storing address in DB: " + text)
                         SettingsStorage.setSetting("address", text)
                     }
@@ -267,7 +294,7 @@ Page {
                     validator: IntValidator{}
 
                     onTextChanged: {
-                        if(initializing)
+                        if(mainPage.initializing)
                             return
 
                         if(text === "na")
@@ -283,7 +310,6 @@ Page {
                 id: infoText
                 width: parent.width
 
-                text: "Please scan for a device first."
                 horizontalAlignment: Text.AlignHCenter
                 wrapMode: Text.WordWrap
             }
@@ -367,6 +393,16 @@ Page {
         }
     }
 
+    DeviceInfo{
+        id: deviceInfo
+
+        monitorBluetoothStateChanges: true
+
+        onBluetoothStateChanged: {
+            updateConnectAndScanButton()
+        }
+    }
+
     BluetoothDiscoveryModel{
         id: btDiscovery
 
@@ -431,28 +467,28 @@ Page {
             mainPage.state = "disconnected"
         }
 
-//        onStickMoved: {
-//            console.log("Stick moved. x: " + x + " y: " + y)
-//        }
+        //        onStickMoved: {
+        //            console.log("Stick moved. x: " + x + " y: " + y)
+        //        }
 
-//        onButtonsChanged: {
-//            console.log("Buttons changed. A: " + a + " B: " + b + " C: " + c + " D: " + d)
-//        }
+        //        onButtonsChanged: {
+        //            console.log("Buttons changed. A: " + a + " B: " + b + " C: " + c + " D: " + d)
+        //        }
 
         onAChanged: {
-//            console.log("A changed to: " + val)
+            //            console.log("A changed to: " + val)
             xtstAdapter.sendKey(keyBindingA, val);
         }
         onBChanged: {
-//            console.log("B changed to: " + val)
+            //            console.log("B changed to: " + val)
             xtstAdapter.sendKey(keyBindingB, val);
         }
         onCChanged: {
-//            console.log("C changed to: " + val)
+            //            console.log("C changed to: " + val)
             xtstAdapter.sendKey(keyBindingC, val);
         }
         onDChanged: {
-//            console.log("D changed to: " + val)
+            //            console.log("D changed to: " + val)
             xtstAdapter.sendKey(keyBindingD, val);
         }
 
@@ -461,27 +497,27 @@ Page {
         onLeftChanged: xtstAdapter.sendKey(keyBindingLeft, val)
         onRightChanged: xtstAdapter.sendKey(keyBindingRight, val)
 
-//        onXChanged: {
-//            if(val > joystickThreshold){
-//                xtstAdapter.sendKey("Right", true);
-//            }else if(val < -joystickThreshold){
-//                xtstAdapter.sendKey("Left", true);
-//            }else{
-//                xtstAdapter.sendKey("Right", false);
-//                xtstAdapter.sendKey("Left", false);
-//            }
-//        }
-
-//        onYChanged: {
-//            if(val > joystickThreshold){
-//                xtstAdapter.sendKey("Down", true);
-//            }else if(val < -joystickThreshold){
-//                xtstAdapter.sendKey("Up", true);
-//            }else{
-//                xtstAdapter.sendKey("Down", false);
-//                xtstAdapter.sendKey("Up", false);
-//            }
-//        }
+        //        onXChanged: {
+        //            if(val > joystickThreshold){
+        //                xtstAdapter.sendKey("Right", true);
+        //            }else if(val < -joystickThreshold){
+        //                xtstAdapter.sendKey("Left", true);
+        //            }else{
+        //                xtstAdapter.sendKey("Right", false);
+        //                xtstAdapter.sendKey("Left", false);
+        //            }
+        //        }
+
+        //        onYChanged: {
+        //            if(val > joystickThreshold){
+        //                xtstAdapter.sendKey("Down", true);
+        //            }else if(val < -joystickThreshold){
+        //                xtstAdapter.sendKey("Up", true);
+        //            }else{
+        //                xtstAdapter.sendKey("Down", false);
+        //                xtstAdapter.sendKey("Up", false);
+        //            }
+        //        }
     }
 
     XtstAdapter{