Index: sources/device/DeviceController.cpp =================================================================== diff -u -re7c552d59935eb2a63f3dcee0a5161d19f5c7ac5 -r4738eb7857cb8fe9c49a9be4e211edc11e764a33 --- sources/device/DeviceController.cpp (.../DeviceController.cpp) (revision e7c552d59935eb2a63f3dcee0a5161d19f5c7ac5) +++ sources/device/DeviceController.cpp (.../DeviceController.cpp) (revision 4738eb7857cb8fe9c49a9be4e211edc11e764a33) @@ -1118,8 +1118,9 @@ timedProcess->start(); MDeviceConnectWifiResponse model; + model._data.mConnect = vData.mConnect; model._data.mAccepted = false; - model._data.mMessage = vData.mConnect ? tr("Connecting to Wifi.") : tr("Disconnecting to Wifi"); + model._data.mMessage = vData.mConnect ? tr("Connecting to Wifi.") : tr("Disconnecting to Wifi."); emit didAttributeResponse(model.data()); } Index: sources/device/DeviceModels.cpp =================================================================== diff -u -r6c1e7ff26ce49512b1d63623f7e8dd61dea831a0 -r4738eb7857cb8fe9c49a9be4e211edc11e764a33 --- sources/device/DeviceModels.cpp (.../DeviceModels.cpp) (revision 6c1e7ff26ce49512b1d63623f7e8dd61dea831a0) +++ sources/device/DeviceModels.cpp (.../DeviceModels.cpp) (revision 4738eb7857cb8fe9c49a9be4e211edc11e764a33) @@ -317,13 +317,8 @@ _data.mAccepted = false; _data.mReason = Device::DeviceError::eDevice_OK; - // set as default if the val is invalid. - _data.mConnectResult = ""; + ok = true; - // get the value - QString val = vByteArray; - ok = ! val.isNull() && val.isSimpleText(); - // check if the vExitCode passed and it has a value other than zero if ( ! ok ){ _data.mReason = Device::DeviceError::eDevice_Scripts_Error_Incorrect_Rsp_Type ; goto lError; } // there is not a valid value if ( vExitCode && *vExitCode ){ _data.mReason = Device::DeviceError::eDevice_ConnectWifi_Error ; goto lApply; } // there still a valid value @@ -335,7 +330,6 @@ // apply returned value in case the passed value is valid (type, range) // regardless of the exit code (success, fail) lApply: - _data.mConnectResult = val; goto lOut; // immediate exit on fail exitcode and invalid returned value. Index: sources/device/DeviceModels.h =================================================================== diff -u -r6c1e7ff26ce49512b1d63623f7e8dd61dea831a0 -r4738eb7857cb8fe9c49a9be4e211edc11e764a33 --- sources/device/DeviceModels.h (.../DeviceModels.h) (revision 6c1e7ff26ce49512b1d63623f7e8dd61dea831a0) +++ sources/device/DeviceModels.h (.../DeviceModels.h) (revision 4738eb7857cb8fe9c49a9be4e211edc11e764a33) @@ -461,7 +461,7 @@ class MDeviceConnectWifiResponse : public MDeviceResponseBase { public: struct Data : MDeviceResponseBase::Data { - QString mConnectResult = ""; + bool mConnect = false; } _data; QVariantList parameters ( ) const override { return { }; } QString infoText ( ) const override { return QString("ConnectWifi"); } Index: sources/device/DeviceView.cpp =================================================================== diff -u -r6c1e7ff26ce49512b1d63623f7e8dd61dea831a0 -r4738eb7857cb8fe9c49a9be4e211edc11e764a33 --- sources/device/DeviceView.cpp (.../DeviceView.cpp) (revision 6c1e7ff26ce49512b1d63623f7e8dd61dea831a0) +++ sources/device/DeviceView.cpp (.../DeviceView.cpp) (revision 4738eb7857cb8fe9c49a9be4e211edc11e764a33) @@ -520,6 +520,7 @@ accepted(vData.mAccepted); reason (vData.mReason ); + status (vData.mMessage ); // has to be the last one response(true); @@ -572,13 +573,16 @@ } void VDevice::onAttributeResponse(const DeviceConnectWifiResponseData &vData) { - if ( vData.mCompleted ) { - // signal rescan once connect/disconnect has completed - connectWifi(true); + if ( vData.mCompleted ) { + if ( vData.mAccepted ) { + // rescan once connect/disconnect has completed + doInitWifiList(); + connectWifi(true); + status(vData.mConnect ? "WiFi Connected" : "WiFi Disconnected"); + } } - // this has to be called to let Gui to set to old value that device controller provided. - status (vData.mMessage); + status (vData.mMessage ); accepted(vData.mAccepted); reason (vData.mReason ); Index: sources/gui/qml/pages/settings/SettingsWiFi.qml =================================================================== diff -u -r39cf67206cb217ab6b0ce898bd74d954fe98dc54 -r4738eb7857cb8fe9c49a9be4e211edc11e764a33 --- sources/gui/qml/pages/settings/SettingsWiFi.qml (.../SettingsWiFi.qml) (revision 39cf67206cb217ab6b0ce898bd74d954fe98dc54) +++ sources/gui/qml/pages/settings/SettingsWiFi.qml (.../SettingsWiFi.qml) (revision 4738eb7857cb8fe9c49a9be4e211edc11e764a33) @@ -157,6 +157,7 @@ onIsConnectedChanged: { if ( isConnected ) { _ssidText.text = wifiSsid + vDevice.status = "WiFi Connected to " + wifiSsid } } @@ -236,12 +237,5 @@ _ssidText.text = "" } } - - // slot to trigger wifi recan when connect/disconnect has finished - function onConnectWifiChanged ( vValue ) { - if (vValue) { - vDevice.wifiList = "" - } - } } }