Web   ·   Wiki   ·   Activities   ·   Blog   ·   Lists   ·   Chat   ·   Meeting   ·   Bugs   ·   Git   ·   Translate   ·   Archive   ·   People   ·   Donate
summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorDaniel Drake <dsd@laptop.org>2010-07-07 16:07:12 (GMT)
committer Daniel Drake <dsd@laptop.org>2010-07-08 14:56:23 (GMT)
commit6588e2339f2e192f2eaf07b8e8e65c53183a802c (patch)
treeb83e452a9c165fd148242ed75886a97c679165da
parent70e87707e943302217a0b829c463e89dd0e4d40c (diff)
Indicate inactive state in mesh device icon
When the mesh is not active, grey out the mesh device icon and update the palette text. Also remove the "Create new network" option from the mesh device palette.
-rw-r--r--extensions/deviceicon/network.py24
1 files changed, 20 insertions, 4 deletions
diff --git a/extensions/deviceicon/network.py b/extensions/deviceicon/network.py
index 202c563..2572198 100644
--- a/extensions/deviceicon/network.py
+++ b/extensions/deviceicon/network.py
@@ -594,16 +594,17 @@ class OlpcMeshDeviceView(ToolButton):
self._channel = 0
self._icon = PulsingIcon(icon_name=self._ICON_NAME)
- self._icon.props.pulse_color = xocolor.XoColor( \
+ self._inactive_color = xocolor.XoColor( \
"%s,%s" % (style.COLOR_BUTTON_GREY.get_svg(),
style.COLOR_TRANSPARENT.get_svg()))
- self._icon.props.base_color = profile.get_color()
+ self._icon.props.pulse_color = profile.get_color()
+ self._icon.props.base_color = self._inactive_color
self.set_icon_widget(self._icon)
self._icon.show()
self.set_palette_invoker(FrameWidgetInvoker(self))
- self._palette = WirelessPalette(_("Mesh Network"))
+ self._palette = WirelessPalette(_("Mesh Network"), can_create=False)
self._palette.connect('deactivate-connection',
self.__deactivate_connection)
self.set_palette(self._palette)
@@ -662,7 +663,14 @@ class OlpcMeshDeviceView(ToolButton):
self._update_text()
def _update_text(self):
- text = _("Mesh Network") + " " + str(self._channel)
+ state = self._device_state
+ if state in (network.DEVICE_STATE_PREPARE, network.DEVICE_STATE_CONFIG,
+ network.DEVICE_STATE_NEED_AUTH,
+ network.DEVICE_STATE_IP_CONFIG,
+ network.DEVICE_STATE_ACTIVATED):
+ text = _("Mesh Network") + " " + str(self._channel)
+ else:
+ text = _("Mesh Network")
self._palette.props.primary_text = text
def _update(self):
@@ -672,12 +680,20 @@ class OlpcMeshDeviceView(ToolButton):
network.DEVICE_STATE_CONFIG,
network.DEVICE_STATE_NEED_AUTH,
network.DEVICE_STATE_IP_CONFIG]:
+ self._icon.props.base_color = self._inactive_color
+ self._icon.props.pulse_color = profile.get_color()
self._palette.set_connecting()
self._icon.props.pulsing = True
elif state == network.DEVICE_STATE_ACTIVATED:
address = self._device_props.Get(_NM_DEVICE_IFACE, 'Ip4Address')
self._palette.set_connected_with_channel(self._channel, address)
+ self._icon.props.base_color = profile.get_color()
self._icon.props.pulsing = False
+ else:
+ self._icon.props.base_color = self._inactive_color
+ self._icon.props.pulsing = False
+ self._palette.set_disconnected()
+ self._update_text()
def __deactivate_connection(self, palette, data=None):
obj = self._bus.get_object(_NM_SERVICE, _NM_PATH)