diff options
author | Teemu Holappa <teemu.holappa@qt.io> | 2016-10-12 10:17:34 +0300 |
---|---|---|
committer | Teemu Holappa <teemu.holappa@qt.io> | 2016-11-04 11:26:54 +0000 |
commit | e6475dfe5a4209ad6142c2400dec6b9fc4ef5f07 (patch) | |
tree | e54a446420c01aa62dcd647854aa9402f7f687de /src/settingsui/network | |
parent | 52aa422d12aad5603891d8296e3a41ca2cb63fc9 (diff) |
Fix Wifi utils connection view
Fixed the access point selection combobox to show
the connected service properly.
Fixed layout problems when Virtual Keyboard is active.
Change-Id: Id1b05c4e12655eb93df91a78b979ad8fcf3361f5
Reviewed-by: Samuli Piippo <samuli.piippo@qt.io>
Diffstat (limited to 'src/settingsui/network')
-rw-r--r-- | src/settingsui/network/ComboBoxEntry.qml | 4 | ||||
-rw-r--r-- | src/settingsui/network/NetworkSettings.qml | 6 | ||||
-rw-r--r-- | src/settingsui/network/WifiSettings.qml | 334 |
3 files changed, 184 insertions, 160 deletions
diff --git a/src/settingsui/network/ComboBoxEntry.qml b/src/settingsui/network/ComboBoxEntry.qml index 71b997c..91655ed 100644 --- a/src/settingsui/network/ComboBoxEntry.qml +++ b/src/settingsui/network/ComboBoxEntry.qml @@ -42,6 +42,8 @@ RowLayout { property alias model: cb.model property alias count: cb.count property int titleWidth: -1 + signal activated(var index) + signal highlighted(var index) Label { id: label @@ -53,5 +55,7 @@ RowLayout { id: cb textRole: "text" Layout.fillWidth: true + onActivated: root.activated(index) + onHighlightedIndexChanged: root.highlighted(index) } } diff --git a/src/settingsui/network/NetworkSettings.qml b/src/settingsui/network/NetworkSettings.qml index 52ab1af..9385ee1 100644 --- a/src/settingsui/network/NetworkSettings.qml +++ b/src/settingsui/network/NetworkSettings.qml @@ -33,13 +33,15 @@ import QtDeviceUtilities.NetworkSettings 1.0 Item { property string title: qsTr("Network Settings") + GroupBox { id: networkSelect anchors.rightMargin: parent.width * 0.618 + anchors.left: parent.left anchors.leftMargin: 20 + anchors.top: parent.top anchors.topMargin: 20 - anchors.bottomMargin: 20 - anchors.fill: parent + title: qsTr("Select Connection") function stateToStr(serviceState) { diff --git a/src/settingsui/network/WifiSettings.qml b/src/settingsui/network/WifiSettings.qml index 7a0735c..f7cf823 100644 --- a/src/settingsui/network/WifiSettings.qml +++ b/src/settingsui/network/WifiSettings.qml @@ -37,201 +37,219 @@ Item { Component.onCompleted: NetworkSettingsManager.services.type = NetworkSettingsType.Wifi; property bool connecting: false - GroupBox { - id: content - title: qsTr("Wireless Settings") + Flickable { anchors.fill: parent + contentHeight: content.height + contentWidth: width - ColumnLayout { - spacing: 20 + GroupBox { + title: qsTr("Wireless Settings") width: parent.width - RowLayout { - spacing: 10 - id: enableSwitch + ColumnLayout { + id: content + spacing: 20 width: parent.width - Label { - Layout.preferredWidth: root.width * 0.382 - Layout.alignment: Qt.AlignVCenter - horizontalAlignment: Text.AlignRight - text: selectedInterface.powered ? qsTr("Wi-Fi ON") : qsTr("Wi-Fi OFF") - } - Switch { - checked: selectedInterface.powered - onCheckedChanged: { - selectedInterface.powered = checked - root.connecting = false - connectView.visible = false - } - } - } - RowLayout { - spacing: 10 - width: parent.width - - visible: selectedInterface.powered && networkSelection.count > 0 - Label { - Layout.preferredWidth: root.width * 0.382 - text: qsTr("Current network") - horizontalAlignment: Text.AlignRight - Layout.alignment: Qt.AlignVCenter - - } - ComboBoxEntry { - id: networkSelection - model: NetworkSettingsManager.services - - textRole: "name" - Layout.fillWidth: true - onCurrentIndexChanged: { - if (currentIndex >= 0) { - connectView.visible = false + RowLayout { + spacing: 10 + id: enableSwitch + width: parent.width - var service = model.itemFromRow(currentIndex) - if (service) { - root.connecting = true - service.connectService(); - } - } + Label { + Layout.preferredWidth: root.width * 0.382 + Layout.alignment: Qt.AlignVCenter + horizontalAlignment: Text.AlignRight + text: selectedInterface.powered ? qsTr("Wi-Fi ON") : qsTr("Wi-Fi OFF") } - - onCountChanged: { - if (count === 0) { + Switch { + checked: selectedInterface.powered + onCheckedChanged: { + selectedInterface.powered = checked root.connecting = false connectView.visible = false } } + } + RowLayout { + spacing: 10 + width: parent.width + + visible: selectedInterface.powered && networkSelection.count > 0 + Label { + Layout.preferredWidth: root.width * 0.382 + text: qsTr("Current network") + horizontalAlignment: Text.AlignRight + Layout.alignment: Qt.AlignVCenter - delegate: WifiSelectorDelegate { - width: networkSelection.width - onConnectChanged: if (connect) networkSelection.currentIndex = index } - } - } + ComboBoxEntry { + id: networkSelection + model: NetworkSettingsManager.services - Row { - id: infoRow - spacing: 10 - width: parent.width - visible: selectedInterface.powered && selectedInterface.state !== NetworkSettingsState.Online && (networkSelection.count == 0 || root.connecting) - Label { - id: scanningText - text: root.connecting ? qsTr("Connecting to the network...") : qsTr("Searching for Wi-Fi networks...") - horizontalAlignment: Text.AlignLeft - } - WifiSignalMonitor { - id: scanningIcon - scanning: true - height: scanningText.height - width: height - } - } + textRole: "name" + Layout.fillWidth: true + onActivated: { + if (index >= 0) { + connectView.visible = false - GroupBox { - id: connectView - title: qsTr("Enter a password") - visible: false - Layout.fillWidth: true - ColumnLayout { - width: parent.width + var service = model.itemFromRow(index) + if (service) { + root.connecting = true + service.connectService(); + } + } + } - RowLayout { - id: errorView - visible: text.text !== "" - spacing: 10 - property alias text: text.text + onCountChanged: { + if (count === 0) { + root.connecting = false + connectView.visible = false + } + } - Image { - source: "../icons/Alert_yellow_1x.png" - Layout.alignment: Qt.AlignVCenter + Component.onCompleted: { + networkSelection.currentIndex = model.activeRow() } - Text { - id: text - color: "#face20" - text: "" - Layout.alignment: Qt.AlignVCenter + + delegate: WifiSelectorDelegate { + width: networkSelection.width + onConnectChanged: if (connect) networkSelection.currentIndex = index } } - RowLayout { - spacing: 10 - visible: false - width: parent.width + } - Label { - text: qsTr("User name:") - horizontalAlignment: Text.AlignRight - Layout.preferredWidth: root.width * 0.382 - Layout.alignment: Qt.AlignVCenter - } - TextField { - text: "" - inputMethodHints: Qt.ImhNoPredictiveText - Layout.alignment: Qt.AlignVCenter - Layout.fillWidth: true + Row { + id: infoRow + spacing: 10 + width: parent.width + visible: selectedInterface.powered && selectedInterface.state !== NetworkSettingsState.Online + Label { + id: scanningText + text: { + if (networkSelection.count == 0) + return qsTr("Searching for Wi-Fi networks...") + else if (root.connecting) + return qsTr("Connecting to the network...") + else + return "" } + horizontalAlignment: Text.AlignLeft + } + WifiSignalMonitor { + id: scanningIcon + scanning: true + visible: scanningText.text !== "" + height: scanningText.height + width: height } - RowLayout { - spacing: 10 + } + + GroupBox { + id: connectView + title: qsTr("Enter a password") + visible: false + Layout.fillWidth: true + ColumnLayout { width: parent.width - Label { - text: qsTr("Password:") - horizontalAlignment: Text.AlignRight - Layout.preferredWidth: root.width * 0.382 - Layout.alignment: Qt.AlignVCenter + RowLayout { + id: errorView + visible: text.text !== "" + spacing: 10 + property alias text: text.text + + Image { + source: "../icons/Alert_yellow_1x.png" + Layout.alignment: Qt.AlignVCenter + } + Text { + id: text + color: "#face20" + text: "" + Layout.alignment: Qt.AlignVCenter + } } - TextField { - id: password - text: "" - echoMode: TextInput.Password - inputMethodHints: Qt.ImhNoPredictiveText | Qt.ImhNoAutoUppercase | Qt.ImhPreferLowercase | Qt.ImhSensitiveData - Layout.alignment: Qt.AlignVCenter - Layout.fillWidth: true + RowLayout { + spacing: 10 + visible: false + width: parent.width + + Label { + text: qsTr("User name:") + horizontalAlignment: Text.AlignRight + Layout.preferredWidth: root.width * 0.382 + Layout.alignment: Qt.AlignVCenter + } + TextField { + text: "" + inputMethodHints: Qt.ImhNoPredictiveText + Layout.alignment: Qt.AlignVCenter + Layout.fillWidth: true + } } - } - RowLayout { - spacing: 10 + RowLayout { + spacing: 10 + width: parent.width - Button { - text: qsTr("Connect") - onClicked: { - connectView.visible = false - NetworkSettingsManager.userAgent.setUserCredentials("", password.text) + Label { + text: qsTr("Password:") + horizontalAlignment: Text.AlignRight + Layout.preferredWidth: root.width * 0.382 + Layout.alignment: Qt.AlignVCenter + } + TextField { + id: password + text: "" + echoMode: TextInput.Password + inputMethodHints: Qt.ImhNoPredictiveText | Qt.ImhNoAutoUppercase | Qt.ImhPreferLowercase | Qt.ImhSensitiveData + Layout.alignment: Qt.AlignVCenter + Layout.fillWidth: true } } - Button { - text: qsTr("Cancel") - onClicked: { - networkSelection.currentIndex = -1 - connectView.visible = false + RowLayout { + spacing: 10 + + Button { + text: qsTr("Connect") + onClicked: { + connectView.visible = false + NetworkSettingsManager.userAgent.setUserCredentials("", password.text) + } + } + Button { + text: qsTr("Cancel") + onClicked: { + networkSelection.currentIndex = -1 + connectView.visible = false + } } } } } - } - Button { - id: disconnect - text: qsTr("Disconnect") - visible: selectedInterface.state === NetworkSettingsState.Online || - selectedInterface.state === NetworkSettingsState.Ready - onClicked: { - console.log("disconnect"); - NetworkSettingsManager.services.itemFromRow(networkSelection.selectedIndex).disconnectService(); - networkSelection.selectedIndex = -1; + Button { + id: disconnect + text: qsTr("Disconnect") + visible: selectedInterface.state === NetworkSettingsState.Online || + selectedInterface.state === NetworkSettingsState.Ready + onClicked: { + NetworkSettingsManager.services.itemFromRow(networkSelection.currentIndex).disconnectService(); + networkSelection.currentIndex = -1; + root.connecting = false + } } } - } - Connections { - target: NetworkSettingsManager.userAgent - onShowUserCredentialsInput : { - connectView.visible = true - root.connecting = false - } - onError: { - errorView.visible = true - connectView.visible = true - root.connecting = false + Connections { + target: NetworkSettingsManager.userAgent + onShowUserCredentialsInput : { + connectView.visible = true + root.connecting = false + } + onError: { + errorView.visible = true + connectView.visible = true + root.connecting = false + } } } } |