Index: sources/gui/qml/pages/settings/SettingsWiFi.qml =================================================================== diff -u -r39a17b342040431504af6cfe4669d3b445b7c5cc -r247f91d8ee35391abf611248ba8ae3d64de5341b --- sources/gui/qml/pages/settings/SettingsWiFi.qml (.../SettingsWiFi.qml) (revision 39a17b342040431504af6cfe4669d3b445b7c5cc) +++ sources/gui/qml/pages/settings/SettingsWiFi.qml (.../SettingsWiFi.qml) (revision 247f91d8ee35391abf611248ba8ae3d64de5341b) @@ -171,7 +171,6 @@ anchors.rightMargin : _root.rightMargin delegate : TouchRect { id : _delegate - readonly property bool isNetworkSupported : isSecurityTypeSupported readonly property color networkDelegateTextColor : isNetworkSupported ? Colors.textMain : Colors.textDisableButton readonly property string postSecurityTypeLabel : isNetworkSupported ? " " : qsTr("- Not Supported") property bool isCurrrentNetwork : vNetwork.macAddress === macAddress Index: sources/model/settings/MWifiNetwork.h =================================================================== diff -u -rc9f8f8cf3c6c37fc6460d8675c62c9442c4d4263 -r247f91d8ee35391abf611248ba8ae3d64de5341b --- sources/model/settings/MWifiNetwork.h (.../MWifiNetwork.h) (revision c9f8f8cf3c6c37fc6460d8675c62c9442c4d4263) +++ sources/model/settings/MWifiNetwork.h (.../MWifiNetwork.h) (revision 247f91d8ee35391abf611248ba8ae3d64de5341b) @@ -184,16 +184,27 @@ _macAddress = vMacAddress; } + bool requirePassword() const { + return _requirePassword; + } + + void requirePassword( const bool vRequirePassword ) { + _requirePassword = vRequirePassword; + } explicit Data() {} explicit Data(const QString &vMacAddress) { _macAddress = vMacAddress; } - explicit Data(const QString &vMacAddress, const QString &vSSID, const QList &vSecurityTypes, const STATUS &vStatus, const int &vSignalLevel) { + explicit Data(const QString &vMacAddress, const QString &vSSID, const QList &vSecurityTypes, const STATUS &vStatus, const int &vSignalLevel) + : Data(vMacAddress, vSSID, vSecurityTypes, vStatus, vSignalLevel, true) + {} + + explicit Data(const QString &vMacAddress, const QString &vSSID, const QList &vSecurityTypes, const STATUS &vStatus, const int &vSignalLevel, const bool vIsRequirePassword) { _macAddress = vMacAddress; _ssid = vSSID; _securityTypes = vSecurityTypes; _status = vStatus; _signalLevel = convertSignalLevel(vSignalLevel); + _requirePassword = vIsRequirePassword; } - void clearSettings() { mIPSettings.mIPAddress = ""; mIPSettings.mDNS = ""; @@ -205,6 +216,7 @@ _securityTypes.clear(); _status = NOT_CONNECTED; _signalLevel = NO_SIGNAL; + _requirePassword = false; } private: @@ -213,6 +225,7 @@ QList _securityTypes; SIGNAL_LEVEL _signalLevel = NO_SIGNAL; STATUS _status = NOT_CONNECTED; + bool _requirePassword = false; }; }; Index: sources/view/settings/VNetworkModel.cpp =================================================================== diff -u -rd4c0956d5487d3674429d72fe85dd75692b6d91f -r247f91d8ee35391abf611248ba8ae3d64de5341b --- sources/view/settings/VNetworkModel.cpp (.../VNetworkModel.cpp) (revision d4c0956d5487d3674429d72fe85dd75692b6d91f) +++ sources/view/settings/VNetworkModel.cpp (.../VNetworkModel.cpp) (revision 247f91d8ee35391abf611248ba8ae3d64de5341b) @@ -168,9 +168,12 @@ return network.status(); case SignalLevelRole: return network.signalLevel(); - case SecurityTypeSupportedRole: - return (!network.securityTypes().contains(MWifiNetwork::SECURITY_TYPE::WEP) && - !network.securityTypes().contains(MWifiNetwork::SECURITY_TYPE::UNSUPPORTED)); + case NetworkSupportedRole: { + bool isSecurityTypeSupported = (!network.securityTypes().contains(MWifiNetwork::SECURITY_TYPE::WEP) && + !network.securityTypes().contains(MWifiNetwork::SECURITY_TYPE::UNSUPPORTED)); + bool isPasswordProtected = network.requirePassword(); + return isSecurityTypeSupported && isPasswordProtected; + } } return QVariant(); @@ -188,7 +191,7 @@ roles[SecurityTypesRole] = "securityTypes"; roles[StatusRole] = "status"; roles[SignalLevelRole] = "signalLevel"; - roles[SecurityTypeSupportedRole] = "isSecurityTypeSupported"; + roles[NetworkSupportedRole] = "isNetworkSupported"; return roles; } Index: sources/view/settings/VNetworkModel.h =================================================================== diff -u -rd4c0956d5487d3674429d72fe85dd75692b6d91f -r247f91d8ee35391abf611248ba8ae3d64de5341b --- sources/view/settings/VNetworkModel.h (.../VNetworkModel.h) (revision d4c0956d5487d3674429d72fe85dd75692b6d91f) +++ sources/view/settings/VNetworkModel.h (.../VNetworkModel.h) (revision 247f91d8ee35391abf611248ba8ae3d64de5341b) @@ -64,7 +64,8 @@ SecurityTypesRole, StatusRole, SignalLevelRole, - SecurityTypeSupportedRole, + NetworkSupportedRole, + }; void addNetwork (const WifiNetworkData &network); Index: sources/wifi/WifiInterface.cpp =================================================================== diff -u -rc5fedfe70f4366404bd631205048f5270bc568fe -r247f91d8ee35391abf611248ba8ae3d64de5341b --- sources/wifi/WifiInterface.cpp (.../WifiInterface.cpp) (revision c5fedfe70f4366404bd631205048f5270bc568fe) +++ sources/wifi/WifiInterface.cpp (.../WifiInterface.cpp) (revision 247f91d8ee35391abf611248ba8ae3d64de5341b) @@ -352,7 +352,7 @@ securityTypes.append(securityType); } - WifiNetworkData network(macAddress, ssid, securityTypes, MWifiNetwork::STATUS::NOT_CONNECTED, signalLevel); + WifiNetworkData network(macAddress, ssid, securityTypes, MWifiNetwork::STATUS::NOT_CONNECTED, signalLevel, requiresKey); networks.append(network); emit didAddNetwork(network); }