summaryrefslogtreecommitdiffstats
path: root/src/imports/wifi/qwifinetworklistmodel.cpp
diff options
context:
space:
mode:
authorKalle Viironen <kalle.viironen@digia.com>2014-05-26 13:53:13 +0300
committerKalle Viironen <kalle.viironen@digia.com>2014-05-26 13:53:20 +0300
commit5cdc15a7b82b7adfd4c5cae85ffb4327593dd076 (patch)
tree342fa9523f5400f4ecbcf6fde169021fabaff500 /src/imports/wifi/qwifinetworklistmodel.cpp
parent9627172876cd2a387d44b5a9a6ce0a3867ebc730 (diff)
parent5c160b6fe916e5605eaa1fd8394b62527ff9f997 (diff)
Merge branch 'stable' into releaseQtEE_v3.0.0
* stable: (25 commits) Add notes about Quick Compiler failures doc: Updated versions and supported platforms doc: Updated links to Qt EE known issues and product page Doc: Warn the user that his Nexus will be wiped. doc: move adb connection change info to customization Build wifi also on eLinux Don't show Wi-Fi group box on iMX6-eAndroid Fix class names for WebEngine Doc: add note about webengine's widget apis Doc: add change log for version 3.0.0 doc: include sabre sd documentation Doc: Add setup instructions for Nexus 7 (2013) Set initial "backend ready" state. Port QtWifi to eLinux Add a note about webengine and emulator Doc: Update version Doc: Add table with all possible MACHINE values Doc: QT_QPA_EVDEV_TOUCHSCREEN_PARAMETERS replaces QT_QPA_GENERIC_PLUGINS Doc: Use precise naming for Boundary Devices i.MX6 Add PowerManager service. ... Change-Id: I2762dfe023d461b677d7ed748c33444145d35175
Diffstat (limited to 'src/imports/wifi/qwifinetworklistmodel.cpp')
-rw-r--r--src/imports/wifi/qwifinetworklistmodel.cpp13
1 files changed, 7 insertions, 6 deletions
diff --git a/src/imports/wifi/qwifinetworklistmodel.cpp b/src/imports/wifi/qwifinetworklistmodel.cpp
index 4fbf25f..f95af36 100644
--- a/src/imports/wifi/qwifinetworklistmodel.cpp
+++ b/src/imports/wifi/qwifinetworklistmodel.cpp
@@ -88,14 +88,15 @@ void QWifiNetworkListModel::parseScanResults(const QByteArray &results)
QWifiNetwork *knownNetwork = networkForSSID(info.at(4), &pos);
if (!knownNetwork)
knownNetwork = outOfRangeListContains(info.at(4));
-
+ // signal strength is in dBm. Deprecated, but still widely used "wext"
+ // wifi driver reports positive values for signal strength, we workaround that.
+ int signalStrength = qAbs(info.at(2).trimmed().toInt()) * -1;
if (!knownNetwork) {
QWifiNetwork *network = new QWifiNetwork();
network->setOutOfRange(false);
network->setBssid(info.at(0));
network->setFlags(info.at(3));
- // signal strength is in dBm
- network->setSignalStrength(info.at(2).toInt());
+ network->setSignalStrength(signalStrength);
network->setSsid(info.at(4));
beginInsertRows(QModelIndex(), m_networks.size(), m_networks.size());
m_networks << network;
@@ -112,15 +113,15 @@ void QWifiNetworkListModel::parseScanResults(const QByteArray &results)
// ssids are the same, compare bssids..
if (knownNetwork->bssid() == info.at(0)) {
// same access point, simply update the signal strength
- knownNetwork->setSignalStrength(info.at(2).toInt());
+ knownNetwork->setSignalStrength(signalStrength);
knownNetwork->setOutOfRange(false);
dataChanged(createIndex(pos, 0), createIndex(pos, 0));
- } else if (knownNetwork->signalStrength() < info.at(2).toInt()) {
+ } else if (knownNetwork->signalStrength() < signalStrength) {
// replace with a stronger access point within the same network
m_networks.at(pos)->setOutOfRange(false);
m_networks.at(pos)->setBssid(info.at(0));
m_networks.at(pos)->setFlags(info.at(3));
- m_networks.at(pos)->setSignalStrength(info.at(2).toInt());
+ m_networks.at(pos)->setSignalStrength(signalStrength);
m_networks.at(pos)->setSsid(info.at(4));
dataChanged(createIndex(pos, 0), createIndex(pos, 0));
}