From ceb45a9d25d9f8734e130300e4754d39286306b4 Mon Sep 17 00:00:00 2001 From: Ajay Garg Date: Wed, 07 Mar 2012 18:16:21 +0000 Subject: au#1100: Control "Extreme Power Management" via gconf. --- diff --git a/extensions/cpsection/power/view.py b/extensions/cpsection/power/view.py index 1fb9e39..63553fd 100644 --- a/extensions/cpsection/power/view.py +++ b/extensions/cpsection/power/view.py @@ -14,6 +14,7 @@ # along with this program; if not, write to the Free Software # Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA +import gconf import gtk from gettext import gettext as _ @@ -22,6 +23,10 @@ from sugar.graphics import style from jarabe.controlpanel.sectionview import SectionView from jarabe.controlpanel.inlinealert import InlineAlert +EXTREME_POWER_MANAGEMENT_GCONF = '/desktop/sugar/power/extreme_management_enabled' +ALLOW_EXTREME_POWER_MANAGEMENT = \ + gconf.client_get_default().get_bool(EXTREME_POWER_MANAGEMENT_GCONF) or False + class Power(SectionView): def __init__(self, model, alerts): @@ -81,34 +86,36 @@ class Power(SectionView): self._automatic_pm_alert.props.msg = self.restart_msg self._automatic_pm_alert.show() - box_extreme_pm = gtk.HBox(spacing=style.DEFAULT_SPACING) - label_extreme_pm = gtk.Label( - _('Extreme power management (disables ' \ - 'wireless radio, increases battery life)')) - label_extreme_pm.set_alignment(0, 0.5) - self._extreme_button = gtk.CheckButton() - self._extreme_button.set_alignment(0, 0) - box_extreme_pm.pack_start(self._extreme_button, expand=False) - self._extreme_button.show() - box_extreme_pm.pack_start(label_extreme_pm, expand=False) - group.add_widget(label_extreme_pm) - label_extreme_pm.show() - box_pm.pack_start(box_extreme_pm, expand=False) - box_extreme_pm.show() - - self._extreme_pm_alert = InlineAlert() - label_extreme_pm_error = gtk.Label() - group.add_widget(label_extreme_pm_error) - self._extreme_pm_alert_box.pack_start(label_extreme_pm_error, - expand=False) - label_extreme_pm_error.show() - self._extreme_pm_alert_box.pack_start(self._extreme_pm_alert, - expand=False) - box_pm.pack_end(self._extreme_pm_alert_box, expand=False) - self._extreme_pm_alert_box.show() - if 'extreme_pm' in self.restart_alerts: - self._extreme_pm_alert.props.msg = self.restart_msg - self._extreme_pm_alert.show() + if ALLOW_EXTREME_POWER_MANAGEMENT: + box_extreme_pm = gtk.HBox(spacing=style.DEFAULT_SPACING) + label_extreme_pm = gtk.Label( + _('Extreme power management (disables ' \ + 'wireless radio, increases battery life)')) + label_extreme_pm.set_alignment(0, 0.5) + self._extreme_button = gtk.CheckButton() + self._extreme_button.set_alignment(0, 0) + box_extreme_pm.pack_start(self._extreme_button, expand=False) + self._extreme_button.show() + box_extreme_pm.pack_start(label_extreme_pm, expand=False) + group.add_widget(label_extreme_pm) + label_extreme_pm.show() + box_pm.pack_start(box_extreme_pm, expand=False) + box_extreme_pm.show() + + self._extreme_pm_alert = InlineAlert() + label_extreme_pm_error = gtk.Label() + group.add_widget(label_extreme_pm_error) + self._extreme_pm_alert_box.pack_start(label_extreme_pm_error, + expand=False) + label_extreme_pm_error.show() + self._extreme_pm_alert_box.pack_start(self._extreme_pm_alert, + expand=False) + box_pm.pack_end(self._extreme_pm_alert_box, expand=False) + self._extreme_pm_alert_box.show() + + if 'extreme_pm' in self.restart_alerts: + self._extreme_pm_alert.props.msg = self.restart_msg + self._extreme_pm_alert.show() self.pack_start(box_pm, expand=False) box_pm.show() @@ -118,31 +125,40 @@ class Power(SectionView): def setup(self): try: automatic_state = self._model.get_automatic_pm() - extreme_state = self._model.get_extreme_pm() + if ALLOW_EXTREME_POWER_MANAGEMENT: + extreme_state = self._model.get_extreme_pm() except Exception, detail: self._automatic_pm_alert.props.msg = detail self._automatic_pm_alert.show() - self._extreme_pm_alert.props.msg = detail - self._extreme_pm_alert.show() + if ALLOW_EXTREME_POWER_MANAGEMENT: + self._extreme_pm_alert.props.msg = detail + self._extreme_pm_alert.show() else: self._automatic_button.set_active(automatic_state) - self._extreme_button.set_active(extreme_state) + if ALLOW_EXTREME_POWER_MANAGEMENT: + self._extreme_button.set_active(extreme_state) + self._extreme_pm_valid = True - self._extreme_pm_valid = True self._automatic_pm_valid = True self.needs_restart = False self._automatic_pm_change_handler = self._automatic_button.connect( \ 'toggled', self.__automatic_pm_toggled_cb) - self._extreme_pm_change_handler = self._extreme_button.connect( \ - 'toggled', self.__extreme_pm_toggled_cb) + + if ALLOW_EXTREME_POWER_MANAGEMENT: + self._extreme_pm_change_handler = self._extreme_button.connect( \ + 'toggled', self.__extreme_pm_toggled_cb) def undo(self): self._automatic_button.disconnect(self._automatic_pm_change_handler) - self._extreme_button.disconnect(self._extreme_pm_change_handler) + if ALLOW_EXTREME_POWER_MANAGEMENT: + self._extreme_button.disconnect(self._extreme_pm_change_handler) + self._model.undo() - self._extreme_pm_alert.hide() + + if ALLOW_EXTREME_POWER_MANAGEMENT: + self._extreme_pm_alert.hide() self._automatic_pm_alert.hide() def _validate(self): -- cgit v0.9.1