Ticket #2086: 0001-Indicate-inactive-state-in-mesh-device-icon.patch

File 0001-Indicate-inactive-state-in-mesh-device-icon.patch, 3.3 KB (added by dsd, 14 years ago)

fix

  • extensions/deviceicon/network.py

    From 4851201a39c425717721e4dd05f65406b6d3e4ba Mon Sep 17 00:00:00 2001
    From: Daniel Drake <dsd@laptop.org>
    Date: Wed, 7 Jul 2010 10:07:12 -0600
    Subject: [PATCH] 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.
    ---
     extensions/deviceicon/network.py |   24 ++++++++++++++++++++----
     1 files changed, 20 insertions(+), 4 deletions(-)
    
    diff --git a/extensions/deviceicon/network.py b/extensions/deviceicon/network.py
    index ce21605..399ef78 100644
    a b class OlpcMeshDeviceView(ToolButton): 
    597597        self._channel = 0
    598598
    599599        self._icon = PulsingIcon(icon_name=self._ICON_NAME)
    600         self._icon.props.pulse_color = xocolor.XoColor( \
     600        self._inactive_color = xocolor.XoColor( \
    601601            "%s,%s" % (style.COLOR_BUTTON_GREY.get_svg(),
    602602                       style.COLOR_TRANSPARENT.get_svg()))
    603         self._icon.props.base_color = profile.get_color()
     603        self._icon.props.pulse_color = profile.get_color()
     604        self._icon.props.base_color = self._inactive_color
    604605
    605606        self.set_icon_widget(self._icon)
    606607        self._icon.show()
    607608
    608609        self.set_palette_invoker(FrameWidgetInvoker(self))
    609         self._palette = WirelessPalette(_("Mesh Network"))
     610        self._palette = WirelessPalette(_("Mesh Network"), can_create=False)
    610611        self._palette.connect('deactivate-connection',
    611612                              self.__deactivate_connection)
    612613        self.set_palette(self._palette)
    class OlpcMeshDeviceView(ToolButton): 
    665666            self._update_text()
    666667
    667668    def _update_text(self):
    668         text = _("Mesh Network") + " " + str(self._channel)
     669        state = self._device_state
     670        if state in (network.DEVICE_STATE_PREPARE, network.DEVICE_STATE_CONFIG,
     671                     network.DEVICE_STATE_NEED_AUTH,
     672                     network.DEVICE_STATE_IP_CONFIG,
     673                     network.DEVICE_STATE_ACTIVATED):
     674            text = _("Mesh Network") + " " + str(self._channel)
     675        else:
     676            text = _("Mesh Network")
    669677        self._palette.props.primary_text = text
    670678
    671679    def _update(self):
    class OlpcMeshDeviceView(ToolButton): 
    675683                     network.DEVICE_STATE_CONFIG,
    676684                     network.DEVICE_STATE_NEED_AUTH,
    677685                     network.DEVICE_STATE_IP_CONFIG]:
     686            self._icon.props.base_color = self._inactive_color
     687            self._icon.props.pulse_color = profile.get_color()
    678688            self._palette.set_connecting()
    679689            self._icon.props.pulsing = True
    680690        elif state == network.DEVICE_STATE_ACTIVATED:
    681691            address = self._device_props.Get(_NM_DEVICE_IFACE, 'Ip4Address')
    682692            self._palette.set_connected_with_channel(self._channel, address)
     693            self._icon.props.base_color = profile.get_color()
    683694            self._icon.props.pulsing = False
     695        else:
     696            self._icon.props.base_color = self._inactive_color
     697            self._icon.props.pulsing = False
     698            self._palette.set_disconnected()
     699        self._update_text()
    684700
    685701    def __deactivate_connection(self, palette, data=None):
    686702        obj = self._bus.get_object(_NM_SERVICE, _NM_PATH)