Index: sources/device/DeviceView.cpp =================================================================== diff -u -r7c35fb5c04f1ff789d09cb968a4c4a046b64a7c2 -re7c552d59935eb2a63f3dcee0a5161d19f5c7ac5 --- sources/device/DeviceView.cpp (.../DeviceView.cpp) (revision 7c35fb5c04f1ff789d09cb968a4c4a046b64a7c2) +++ sources/device/DeviceView.cpp (.../DeviceView.cpp) (revision e7c552d59935eb2a63f3dcee0a5161d19f5c7ac5) @@ -271,6 +271,10 @@ void VDevice::wifiListRequest(const QStringList &) { status( "" ); + ipAddress(""); + gateway(""); + subnetMask(""); + dns(""); wifiList({}); dataClear(); wifiListEnabled(false); @@ -544,7 +548,46 @@ subnetMask(fields[eSUBNETMASK].trimmed()); gateway(fields[eGATEWAY].trimmed()); dns(fields[eDNS2].isEmpty() ? fields[eDNS1].trimmed() : - QStringLiteral("%1,\n%2").arg(fields[eDNS1].trimmed()) + QStringLiteral("%1,%2").arg(fields[eDNS1].trimmed()) .arg(fields[eDNS2].trimmed())); } + +// ================================================= ConnectWifi +void VDevice::doInitConnectWifi() { + // Nothing for now. + connectWifi(""); +} + +void VDevice::connectWifiRequest(const QString &) { + // Nothing for now. +} + +void VDevice::doConnectWifi(const bool &vConnect, const QString &vSsid, const QString &vPassword) { + DeviceConnectWifiRequestData data; + data.mConnect = vConnect; + data.mSsid = vSsid; + data.mPassword = vPassword; + + emit didAttributeRequest(data); +} + +void VDevice::onAttributeResponse(const DeviceConnectWifiResponseData &vData) { + LOG_DEBUG(QStringLiteral("*********** onAttributeResponse : %1 %2").arg(vData.mCompleted ) + .arg(vData.mCompleted )); + + // this has to be called to let Gui to set to old value that device controller provided. + status(vData.mMessage); + accepted(vData.mAccepted); + reason (vData.mReason ); + + if ( vData.mCompleted ) { + if ( vData.mAccepted ) { + // rescan once connect/disconnect has completed + wifiListRequest({}); + } + } + + // has to be the last one + response(true); +}