Sophie

Sophie

distrib > Mandriva > current > x86_64 > by-pkgid > ac91a2f911bd118a56858d88ea05d1c9 > files > 12

eee-control-0.9.4-4.1mdv2010.1.src.rpm

From f4f85a8c7f2182b9730df33474b6aecad5bd4cf0 Mon Sep 17 00:00:00 2001
From: Grigori Goronzy <greg@hein>
Date: Sat, 8 May 2010 15:19:40 +0200
Subject: [PATCH] Switch to new UPower DBus interface for battery check

The org.freedesktop.PowerManagement interface is long gone,
use org.freedesktop.UPower instead.
---
 EeeControl/tray.py |   23 ++++++++++++-----------
 1 files changed, 12 insertions(+), 11 deletions(-)

diff --git a/EeeControl/tray.py b/EeeControl/tray.py
index be54ac9..671134e 100644
--- a/EeeControl/tray.py
+++ b/EeeControl/tray.py
@@ -292,14 +292,13 @@ class EeeControlTray:
         self.bus.add_signal_receiver(self.fsb_notify, dbus_interface="org.eee.Eee", signal_name="fsb_changed")
         # Listen for eee-control-daemon appearance/disappearance
         self.bus.add_signal_receiver(self.daemon_status_change, dbus_interface="org.freedesktop.DBus", signal_name="NameOwnerChanged", arg0="org.eee.Eee")
-        # Listen for gnome-power-manager (autofsb)
+        # Listen for upower (autofsb)
         # This can safely fail
         try:
-            session_bus = dbus.SessionBus()
-            session_bus.add_signal_receiver(self.autofsb_trigger, dbus_interface="org.freedesktop.PowerManagement", signal_name="OnBatteryChanged")
-            session_bus.add_signal_receiver(self.autofsb_start, dbus_interface="org.freedesktop.DBus", signal_name="NameOwnerChanged", arg0="org.freedesktop.PowerManagement")
+            self.bus.add_signal_receiver(self.autofsb_trigger, dbus_interface="org.freedesktop.UPower", signal_name="Changed")
+            self.bus.add_signal_receiver(self.autofsb_start, dbus_interface="org.freedesktop.DBus", signal_name="NameOwnerChanged", arg0="org.freedesktop.UPower")
         except dbus.exceptions.DBusException:
-            print _("Unable to set up autofsb signal receiver.  Is gnome-power-manager running?")
+            print _("Unable to set up autofsb signal receiver.")
     
     def daemon_status_change(self, name, oldown, newown):
         if newown == "": self.disable_tray()
@@ -309,7 +308,10 @@ class EeeControlTray:
         if oldown == "":
             self.apply_configuration()
             
-    def autofsb_trigger(self, state):
+    def autofsb_trigger(self):
+        remote = self.bus.get_object("org.freedesktop.UPower", "/org/freedesktop/UPower")
+        iface = dbus.Interface(remote, dbus_interface="org.freedesktop.DBus.Properties")
+        state = iface.Get("org.freedesktop.UPower", "OnBattery")
         if self.conf.get_bool("/apps/eee-control-tray/options/autofsb") and self.iface.get_fsb() != None:
             if state == True:
                 self.iface.set_fsb("powersave")
@@ -359,15 +361,14 @@ class EeeControlTray:
         # Switch to powersave preset if autofsb is active
         if self.conf.get_bool("/apps/eee-control-tray/options/autofsb") == True:
             try:
-                sb = dbus.SessionBus()
-                remote = sb.get_object("org.freedesktop.PowerManagement", "/org/freedesktop/PowerManagement")
-                iface = dbus.Interface(remote, dbus_interface="org.freedesktop.PowerManagement")
-                if iface.GetOnBattery() == True and self.iface.get_fsb() != None:
+                remote = self.bus.get_object("org.freedesktop.UPower", "/org/freedesktop/UPower")
+                iface = dbus.Interface(remote, dbus_interface="org.freedesktop.DBus.Properties")
+                if iface.Get("org.freedesktop.UPower", "OnBattery") == True and self.iface.get_fsb() != None:
                     self.autotriggered = True
                     self.iface.set_fsb("powersave")
                     return False
             except dbus.exceptions.DBusException:
-                print _("Failed to set up automatic performance adjustment.  Is gnome-power-manager running?")
+                print _("Failed to set up automatic performance adjustment.")
         # Else, apply saved FSB
         preset = self.conf.get_string("/apps/eee-control-tray/fsb_preset")
         if preset and self.iface.get_fsb() != None:
-- 
1.7.0.4