Refactor code. Add tabs for enabling using two remote controls at once.
[qzeecontrol] / qml / QZeeControl / MainPage.qml
index 38f32df..9ebced7 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
@@ -30,395 +26,5 @@ Page {
 
     orientationLock: PageOrientation.LockPortrait
 
-    property bool initializing: true
 
-    Component.onCompleted: {
-        SettingsStorage.initialize();
-
-        var address = SettingsStorage.getSetting("address");
-        var port = SettingsStorage.getSetting("port");
-        if(address !== "Unknown" && port !== "Unknown"){
-            console.log("Loaded address " + address + " and port " + port + " from DB.")
-            addressField.text = address
-            portField.text = port
-        }
-
-        if(SettingsStorage.getSetting("A") === "Unknown"){
-            console.log("Initializing key bindings.")
-            setKeyBindingsToDefault()
-        }
-
-        loadKeyBindings()
-        updateConnectAndScanButton()
-        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.")
-        zeeRemoteControl.keyBindingA = SettingsStorage.getSetting("A")
-        zeeRemoteControl.keyBindingB = SettingsStorage.getSetting("B")
-        zeeRemoteControl.keyBindingC = SettingsStorage.getSetting("C")
-        zeeRemoteControl.keyBindingD = SettingsStorage.getSetting("D")
-
-        zeeRemoteControl.keyBindingUp = SettingsStorage.getSetting("Up")
-        zeeRemoteControl.keyBindingDown = SettingsStorage.getSetting("Down")
-        zeeRemoteControl.keyBindingLeft = SettingsStorage.getSetting("Left")
-        zeeRemoteControl.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 Zeemote found yet.")
-        infoText.text = (addressField.text !== "No Zeemote found yet.") ?
-                    "To enable remote control please press \"Connect\" when ready." :
-                    "Please scan for a Zeemote first."
-    }
-
-    states: [
-        State {
-            name: "active"
-            PropertyChanges {
-                target: cursorRectangle
-                x: moveArea.x + (moveArea.width * 0.5) + zeeRemoteControl.x - (cursorRectangle.width * 0.5)
-                y: moveArea.y + (moveArea.height * 0.5) + zeeRemoteControl.y - (cursorRectangle.height * 0.5)
-            }
-            PropertyChanges {
-                target: labelA
-                color: zeeRemoteControl.a ? "red" : "blue"
-            }
-            PropertyChanges {
-                target: labelB
-                color: zeeRemoteControl.b ? "red" : "blue"
-            }
-            PropertyChanges {
-                target: labelC
-                color: zeeRemoteControl.c ? "red" : "blue"
-            }
-            PropertyChanges {
-                target: labelD
-                color: zeeRemoteControl.d ? "red" : "blue"
-            }
-        },
-        State {
-            name: "inactive"
-            PropertyChanges {
-                target: cursorRectangle
-                x: moveArea.x + (moveArea.width * 0.5) - (cursorRectangle.width * 0.5)
-                y: moveArea.y + (moveArea.height * 0.5) - (cursorRectangle.height * 0.5)
-            }
-            PropertyChanges {
-                target: labelA
-                color: "blue"
-            }
-            PropertyChanges {
-                target: labelB
-                color: "blue"
-            }
-            PropertyChanges {
-                target: labelC
-                color: "blue"
-            }
-            PropertyChanges {
-                target: labelD
-                color: "blue"
-            }
-        }
-    ]
-
-    Connections {
-        target: platformWindow
-
-        onActiveChanged: {
-            if(platformWindow.active){
-                state = "active"
-            }else{
-                state = "inactive"
-            }
-        }
-    }
-
-    Item {
-        id: headerItem
-        anchors{top: parent.top; left: parent.left; right: parent.right}
-        height: header.height
-        z: 1
-
-        Image {
-            id: header
-            height: 72
-            source: "image://theme/color8-meegotouch-view-header-fixed"
-            anchors.fill: parent
-
-            Text {
-                text: "QZeeControl"
-                color: "white"
-                font.family: "Nokia Pure Text Light"
-                font.pixelSize: 32
-                anchors.left: parent.left
-                anchors.leftMargin: 20
-                anchors.verticalCenter: parent.verticalCenter
-            }
-        }
-    }
-
-    Flickable {
-        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}
-
-            Button{
-                id: scanButton
-                enabled: false
-
-                anchors.horizontalCenter: parent.horizontalCenter
-                text: "Scan"
-
-                onClicked: {
-                    btDiscovery.discovery = true
-                }
-            }
-
-            Row{
-                id: addressRow
-                anchors.horizontalCenter: parent.horizontalCenter
-                spacing: 5
-
-                TextField{
-                    id: addressField
-                    text: "No Zeemote found yet."
-                    width: 280
-
-                    onTextChanged: {
-                        if(mainPage.initializing)
-                            return
-
-                        if(text === "No Zeemote found yet.")
-                            return
-
-                        updateConnectAndScanButton();
-
-                        console.log("Storing address in DB: " + text)
-                        SettingsStorage.setSetting("address", text)
-                    }
-                }
-                TextField{
-                    id: portField
-                    text: "na"
-                    width: 60
-                    validator: IntValidator{}
-
-                    onTextChanged: {
-                        if(mainPage.initializing)
-                            return
-
-                        if(text === "na")
-                            return
-
-                        console.log("Storing port in DB: " + text)
-                        SettingsStorage.setSetting("port", text)
-                    }
-                }
-            }
-
-            Label {
-                id: infoText
-                width: parent.width
-
-                horizontalAlignment: Text.AlignHCenter
-                wrapMode: Text.WordWrap
-            }
-
-            Button{
-                id: connectButton
-                anchors.horizontalCenter: parent.horizontalCenter
-                enabled: false
-
-                text: "Connect"
-
-                onClicked: {
-                    scanButton.enabled = false
-                    addressField.enabled = false
-                    portField.enabled = false
-                    connectButton.enabled = false
-                    disconnectButton.enabled = false
-                    infoText.text = "Connecting..."
-
-                    zeeRemoteControl.connect(addressField.text, parseInt(portField.text))
-                }
-            }
-
-            Button{
-                id: disconnectButton
-                anchors.horizontalCenter: parent.horizontalCenter
-
-                text: "Disconnect"
-                enabled: false
-
-                onClicked: {
-                    zeeRemoteControl.disconnect()
-                }
-            }
-
-            Row{
-                id: buttonRow
-                anchors.horizontalCenter: parent.horizontalCenter
-
-                spacing: 20
-
-                Label{
-                    id: labelA
-                    text: "A"
-                    color: zeeRemoteControl.a ? "red" : "blue"
-                }
-                Label{
-                    id: labelB
-                    text: "B"
-                    color: zeeRemoteControl.b ? "red" : "blue"
-                }
-                Label{
-                    id: labelC
-                    text: "C"
-                    color: zeeRemoteControl.c ? "red" : "blue"
-                }
-                Label{
-                    id: labelD
-                    text: "D"
-                    color: zeeRemoteControl.d ? "red" : "blue"
-                }
-            }
-
-            Item{
-                id: testArea
-                anchors.horizontalCenter: parent.horizontalCenter
-                height: moveArea.height
-                width: moveArea.width
-
-                Rectangle{
-                    id: moveArea
-                    color: "gray"
-
-                    width: 256
-                    height: 256
-                }
-
-                Rectangle{
-                    id: cursorRectangle
-                    width: 10
-                    height: 10
-                    color: "red"
-
-                    x: moveArea.x + (moveArea.width * 0.5) + zeeRemoteControl.x - (cursorRectangle.width * 0.5)
-                    y: moveArea.y + (moveArea.height * 0.5) + zeeRemoteControl.y - (cursorRectangle.height * 0.5)
-                }
-            }
-        }
-    }
-
-    DeviceInfo{
-        id: deviceInfo
-
-        monitorBluetoothStateChanges: true
-
-        onBluetoothStateChanged: {
-            updateConnectAndScanButton()
-        }
-    }
-
-    BluetoothDiscoveryModel{
-        id: btDiscovery
-
-        discovery: false
-        minimalDiscovery: true
-
-        onDiscoveryChanged: {
-            if(initializing)
-                return
-
-            if(discovery){
-                infoText.text = "Scanning for a Zeemote..."
-                scanButton.enabled = false
-                connectButton.enabled = false
-                disconnectButton.enabled = false
-                addressField.enabled = false
-                portField.enabled = false
-            }else{
-                scanButton.enabled = true
-                disconnectButton.enabled = false
-                addressField.enabled = true
-                portField.enabled = true
-
-                if(addressField.text !== "No Zeemote found yet." && portField.text !== "na"){
-                    infoText.text = "Zeemote found. To enable remote control please press \"Connect\" when ready."
-                    connectButton.enabled = true
-                }
-            }
-        }
-
-        onNewServiceDiscovered: {
-            console.log("Service " + service.serviceName + " found on "
-                        + service.deviceName + " at address " + service.deviceAddress
-                        + " on port " + service.servicePort + ".")
-            if(service.serviceName === "Zeemote"){
-                addressField.text = service.deviceAddress
-                portField.text = service.servicePort
-                discovery = false
-                console.log("Found Zeemote. Stopped further discovery.")
-            }
-        }
-    }
-
-    ZeeRemoteControl{
-        id: zeeRemoteControl
-
-        threshold: 50
-
-        onConnected: {
-            disconnectButton.enabled = true
-            infoText.text = "Connected. Have fun."
-        }
-        onDisconnected: {
-            scanButton.enabled = true
-            addressField.enabled = true
-            portField.enabled = true
-            connectButton.enabled = true
-            disconnectButton.enabled = false
-            infoText.text = "To enable remote control please press \"Connect\" when ready."
-        }
-    }
-
-    XtstAdapter{
-        id: xtstAdapter
-    }
 }