Index: sources/gui/qml/pages/settings/SettingsWiFi.qml =================================================================== diff -u -reef9123ceaee66f3388871b4eebd23d7e6e905e7 -r7360f85ae13ee2a460ddfb11bc455203d6edf3ff --- sources/gui/qml/pages/settings/SettingsWiFi.qml (.../SettingsWiFi.qml) (revision eef9123ceaee66f3388871b4eebd23d7e6e905e7) +++ sources/gui/qml/pages/settings/SettingsWiFi.qml (.../SettingsWiFi.qml) (revision 7360f85ae13ee2a460ddfb11bc455203d6edf3ff) @@ -23,6 +23,7 @@ import "qrc:/compounds" import "qrc:/components" import "qrc:/pages" +import "qrc:/dialogs" /*! * \brief SettingsWiFi @@ -245,11 +246,9 @@ onClicked : { if( wifiSupported ) { - _userConfirmation.isPassword = ! wifiConnected - _userConfirmation.ssid = wifiSsid - _userConfirmation.macAddress = wifiMacAddress - push( _userConfirmation ) - _userConfirmation.setFocus() + _wifiConfirmDialog.isPassword = ! wifiConnected + _wifiConfirmDialog.ssid = wifiSsid + _wifiConfirmDialog.open() } } } @@ -267,23 +266,52 @@ } } - UserConfirmation { id : _userConfirmation - property string ssid : "" - property string macAddress : "" - property string separator : "\n" + ConfirmDialog { id: _wifiConfirmDialog + property bool isPassword : false + property string ssid : "" + property string separator : "\n" readonly property string spaceSeparator : " " - notificationText : vDevice.status - message : qsTr("Do you want to disconnect from `%1`?").arg(ssid) - title : isPassword ? qsTr("Join") + separator + ssid + spaceSeparator + qsTr("Password") : qsTr("Disconnect") + separator + ssid - onConfirmClicked : { + height : Variables.completeDialogHeight - 130 // need to make room for keyboard + width : Variables.completeDialogWidth + y : 0 + titleText : isPassword ? qsTr("Join") + separator + ssid : + qsTr("Disconnect") + separator + ssid + messageText : isPassword ? qsTr("Password") : qsTr("Do you want to disconnect from `%1`?").arg(ssid) + messageTextPixel : Fonts.fontPixelTextRectExtra + notificationText : vDevice.status + + Item { id: _passwordItem + readonly property string passwordCurrent : _passwordEntry.textInput.text + visible : _wifiConfirmDialog.isPassword + anchors.centerIn: parent + + TextEntry { id: _passwordEntry + clip : true + textInput .width : 450 + textInput.inputMethodHints : Qt.ImhNone + textInput.echoMode : TextInput.Password + anchors.horizontalCenter : parent.horizontalCenter + label.text : "" + label.width : 0 + lengthMax : 30 + + onTextChanged: { + // Replace non-ASCII characters as they are typed in + var filtered = text.replace(/[^\x00-\x7F]/g, "") + if (text !== filtered) { text = filtered } // revert invalid characters + } + } + + onVisibleChanged: if ( visible ) _passwordEntry.textInput.forceActiveFocus() + } + + onAccepted : { if ( isPassword ) { - if( passwordCurrent.length > 0 ) { - vDevice.doWifiConnect( true, ssid, passwordCurrent ) - pop() + if( _passwordItem.passwordCurrent.length > 0 ) { + vDevice.doWifiConnect( true, ssid, _passwordItem.passwordCurrent ) } } else { vDevice.doWifiConnect( false, ssid, "" ) - pop() } } }