wired: implement configuration data flows 03/22403/4 8.99.1 icefish/8.99.1 icefish_8.99.1
authorRaquel Medina <raquel.medina@konsulko.com>
Mon, 2 Sep 2019 20:29:47 +0000 (22:29 +0200)
committerraquel medina <raquel.medina@konsulko.com>
Thu, 12 Sep 2019 12:52:39 +0000 (12:52 +0000)
- feed stack configuration data provided
by libqtappfw to the ui form;
- forward custom configuration data to
libqtappfw;
- rename staticXXXX properties to customXXXX
- introduce activeXXXX properties to keep the
stack current configuration values.
- fix always invisible placeholder text (qt) bug
by replacing TextField control with TextArea
control.

Bug-AGL: SPEC-2676
Signed-off-by: Raquel Medina <raquel.medina@konsulko.com>
Change-Id: Ib137f8e561ed54179b116acb323485b5b3382ab9

app/wired/ConfigDialog.qml
app/wired/Wired.qml

index 3244799..4d8632f 100644 (file)
@@ -28,16 +28,24 @@ Dialog {
     property alias ypos: root.y
     property alias maxpwidth: root.width
     property alias maxpheight: root.height
-    property alias staticAddress: m_staticAddress.text
-    property alias staticNetmask: m_staticNetmask.text
-    property alias staticGateway: m_staticGateway.text
-    property alias dnslist: m_dnslist.text
+    property alias customAddress: m_customAddress.text
+    property alias customNetmask: m_customNetmask.text
+    property alias customGateway: m_customGateway.text
+    property alias customNSlist: m_customNSlist.text
+
+    property string activeAddress: undefined
+    property string activeNetmask: undefined
+    property string activeGateway: undefined
+    property string activeNSList: undefined
+
+    property bool activeStatic: undefined
+    property bool activeManualNS: undefined
 
     property bool isIPv4: true
-    property bool isStatic: false
-    property bool isManualDNS: false
+    property bool isStatic: activeStatic
+    property bool isManualDNS: activeManualNS
 
-    signal finished(string svc, string ipv, string ipa, string nm, string gw, string dns)
+    signal finished(string svc, var newaa, var newna)
 
     visible: false
     z: 1
@@ -68,10 +76,10 @@ Dialog {
         isIPv4 = true
         isStatic = false
         isManualDNS = false
-        staticAddress = ""
-        staticNetmask = ""
-        staticGateway = ""
-        dnslist = ""
+        m_customAddress.clear()
+        m_customNetmask.clear()
+        m_customGateway.clear()
+        m_customNSlist.clear()
     }
 
     onIsIPv4Changed: {
@@ -86,12 +94,21 @@ Dialog {
         dnsSwitch.checked = isManualDNS
     }
 
-    onAccepted: {
+    onAccepted: readInputValues()
+    function readInputValues() {
         if (isIPv4 === false) {
             console.log("IPv6 not supported by settings application")
             setDefaultValues()
         } else {
-            finished(serviceName,"IPv4", staticAddress, staticNetmask, staticGateway, dnslist)
+            var aa = [];
+            isStatic? aa.push("manual") : aa.push("dhcp");
+            aa.push(customAddress);
+            aa.push(customNetmask);
+            aa.push(customGateway);
+            var na = [];
+            isManualDNS? na.push("manual"): na.push("auto");
+            isManualDNS? na.push(customNSlist) : na.push("");
+            root.finished(serviceName, aa, na);
         }
     }
 
@@ -99,6 +116,16 @@ Dialog {
         setDefaultValues()
     }
 
+    onRejected: {
+        isIPv4 = true
+        isStatic = activeStatic
+        isManualDNS = activeManualNS
+        customAddress.clear()
+        customNetmask.clear()
+        customGateway.clear()
+        customNSlist.clear()
+    }
+
     Item {
         id: container
         anchors.centerIn: parent
@@ -217,11 +244,12 @@ Dialog {
                         color: '#080C0F'
                         text: "address:"
                     }
-                    TextField {
-                        id: m_staticAddress
+                    TextArea {
+                        id: m_customAddress
                         font.pixelSize: 28
                         Layout.fillWidth: true
-                        placeholderText: "address"
+                        Layout.alignment: Qt.AlignLeft
+                        placeholderText: activeAddress
                     }
                 }
                 ColumnLayout {
@@ -232,11 +260,12 @@ Dialog {
                         color: '#080C0F'
                         text: "netmask:"
                     }
-                    TextField {
-                        id: m_staticNetmask
+                    TextArea {
+                        id: m_customNetmask
                         font.pixelSize: 28
                         Layout.fillWidth: true
-                        placeholderText: "netmask"
+                        Layout.alignment: Qt.AlignLeft
+                        placeholderText: activeNetmask
                     }
                 }
                 ColumnLayout {
@@ -247,11 +276,12 @@ Dialog {
                         color: '#080C0F'
                         text: "gateway:"
                     }
-                    TextField {
-                        id: m_staticGateway
+                    TextArea {
+                        id: m_customGateway
                         font.pixelSize: 28
                         Layout.fillWidth: true
-                        placeholderText: "gateway"
+                        Layout.alignment: Qt.AlignLeft
+                        placeholderText: activeGateway
                     }
                 }
             }
@@ -302,11 +332,12 @@ Dialog {
                         color: '#080C0F'
                         text: "DNS list:"
                     }
-                    TextField {
-                        id: m_dnslist
+                    TextArea {
+                        id: m_customNSlist
                         font.pixelSize: 28
                         Layout.fillWidth: true
-                        placeholderText: "List DNS semicolon separated"
+                        Layout.alignment: Qt.AlignLeft
+                        placeholderText: activeNSList
                     }
                 }
             }
index 6e3e28b..52d24cd 100644 (file)
@@ -61,6 +61,12 @@ SettingPage {
                     font.pixelSize: 18
                     text: "CONFIGURE"
                     onClicked: {
+                        customconf.activeStatic  = Qt.binding(function() { return (sroute[0] === "dhcp")? false : true })
+                        customconf.activeAddress = Qt.binding(function() { return sroute[1]? sroute[1] : "0.0.0.0" })
+                        customconf.activeNetmask = Qt.binding(function() { return sroute[2]? sroute[2] : "255.255.255.255" })
+                        customconf.activeGateway = Qt.binding(function() { return sroute[3]? sroute[3] : "0.0.0.0" })
+                        customconf.activeManualNS = Qt.binding(function() { return (nservers[0] === "auto")? false : true })
+                        customconf.activeNSList = Qt.binding(function() { return nservers[1]? nservers[1] : "0.0.0.0" })
                         customconf.open()
                    }
 
@@ -72,11 +78,31 @@ SettingPage {
                        xpos: (parent.width - maxpwidth)/2
                        ypos: (parent.height - maxpheight)
                        serviceName: service
+                       activeAddress: address
+                       activeNetmask: sroute[2]
+                       activeGateway: sroute[3]
+                       activeStatic: false
+                       activeManualNS: false
+                       activeNSList: nservers[1]
+
+                       onFinished: {
+                           if (!((sroute[0] === newaa[0]) &&
+                                 (sroute[1] === newaa[1]) &&
+                                 (sroute[2] === newaa[2]) &&
+                                 (sroute[3] === newaa[3]))) {
+                               network.configureAddress(svc, newaa);
+                           }
+
+                           if (!((nservers[0] === newna[0]) &&
+                                 (nservers[1] === newna[1]))) {
+                               network.configureNameServer(svc, newna);
+                           }
+                       }
                    }
                 }
             }
             onClicked: {
-                if ((sstate === "ready") || sstate === "online") {
+                if ((sstate === "ready") || (sstate === "online")) {
                     console.log("Disconnecting from ->", service)
                     networkNameText.font.italic = 1
                     network.disconnect(service)