aboutsummaryrefslogtreecommitdiffstats
path: root/mobility
diff options
context:
space:
mode:
authorLauro Neto <lauro.neto@openbossa.org>2011-09-28 19:28:45 -0300
committerLauro Neto <lauro.neto@openbossa.org>2011-09-28 19:29:09 -0300
commit740224986d019fd4644c1808a75a847886e005fd (patch)
tree6fb3160bba551c83e28cf33de03f55036744c9fe /mobility
parent979ce67d8d87b0c37edea2666063d07f1cd1806b (diff)
Add network information
Diffstat (limited to 'mobility')
-rw-r--r--mobility/sysinfo/qml/NetworkPage.qml69
-rw-r--r--mobility/sysinfo/qml/main.py79
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()