Optimize startup and scan.
[qzeecontrol] / qml / QZeeControl / MainPage.qml
index 03f55c8..848babc 100644 (file)
@@ -28,6 +28,8 @@ Page {
 
     orientationLock: PageOrientation.LockPortrait
 
+    property bool initializing: true
+
     Component.onCompleted: {
         SettingsStorage.initialize();
 
@@ -38,6 +40,40 @@ Page {
             addressField.text = address
             portField.text = port
         }
+
+        if(SettingsStorage.getSetting("A") === "Unknown"){
+            console.log("Initializing key bindings.")
+            setKeyBindingsToDefault()
+        }
+
+        loadKeyBindings()
+        initializing = false
+    }
+
+    function setKeyBindingsToDefault(){
+        console.log("Setting key bindings to default.")
+        SettingsStorage.setSetting("A", "a")
+        SettingsStorage.setSetting("B", "b")
+        SettingsStorage.setSetting("C", "c")
+        SettingsStorage.setSetting("D", "d")
+
+        SettingsStorage.setSetting("Up", "Up")
+        SettingsStorage.setSetting("Down", "Down")
+        SettingsStorage.setSetting("Left", "Left")
+        SettingsStorage.setSetting("Right", "Right")
+    }
+
+    function loadKeyBindings(){
+        console.log("Loading key bindings.")
+        btConn.keyBindingA = SettingsStorage.getSetting("A")
+        btConn.keyBindingB = SettingsStorage.getSetting("B")
+        btConn.keyBindingC = SettingsStorage.getSetting("C")
+        btConn.keyBindingD = SettingsStorage.getSetting("D")
+
+        btConn.keyBindingUp = SettingsStorage.getSetting("Up")
+        btConn.keyBindingDown = SettingsStorage.getSetting("Down")
+        btConn.keyBindingLeft = SettingsStorage.getSetting("Left")
+        btConn.keyBindingRight = SettingsStorage.getSetting("Right")
     }
 
     states: [
@@ -212,6 +248,9 @@ Page {
                     text: "No device found yet."
 
                     onTextChanged: {
+                        if(initializing)
+                            return
+
                         if(text === "No device found yet.")
                             return
 
@@ -228,6 +267,9 @@ Page {
                     validator: IntValidator{}
 
                     onTextChanged: {
+                        if(initializing)
+                            return
+
                         if(text === "na")
                             return
 
@@ -267,7 +309,6 @@ Page {
 
                 onClicked: {
                     btConn.disconnect()
-
                 }
             }
 
@@ -360,6 +401,8 @@ Page {
             if(service.serviceName === "Zeemote"){
                 addressField.text = service.deviceAddress
                 portField.text = service.servicePort
+                discovery = false
+                console.log("Found device. Stopped further discovery.")
             }
         }
     }
@@ -369,6 +412,16 @@ Page {
 
         threshold: 50
 
+        property string keyBindingA
+        property string keyBindingB
+        property string keyBindingC
+        property string keyBindingD
+
+        property string keyBindingUp
+        property string keyBindingDown
+        property string keyBindingLeft
+        property string keyBindingRight
+
         onConnected: {
             disconnectButton.enabled = true
             infoText.text = "Connected. Have fun."
@@ -388,25 +441,25 @@ Page {
 
         onAChanged: {
 //            console.log("A changed to: " + val)
-            xtstAdapter.sendKey("a", val);
+            xtstAdapter.sendKey(keyBindingA, val);
         }
         onBChanged: {
 //            console.log("B changed to: " + val)
-            xtstAdapter.sendKey("b", val);
+            xtstAdapter.sendKey(keyBindingB, val);
         }
         onCChanged: {
 //            console.log("C changed to: " + val)
-            xtstAdapter.sendKey("c", val);
+            xtstAdapter.sendKey(keyBindingC, val);
         }
         onDChanged: {
 //            console.log("D changed to: " + val)
-            xtstAdapter.sendKey("d", val);
+            xtstAdapter.sendKey(keyBindingD, val);
         }
 
-        onUpChanged: xtstAdapter.sendKey("Up", val)
-        onDownChanged: xtstAdapter.sendKey("Down", val)
-        onLeftChanged: xtstAdapter.sendKey("Left", val)
-        onRightChanged: xtstAdapter.sendKey("Right", val)
+        onUpChanged: xtstAdapter.sendKey(keyBindingUp, val)
+        onDownChanged: xtstAdapter.sendKey(keyBindingDown, val)
+        onLeftChanged: xtstAdapter.sendKey(keyBindingLeft, val)
+        onRightChanged: xtstAdapter.sendKey(keyBindingRight, val)
 
 //        onXChanged: {
 //            if(val > joystickThreshold){