Web   ·   Wiki   ·   Activities   ·   Blog   ·   Lists   ·   Chat   ·   Meeting   ·   Bugs   ·   Git   ·   Translate   ·   Archive   ·   People   ·   Donate
summaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorMarco Pesenti Gritti <mpgritti@gmail.com>2008-10-22 09:21:35 (GMT)
committer Marco Pesenti Gritti <mpgritti@gmail.com>2008-10-22 09:21:35 (GMT)
commita2f59e332d16c664e4c62982e2e451e483251ef3 (patch)
tree06fc754f56e641d77722ba2dd2125e192e2d44d5 /src
parent17d797ea4e9b35f57b42c99eb197ad301dadbb01 (diff)
Get the lock badge to work, some view cleanups.
Diffstat (limited to 'src')
-rw-r--r--src/jarabe/desktop/meshbox.py116
-rw-r--r--src/jarabe/model/Makefile.am1
-rw-r--r--src/jarabe/model/network.py16
3 files changed, 67 insertions, 66 deletions
diff --git a/src/jarabe/desktop/meshbox.py b/src/jarabe/desktop/meshbox.py
index 83d0ba6..414fe53 100644
--- a/src/jarabe/desktop/meshbox.py
+++ b/src/jarabe/desktop/meshbox.py
@@ -40,6 +40,7 @@ from jarabe.view.pulsingicon import CanvasPulsingIcon
from jarabe.desktop.snowflakelayout import SnowflakeLayout
from jarabe.desktop.spreadlayout import SpreadLayout
from jarabe.model import bundleregistry
+from jarabe.model import network
_NM_SERVICE = 'org.freedesktop.NetworkManager'
_NM_IFACE = 'org.freedesktop.NetworkManager'
@@ -48,19 +49,6 @@ _NM_DEVICE_IFACE = 'org.freedesktop.NetworkManager.Device'
_NM_WIRELESS_IFACE = 'org.freedesktop.NetworkManager.Device.Wireless'
_NM_ACCESSPOINT_IFACE = 'org.freedesktop.NetworkManager.AccessPoint'
-_DEVICE_TYPE_802_11_WIRELESS = 2
-
-_DEVICE_STATE_UNKNOWN = 0
-_DEVICE_STATE_UNMANAGED = 1
-_DEVICE_STATE_UNAVAILABLE = 2
-_DEVICE_STATE_DISCONNECTED = 3
-_DEVICE_STATE_PREPARE = 4
-_DEVICE_STATE_CONFIG = 5
-_DEVICE_STATE_NEED_AUTH = 6
-_DEVICE_STATE_IP_CONFIG = 7
-_DEVICE_STATE_ACTIVATED = 8
-_DEVICE_STATE_FAILED = 9
-
_ICON_NAME = 'network-wireless'
class AccessPointView(CanvasPulsingIcon):
@@ -75,7 +63,7 @@ class AccessPointView(CanvasPulsingIcon):
self._greyed_out = False
self._name = ''
self._strength = 0
- self._caps = 0
+ self._flags = 0
self._state = None
self.connect('activated', self._activate_cb)
@@ -106,6 +94,27 @@ class AccessPointView(CanvasPulsingIcon):
path=device.object_path,
dbus_interface=_NM_DEVICE_IFACE)
+ def _create_palette(self):
+ icon_name = get_icon_state(_ICON_NAME, self._strength)
+ palette_icon = Icon(icon_name=icon_name,
+ icon_size=style.STANDARD_ICON_SIZE,
+ badge_name=self.props.badge_name)
+ palette_icon.props.xo_color = XoColor('%s,%s' % self._compute_color())
+
+ p = palette.Palette(primary_text=self._name,
+ icon=palette_icon)
+
+ self._connect_item = MenuItem(_('Connect'), 'dialog-ok')
+ self._connect_item.connect('activate', self._activate_cb)
+ p.menu.append(self._connect_item)
+
+ self._disconnect_item = MenuItem(_('Disconnect'), 'media-eject')
+ self._disconnect_item.connect('activate',
+ self._disconnect_activate_cb)
+ p.menu.append(self._disconnect_item)
+
+ return p
+
def __state_changed_cb(self, state):
self._state = state
self._update()
@@ -116,13 +125,13 @@ class AccessPointView(CanvasPulsingIcon):
def _update_properties(self, props):
self._name = props['Ssid']
self._strength = props['Strength']
- self._caps = props['Flags']
+ self._flags = props['Flags']
self._update()
def _compute_color(self):
sh = sha.new()
- data = self._name + hex(self._caps)
+ data = self._name + hex(self._flags)
sh.update(data)
h = hash(sh.digest())
idx = h % len(xocolor.colors)
@@ -144,78 +153,47 @@ class AccessPointView(CanvasPulsingIcon):
logging.debug('Error getting the access point properties: %s', err)
def _update(self):
- #self.props.badge_name = "emblem-favorite"
- #self.props.badge_name = "emblem-locked"
-
- self._update_icon()
- self._update_name()
- self._update_state()
-
- def _create_palette(self):
- icon_name = get_icon_state(_ICON_NAME, self._strength)
- palette_icon = Icon(icon_name=icon_name,
- icon_size=style.STANDARD_ICON_SIZE,
- badge_name=self.props.badge_name)
- palette_icon.props.xo_color = XoColor('%s,%s' % self._compute_color())
-
- p = palette.Palette(primary_text=self._name,
- icon=palette_icon)
-
- self._connect_item = MenuItem(_('Connect'), 'dialog-ok')
- self._connect_item.connect('activate', self._activate_cb)
- p.menu.append(self._connect_item)
-
- self._disconnect_item = MenuItem(_('Disconnect'), 'media-eject')
- self._disconnect_item.connect('activate',
- self._disconnect_activate_cb)
- p.menu.append(self._disconnect_item)
-
- return p
-
- def _disconnect_activate_cb(self, item):
- pass
-
- def _activate_cb(self, icon):
- pass
-
- def _update_name(self):
- self._palette.props.primary_text = self._name
-
- def _update_icon(self):
- # keep this code in sync with view/devices/network/wireless.py
- strength = self._strength
- if self._state == _DEVICE_STATE_ACTIVATED:
+ print self._name, self._state
+ if self._state == network.DEVICE_STATE_ACTIVATED:
icon_name = '%s-connected' % _ICON_NAME
else:
icon_name = _ICON_NAME
- icon_name = get_icon_state(icon_name, strength)
+
+ icon_name = get_icon_state(icon_name, self._strength)
if icon_name:
self.props.icon_name = icon_name
icon = self._palette.props.icon
icon.props.icon_name = icon_name
+ if self._flags == network.AP_FLAGS_802_11_PRIVACY:
+ self.props.badge_name = "emblem-locked"
+ else:
+ self.props.badge_name = None
+
+ self._palette.props.primary_text = self._name
+
+ self._update_state()
+
def _update_state(self):
- if self._state is _DEVICE_STATE_PREPARE or \
- self._state is _DEVICE_STATE_CONFIG or \
- self._state is _DEVICE_STATE_NEED_AUTH or \
- self._state is _DEVICE_STATE_IP_CONFIG:
+ if self._state is network.DEVICE_STATE_PREPARE or \
+ self._state is network.DEVICE_STATE_CONFIG or \
+ self._state is network.DEVICE_STATE_NEED_AUTH or \
+ self._state is network.DEVICE_STATE_IP_CONFIG:
if self._disconnect_item:
self._disconnect_item.show()
self._connect_item.hide()
self._palette.props.secondary_text = _('Connecting...')
self.props.pulsing = True
- elif self._state == _DEVICE_STATE_ACTIVATED:
+ elif self._state == network.DEVICE_STATE_ACTIVATED:
if self._disconnect_item:
self._disconnect_item.show()
self._connect_item.hide()
- # TODO: show the channel number
self._palette.props.secondary_text = _('Connected')
self.props.pulsing = False
else:
if self._disconnect_item:
self._disconnect_item.hide()
self._connect_item.show()
- # TODO: show the channel number
self._palette.props.secondary_text = None
self.props.pulsing = False
@@ -225,6 +203,12 @@ class AccessPointView(CanvasPulsingIcon):
else:
self.props.base_color = XoColor('%s,%s' % self._compute_color())
+ def _disconnect_activate_cb(self, item):
+ pass
+
+ def _activate_cb(self, icon):
+ pass
+
def set_filter(self, query):
self._greyed_out = self._name.lower().find(query) == -1
self._update_state()
@@ -495,7 +479,7 @@ class NetworkManagerObserver(object):
props = dbus.Interface(device, 'org.freedesktop.DBus.Properties')
device_type = props.Get(_NM_DEVICE_IFACE, 'DeviceType')
- if device_type == _DEVICE_TYPE_802_11_WIRELESS:
+ if device_type == network.DEVICE_TYPE_802_11_WIRELESS:
self._devices[device_o] = DeviceObserver(self._box, device)
def _get_device_path_error_cb(self, err):
diff --git a/src/jarabe/model/Makefile.am b/src/jarabe/model/Makefile.am
index d968602..9ab6779 100644
--- a/src/jarabe/model/Makefile.am
+++ b/src/jarabe/model/Makefile.am
@@ -7,6 +7,7 @@ sugar_PYTHON = \
invites.py \
owner.py \
neighborhood.py \
+ network.py \
shell.py \
screen.py \
session.py \
diff --git a/src/jarabe/model/network.py b/src/jarabe/model/network.py
index dcfc71e..1b99806 100644
--- a/src/jarabe/model/network.py
+++ b/src/jarabe/model/network.py
@@ -18,6 +18,22 @@ import dbus
from sugar import dispatch
+DEVICE_TYPE_802_11_WIRELESS = 2
+
+DEVICE_STATE_UNKNOWN = 0
+DEVICE_STATE_UNMANAGED = 1
+DEVICE_STATE_UNAVAILABLE = 2
+DEVICE_STATE_DISCONNECTED = 3
+DEVICE_STATE_PREPARE = 4
+DEVICE_STATE_CONFIG = 5
+DEVICE_STATE_NEED_AUTH = 6
+DEVICE_STATE_IP_CONFIG = 7
+DEVICE_STATE_ACTIVATED = 8
+DEVICE_STATE_FAILED = 9
+
+AP_FLAGS_802_11_NONE = 0
+AP_FLAGS_802_11_PRIVACY = 1
+
NM_SETTINGS_PATH = '/org/freedesktop/NetworkManagerSettings'
NM_SETTINGS_IFACE = 'org.freedesktop.NetworkManagerSettings'
NM_CONNECTION_IFACE = 'org.freedesktop.NetworkManagerSettings.Connection'