diff --git a/src/jarabe/desktop/meshbox.py b/src/jarabe/desktop/meshbox.py
index eaf2792..c95956b 100644
a
|
b
|
class AccessPointView(CanvasPulsingIcon): |
61 | 61 | self._bus = dbus.SystemBus() |
62 | 62 | self._device = device |
63 | 63 | self._model = model |
| 64 | self._palette_icon = None |
64 | 65 | self._disconnect_item = None |
65 | 66 | self._connect_item = None |
66 | 67 | self._greyed_out = False |
… |
… |
class AccessPointView(CanvasPulsingIcon): |
70 | 71 | self._wpa_flags = 0 |
71 | 72 | self._device_state = None |
72 | 73 | self._active = True |
| 74 | self._color = None |
73 | 75 | |
74 | 76 | self.connect('activated', self._activate_cb) |
75 | 77 | |
… |
… |
class AccessPointView(CanvasPulsingIcon): |
108 | 110 | |
109 | 111 | def _create_palette(self): |
110 | 112 | icon_name = get_icon_state(_ICON_NAME, self._strength) |
111 | | palette_icon = Icon(icon_name=icon_name, |
112 | | icon_size=style.STANDARD_ICON_SIZE, |
113 | | badge_name=self.props.badge_name) |
114 | | palette_icon.props.xo_color = XoColor('%s,%s' % self._compute_color()) |
| 113 | self._palette_icon = Icon(icon_name=icon_name, |
| 114 | icon_size=style.STANDARD_ICON_SIZE, |
| 115 | badge_name=self.props.badge_name) |
115 | 116 | |
116 | 117 | p = palette.Palette(primary_text=self._name, |
117 | | icon=palette_icon) |
| 118 | icon=self._palette_icon) |
118 | 119 | |
119 | 120 | self._connect_item = MenuItem(_('Connect'), 'dialog-ok') |
120 | 121 | self._connect_item.connect('activate', self._activate_cb) |
… |
… |
class AccessPointView(CanvasPulsingIcon): |
150 | 151 | if 'WpaFlags' in props: |
151 | 152 | self._wpa_flags = props['WpaFlags'] |
152 | 153 | |
153 | | self._update() |
154 | | |
155 | | def _compute_color(self): |
156 | 154 | sh = sha.new() |
157 | 155 | data = self._name + hex(self._flags) |
158 | 156 | sh.update(data) |
159 | 157 | h = hash(sh.digest()) |
160 | 158 | idx = h % len(xocolor.colors) |
161 | 159 | |
162 | | # stroke, fill |
163 | | return (xocolor.colors[idx][0], xocolor.colors[idx][1]) |
| 160 | self._color = XoColor('%s,%s' % (xocolor.colors[idx][0], |
| 161 | xocolor.colors[idx][1])) |
| 162 | |
| 163 | self._update() |
164 | 164 | |
165 | 165 | def __get_active_ap_reply_cb(self, ap): |
166 | 166 | self._active = (ap == self._model.object_path) |
… |
… |
class AccessPointView(CanvasPulsingIcon): |
191 | 191 | self._palette.props.primary_text = self._name |
192 | 192 | |
193 | 193 | self._update_state() |
| 194 | self._update_color() |
194 | 195 | |
195 | 196 | def _update_state(self): |
196 | 197 | if self._active: |
… |
… |
class AccessPointView(CanvasPulsingIcon): |
231 | 232 | self._palette.props.secondary_text = None |
232 | 233 | self.props.pulsing = False |
233 | 234 | |
| 235 | def _update_color(self): |
234 | 236 | if self._greyed_out: |
235 | 237 | self.props.pulsing = False |
236 | 238 | self.props.base_color = XoColor('#D5D5D5,#D5D5D5') |
237 | 239 | else: |
238 | | self.props.base_color = XoColor('%s,%s' % self._compute_color()) |
| 240 | self.props.base_color = self._color |
| 241 | |
| 242 | self._palette_icon.props.xo_color = self._color |
239 | 243 | |
240 | 244 | def _disconnect_activate_cb(self, item): |
241 | 245 | pass |