diff options
author | Simon Schampijer <simon@schampijer.de> | 2009-08-18 05:59:30 (GMT) |
---|---|---|
committer | Daniel Drake <dsd@laptop.org> | 2009-12-01 17:54:33 (GMT) |
commit | 85de8e45beb078de882e2f0c6c56e99fff5ac3cd (patch) | |
tree | 1b4bb3a422d152b86ece0ba111fcee2e50cb34ff | |
parent | 3890cb055e106d4d682a5c32dd1111c35c9b1f9b (diff) |
Transmit the color of the ad-hoc network creator
The color is encoded in the essid
-rw-r--r-- | extensions/deviceicon/network.py | 31 | ||||
-rw-r--r-- | src/jarabe/desktop/meshbox.py | 30 |
2 files changed, 41 insertions, 20 deletions
diff --git a/extensions/deviceicon/network.py b/extensions/deviceicon/network.py index c68b513..a15df84 100644 --- a/extensions/deviceicon/network.py +++ b/extensions/deviceicon/network.py @@ -215,6 +215,7 @@ class WirelessDeviceView(ToolButton): self._device_props = None self._flags = 0 self._name = '' + self._mode = network.NM_802_11_MODE_UNKNOWN self._strength = 0 self._frequency = 0 self._device_state = None @@ -308,8 +309,12 @@ class WirelessDeviceView(ToolButton): self._update_properties(properties) def _update_properties(self, properties): + if 'Mode' in properties: + self._mode = properties['Mode'] + self._color = None if 'Ssid' in properties: self._name = properties['Ssid'] + self._color = None if 'Strength' in properties: self._strength = properties['Strength'] if 'Flags' in properties: @@ -317,14 +322,21 @@ class WirelessDeviceView(ToolButton): if 'Frequency' in properties: self._frequency = properties['Frequency'] - sh = sha.new() - data = self._name + hex(self._flags) - sh.update(data) - h = hash(sh.digest()) - idx = h % len(xocolor.colors) - - self._color = xocolor.XoColor('%s,%s' % (xocolor.colors[idx][0], - xocolor.colors[idx][1])) + if self._color == None: + if self._mode == network.NM_802_11_MODE_ADHOC: + encoded_color = self._name.split("#", 1) + if len(encoded_color) == 2: + self._color = xocolor.XoColor('#' + encoded_color[1]) + if self._mode == network.NM_802_11_MODE_INFRA: + sh = sha.new() + data = self._name + hex(self._flags) + sh.update(data) + h = hash(sh.digest()) + idx = h % len(xocolor.colors) + + self._color = xocolor.XoColor('%s,%s' % + (xocolor.colors[idx][0], + xocolor.colors[idx][1])) self._update() def __get_all_ap_props_reply_cb(self, properties): @@ -399,7 +411,8 @@ class WirelessDeviceView(ToolButton): def __create_connection_cb(self, palette, data=None): client = gconf.client_get_default() nick = client.get_string('/desktop/sugar/user/nick') - connection_name = _('%s\'s network') % nick + color = client.get_string('/desktop/sugar/user/color') + connection_name = _('%s\'s network %s') % (nick, color) connection = network.find_connection(connection_name) if connection is None: diff --git a/src/jarabe/desktop/meshbox.py b/src/jarabe/desktop/meshbox.py index 5e3658c..db5b71e 100644 --- a/src/jarabe/desktop/meshbox.py +++ b/src/jarabe/desktop/meshbox.py @@ -76,7 +76,7 @@ class AccessPointView(CanvasPulsingIcon): self._flags = 0 self._wpa_flags = 0 self._rsn_flags = 0 - self._mode = 0 + self._mode = network.NM_802_11_MODE_UNKNOWN self._device_caps = 0 self._device_state = None self._connection = None @@ -158,8 +158,12 @@ class AccessPointView(CanvasPulsingIcon): self._update_state() def _update_properties(self, properties): + if 'Mode' in properties: + self._mode = properties['Mode'] + self._color = None if 'Ssid' in properties: self._name = properties['Ssid'] + self._color = None if 'Strength' in properties: self._strength = properties['Strength'] if 'Flags' in properties: @@ -168,17 +172,21 @@ class AccessPointView(CanvasPulsingIcon): self._wpa_flags = properties['WpaFlags'] if 'RsnFlags' in properties: self._rsn_flags = properties['RsnFlags'] - if 'Mode' in properties: - self._mode = properties['Mode'] - - sh = sha.new() - data = self._name + hex(self._flags) - sh.update(data) - h = hash(sh.digest()) - idx = h % len(xocolor.colors) - self._color = XoColor('%s,%s' % (xocolor.colors[idx][0], - xocolor.colors[idx][1])) + if self._color == None: + if self._mode == network.NM_802_11_MODE_ADHOC: + encoded_color = self._name.split("#", 1) + if len(encoded_color) == 2: + self._color = XoColor('#' + encoded_color[1]) + if self._mode == network.NM_802_11_MODE_INFRA: + sh = sha.new() + data = self._name + hex(self._flags) + sh.update(data) + h = hash(sh.digest()) + idx = h % len(xocolor.colors) + + self._color = XoColor('%s,%s' % (xocolor.colors[idx][0], + xocolor.colors[idx][1])) self._update() |