Web   ·   Wiki   ·   Activities   ·   Blog   ·   Lists   ·   Chat   ·   Meeting   ·   Bugs   ·   Git   ·   Translate   ·   Archive   ·   People   ·   Donate
summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorAjay Garg <ajay@activitycentral.com>2012-03-07 18:16:21 (GMT)
committer Anish Mangal <anish@activitycentral.com>2012-04-27 10:02:37 (GMT)
commitceb45a9d25d9f8734e130300e4754d39286306b4 (patch)
treed4db1ced3d63e2dfccd9167a6632e903fe51ffeb
parentdfb8c33f9591f7610e1b780bf7a95412c7cf8382 (diff)
au#1100: Control "Extreme Power Management" via gconf.
-rw-r--r--extensions/cpsection/power/view.py90
1 files changed, 53 insertions, 37 deletions
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):