diff options
author | Lauro Neto <lauro.neto@openbossa.org> | 2011-09-28 19:28:45 -0300 |
---|---|---|
committer | Lauro Neto <lauro.neto@openbossa.org> | 2011-09-28 19:29:09 -0300 |
commit | 740224986d019fd4644c1808a75a847886e005fd (patch) | |
tree | 6fb3160bba551c83e28cf33de03f55036744c9fe /mobility | |
parent | 979ce67d8d87b0c37edea2666063d07f1cd1806b (diff) |
Add network information
Diffstat (limited to 'mobility')
-rw-r--r-- | mobility/sysinfo/qml/NetworkPage.qml | 69 | ||||
-rw-r--r-- | mobility/sysinfo/qml/main.py | 79 |
2 files changed, 147 insertions, 1 deletions
diff --git a/mobility/sysinfo/qml/NetworkPage.qml b/mobility/sysinfo/qml/NetworkPage.qml index 6dd514d..bb44e6e 100644 --- a/mobility/sysinfo/qml/NetworkPage.qml +++ b/mobility/sysinfo/qml/NetworkPage.qml @@ -2,8 +2,75 @@ import QtQuick 1.1 import com.nokia.meego 1.0 Page { - id: networkPage + + id: page orientationLock: PageOrientation.LockLandscape anchors.margins: UiConstants.DefaultMargin + Flickable { + id: flickNetwork + anchors.fill: parent + flickableDirection: Flickable.VerticalFlick + contentHeight: colNetwork.height + toolBarLayout.height + contentWidth: flickNetwork.width + + Column { + id: colNetwork + spacing: 20 + + ButtonColumn { + id: columnNetworks + //anchors.top: parent.top + //width: parent.width + + Repeater { + model: sysinfo.networksNames + Button { + text: modelData + onClicked: { + console.log("Getting info for" + modelData); + var component = Qt.createComponent("NetworkDetails.qml"); + if (component.status == Component.Ready) { + var networkSheet = component.createObject(page, + { + "networkMode": modelData + }); + networkSheet.open(); + } else { + console.log("Component not ready"); + } + } + } + } + } + + // Cell ID stuff + Label { + text: "Cell ID: " + sysinfo.cellId() + } + + Label { + text: "Location Area Code: " + sysinfo.locationAreaCode() + } + + Label { + text: "Current Mobile Country Code: " + sysinfo.currentMCC() + } + + Label { + text: "Current Mobile Network Code: " + sysinfo.currentMNC() + } + + Label { + text: "Home Mobile Country Code: " + sysinfo.homeMCC() + } + + Label { + text: "Home Mobile Network Code: " + sysinfo.homeMNC() + } + + } + + } + } diff --git a/mobility/sysinfo/qml/main.py b/mobility/sysinfo/qml/main.py index c397b1d..a4e0d89 100644 --- a/mobility/sysinfo/qml/main.py +++ b/mobility/sysinfo/qml/main.py @@ -20,6 +20,7 @@ class SystemInfoModel(QtCore.QObject): self.setupDevice() self.setupDisplay() self.setupStorage() + self.setupNetwork() self.setupScreenSaver() @QtCore.Property(str, notify=changed) @@ -82,6 +83,10 @@ class SystemInfoModel(QtCore.QObject): def volumeNames(self): return self._volumeNames + @QtCore.Property("QStringList", notify=changed) + def networksNames(self): + return ["Wlan", "Ethernet", "Gsm", "Cdma", "Wcdma"] + @QtCore.Property(bool, notify=changed) def screenSaverInhibited(self): return self._screenSaverInhibited @@ -174,6 +179,80 @@ class SystemInfoModel(QtCore.QObject): size = '%.2fb' % bytes return size + def setupNetwork(self): + self.networkInfo = QSystemNetworkInfo() + + def modeEnumForName(self, name): + try: + mode = getattr(QSystemNetworkInfo, name.capitalize() + "Mode") + except AttributeError as e: + print e + return None + + return mode + + @QtCore.Slot(str, result=str) + def networkStatus(self, modeName): + mode = self.modeEnumForName(modeName) + status = self.networkInfo.networkStatus(mode) + statusName = str(status).split('.')[-1] + # Split the CamelCase enum name + import re + return re.sub(r'([a-z])([A-Z])', r'\1 \2', statusName) + + @QtCore.Slot(str, result=str) + def networkName(self, modeName): + mode = self.modeEnumForName(modeName) + name = self.networkInfo.networkName(mode) + return name if name else "<Unknown>" + + @QtCore.Slot(str, result=str) + def networkInterfaceName(self, modeName): + mode = self.modeEnumForName(modeName) + name = self.networkInfo.interfaceForMode(mode).humanReadableName() + return name if name else "<Unknown>" + + @QtCore.Slot(str, result=str) + def networkMacAddress(self, modeName): + mode = self.modeEnumForName(modeName) + mac = self.networkInfo.macAddress(mode) + return mac if mac else "<Unknown>" + + @QtCore.Slot(str, result=int) + def networkSignalStrength(self, modeName): + mode = self.modeEnumForName(modeName) + return self.networkInfo.networkSignalStrength(mode) + + @QtCore.Slot(result=str) + def cellId(self): + cell = self.networkInfo.cellId() + return str(cell) if cell != -1 else "<Unavailable>" + + @QtCore.Slot(result=str) + def locationAreaCode(self): + code = self.networkInfo.locationAreaCode() + return str(code) if code != -1 else "<Unavailable>" + + @QtCore.Slot(result=str) + def currentMCC(self): + code = self.networkInfo.currentMobileCountryCode() + return code if code else "<Unavailable>" + + @QtCore.Slot(result=str) + def currentMNC(self): + code = self.networkInfo.currentMobileNetworkCode() + return code if code else "<Unavailable>" + + @QtCore.Slot(result=str) + def homeMCC(self): + code = self.networkInfo.homeMobileCountryCode() + return code if code else "<Unavailable>" + + @QtCore.Slot(result=str) + def homeMNC(self): + code = self.networkInfo.homeMobileNetworkCode() + return code if code else "<Unavailable>" + def setupScreenSaver(self): self.saverInfo = QSystemScreenSaver(self) self._screenSaverInhibited = self.saverInfo.screenSaverInhibited() |