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): |
597 | 597 | self._channel = 0 |
598 | 598 | |
599 | 599 | self._icon = PulsingIcon(icon_name=self._ICON_NAME) |
600 | | self._icon.props.pulse_color = xocolor.XoColor( \ |
| 600 | self._inactive_color = xocolor.XoColor( \ |
601 | 601 | "%s,%s" % (style.COLOR_BUTTON_GREY.get_svg(), |
602 | 602 | 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 |
604 | 605 | |
605 | 606 | self.set_icon_widget(self._icon) |
606 | 607 | self._icon.show() |
607 | 608 | |
608 | 609 | self.set_palette_invoker(FrameWidgetInvoker(self)) |
609 | | self._palette = WirelessPalette(_("Mesh Network")) |
| 610 | self._palette = WirelessPalette(_("Mesh Network"), can_create=False) |
610 | 611 | self._palette.connect('deactivate-connection', |
611 | 612 | self.__deactivate_connection) |
612 | 613 | self.set_palette(self._palette) |
… |
… |
class OlpcMeshDeviceView(ToolButton): |
665 | 666 | self._update_text() |
666 | 667 | |
667 | 668 | 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") |
669 | 677 | self._palette.props.primary_text = text |
670 | 678 | |
671 | 679 | def _update(self): |
… |
… |
class OlpcMeshDeviceView(ToolButton): |
675 | 683 | network.DEVICE_STATE_CONFIG, |
676 | 684 | network.DEVICE_STATE_NEED_AUTH, |
677 | 685 | network.DEVICE_STATE_IP_CONFIG]: |
| 686 | self._icon.props.base_color = self._inactive_color |
| 687 | self._icon.props.pulse_color = profile.get_color() |
678 | 688 | self._palette.set_connecting() |
679 | 689 | self._icon.props.pulsing = True |
680 | 690 | elif state == network.DEVICE_STATE_ACTIVATED: |
681 | 691 | address = self._device_props.Get(_NM_DEVICE_IFACE, 'Ip4Address') |
682 | 692 | self._palette.set_connected_with_channel(self._channel, address) |
| 693 | self._icon.props.base_color = profile.get_color() |
683 | 694 | 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() |
684 | 700 | |
685 | 701 | def __deactivate_connection(self, palette, data=None): |
686 | 702 | obj = self._bus.get_object(_NM_SERVICE, _NM_PATH) |