diff options
author | Marco 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) |
commit | a2f59e332d16c664e4c62982e2e451e483251ef3 (patch) | |
tree | 06fc754f56e641d77722ba2dd2125e192e2d44d5 /src | |
parent | 17d797ea4e9b35f57b42c99eb197ad301dadbb01 (diff) |
Get the lock badge to work, some view cleanups.
Diffstat (limited to 'src')
-rw-r--r-- | src/jarabe/desktop/meshbox.py | 116 | ||||
-rw-r--r-- | src/jarabe/model/Makefile.am | 1 | ||||
-rw-r--r-- | src/jarabe/model/network.py | 16 |
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' |