Hello community,

here is the log from the commit of package kdebase3 for openSUSE:Factory 
checked in at 2012-02-28 14:13:37
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/kdebase3 (Old)
 and      /work/SRC/openSUSE:Factory/.kdebase3.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Package is "kdebase3", Maintainer is "[email protected]"

Changes:
--------
--- /work/SRC/openSUSE:Factory/kdebase3/kdebase3.changes        2012-02-10 
17:15:37.000000000 +0100
+++ /work/SRC/openSUSE:Factory/.kdebase3.new/kdebase3.changes   2012-02-28 
14:13:40.000000000 +0100
@@ -1,0 +2,6 @@
+Fri Feb 24 10:47:50 UTC 2012 - [email protected]
+
+- use upower instead of hal for hibernate and suspend, 
+  thanks to Sergei Amelian (gentoo/trinity) (bnc#749028)
+
+-------------------------------------------------------------------

New:
----
  kickoff-shutdown-upower.patch
  ksmserver-shutdown-upower.patch

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Other differences:
------------------
++++++ kdebase3.spec ++++++
--- /var/tmp/diff_new_pack.2BR9du/_old  2012-02-28 14:13:44.000000000 +0100
+++ /var/tmp/diff_new_pack.2BR9du/_new  2012-02-28 14:13:44.000000000 +0100
@@ -44,6 +44,7 @@
 BuildRequires:  utempter
 BuildRequires:  xorg-x11
 BuildRequires:  xorg-x11-libfontenc-devel
+BuildRequires:  libdbus-1-qt3-0-devel
 %if %suse_version >= 1130
 BuildRequires:  libusb-compat-devel
 %endif
@@ -274,6 +275,8 @@
 Patch268:       systemd-shutdown.patch
 Patch269:       kdebase-slackware-kicker.diff
 Patch270:       kdebase-svn-konq-move.patch
+Patch271:       ksmserver-shutdown-upower.patch
+Patch272:       kickoff-shutdown-upower.patch
 
 %description
 This package contains kdebase, one of the basic packages of the K
@@ -327,7 +330,7 @@
 Kate, Konqueror and KWrite.
 
 %package devel
-Requires:       kdelibs3-devel kdebase3 = %version kdebase3-apps = %version 
kdebase3-runtime = %version kdebase3-workspace = %version
+Requires:       kdelibs3-devel libdbus-1-qt3-0-devel kdebase3 = %version 
kdebase3-apps = %version kdebase3-runtime = %version kdebase3-workspace = 
%version
 Summary:        KDE Base Package: Base, Build Environment
 Group:          System/GUI/KDE
 
@@ -616,6 +619,8 @@
 %patch268 -p1
 %patch269 -p4
 %patch270 -p4
+%patch271 -p1
+%patch272 -p1
 
 rm -rf kappfinder
 rm pics/crystalsvg/cr??-*emacs.png
@@ -638,7 +643,7 @@
 %endif
 LDAP="--with-ldap"
 X_SERVER=/usr/bin/X RUN_KAPPFINDER=no \
-
+export LIBS="$LIBS -ldbus-1-qt3"
 ./configure \
   $configkde \
   $PARANOIA \
@@ -650,6 +655,7 @@
   --with-kdm-xconsole \
   --with-kdm-pam=xdm \
   --with-kcp-pam=kcheckpass \
+  --with-extra-includes=/usr/include/dbus-1.0/qt3 \
   --with-kss-pam=kcheckpass
     do_make %{?_smp_mflags}
 cd ../fileshareset2
@@ -683,12 +689,8 @@
 mkdir -p ${RPM_BUILD_ROOT}/usr/bin \
          ${RPM_BUILD_ROOT}/usr/sbin \
          ${RPM_BUILD_ROOT}/var/run/xdmctl
-%if %suse_version > 1010
-  ln -fs /opt/kde3/bin/startkde $RPM_BUILD_ROOT/usr/bin/kde
-  ln -fs /opt/kde3/bin/startkde $RPM_BUILD_ROOT/usr/bin/startkde3
-%else
-  ln -fs /opt/kde3/bin/startkde $RPM_BUILD_ROOT/usr/X11R6/bin/kde
-%endif
+ln -fs /opt/kde3/bin/startkde $RPM_BUILD_ROOT/usr/bin/kde
+ln -fs /opt/kde3/bin/startkde $RPM_BUILD_ROOT/usr/bin/startkde3
 ln -sf rcxdm ${RPM_BUILD_ROOT}/usr/sbin/rckdm
 mv ${RPM_BUILD_ROOT}/opt/kde3/bin/ksysguardd 
${RPM_BUILD_ROOT}/usr/bin/ksysguardd
 ln -sf /usr/bin/ksysguardd ${RPM_BUILD_ROOT}/opt/kde3/bin/ksysguardd
@@ -826,9 +828,7 @@
 rm $RPM_BUILD_ROOT/%_mandir/man1/kbookmarkmerger.*
 rm $RPM_BUILD_ROOT/%_mandir/man1/kfind.*
 kde_post_install
-%if %suse_version > 1020
 %fdupes $RPM_BUILD_ROOT/opt/kde3/share
-%endif
 # move konqueror.desktop back to old position (#281572)
 mv $RPM_BUILD_ROOT/opt/kde3/share/applications/kde/konqueror.desktop 
$RPM_BUILD_ROOT/opt/kde3/share/applnk/konqueror.desktop
 
@@ -887,23 +887,6 @@
 %postun
 %insserv_cleanup
 /sbin/ldconfig
-%if %suse_version < 1031
-
-%post ksysguardd
-%{fillup_and_insserv -sn kdebase3-ksysguardd ksysguardd RUN_KSYSGUARDD}
-%verifyscript
-%verify_permissions -e /opt/kde3/bin/kcheckpass
-%verify_permissions -e /opt/kde3/bin/kdesud
-%verify_permissions -e /opt/kde3/bin/khc_indexbuilder
-
-%postun ksysguardd
-%restart_on_update ksysguardd
-%insserv_cleanup
-
-%preun ksysguardd
-%stop_on_removal ksysguardd
-%endif
-
 %post runtime -p /sbin/ldconfig
 
 %postun runtime -p /sbin/ldconfig
@@ -919,9 +902,6 @@
 
 %postun apps -p /sbin/ldconfig
 
-%clean
-rm -rf $RPM_BUILD_ROOT
-
 %files -n misc-console-font
 %defattr(-,root,root)
 %doc COPYING
@@ -979,9 +959,7 @@
 /opt/kde3/bin/khc_htsearch.pl
 /opt/kde3/bin/kapplymousetheme
 /opt/kde3/bin/kio_system_documenthelper
-%if %suse_version > 1010
 /opt/kde3/bin/runupdater
-%endif
 /opt/kde3/bin/kstart                      
 /opt/kde3/bin/ksystraycmd
 /opt/kde3/%_lib/kde3/cursorthumbnail.*
@@ -1027,10 +1005,8 @@
 /opt/kde3/%_lib/kde3/kstyle_keramik_config.*
 /opt/kde3/%_lib/kde3/libkmanpart.*
 /opt/kde3/%_lib/kde3/liblocaldomainurifilter.*
-%if %suse_version > 1010
 /opt/kde3/%_lib/kde3/runupdater.*
 /opt/kde3/%_lib/libkdeinit_runupdater.so
-%endif
 /opt/kde3/%_lib/libkdeinit_kaccess.so
 /opt/kde3/%_lib/libkdeinit_kcminit.so
 /opt/kde3/%_lib/libkdeinit_kcminit_startup.so
@@ -1334,11 +1310,6 @@
 /opt/kde3/share/services/kfile_font.desktop
 /opt/kde3/share/services/kfontviewpart.desktop
 %_mandir/man1/*
-%if %suse_version < 1001
-%config(noreplace) /etc/security/fileshare.conf
-/opt/kde3/bin/filesharelist
-%verify(not mode) /opt/kde3/bin/fileshareset
-%endif
 %{_mandir}/man8/kcheckpass.8.gz
 %doc %lang(en) /opt/kde3/share/doc/HTML/en/kcontrol
 %doc %lang(en) /opt/kde3/share/doc/HTML/en/kdcop
@@ -1376,15 +1347,6 @@
 %dir /opt/kde3/share/config/kdm
 %config(noreplace) /opt/kde3/share/config/kdm/kdmrc
 %config(noreplace) /opt/kde3/share/config/kdm/backgroundrc
-%if %suse_version < 1010
-%config /opt/kde3/share/config/kdm/Xaccess
-%config /opt/kde3/share/config/kdm/Xreset
-%config /opt/kde3/share/config/kdm/Xresources
-%config /opt/kde3/share/config/kdm/Xsession
-%config /opt/kde3/share/config/kdm/Xsetup
-%config /opt/kde3/share/config/kdm/Xstartup
-%config /opt/kde3/share/config/kdm/Xwilling
-%endif
 %ghost /var/run/xdmctl
 /usr/sbin/rckdm
 /opt/kde3/share/applications/kde/kdm.desktop
@@ -1394,15 +1356,8 @@
 
 %files session
 %defattr(-,root,root)
-%if %suse_version > 1010
 /usr/bin/kde
 /usr/bin/startkde3
-%else
-/usr/X11R6/bin/kde
-%endif
-%if %suse_version < 1030
-%dir /usr/share/xsessions
-%endif
 /usr/share/xsessions/kde.desktop
 
 %files extra




++++++ kickoff-shutdown-upower.patch ++++++
diff -wruN kdebase-3.5.10.orig/kicker/kicker/ui/k_new_mnu.cpp 
kdebase-3.5.10/kicker/kicker/ui/k_new_mnu.cpp
--- kdebase-3.5.10.orig/kicker/kicker/ui/k_new_mnu.cpp  2012-02-24 
14:00:03.000000000 +0400
+++ kdebase-3.5.10/kicker/kicker/ui/k_new_mnu.cpp       2012-02-26 
09:16:18.726727042 +0400
@@ -3685,54 +3685,41 @@
     return 5;
 }
 
-#define DBUS_HAL_INTERFACE             "org.freedesktop.Hal"
-#define DBUS_HAL_SYSTEM_POWER_INTERFACE        
"org.freedesktop.Hal.Device.SystemPowerManagement"
-#define HAL_UDI_COMPUTER               "/org/freedesktop/Hal/devices/computer"
-
 #ifdef KDELIBS_SUSE
-#include <liblazy.h>
 
 #include <X11/Xlib.h>
 #include <fixx11h.h>
+
+#include <dbus/qdbusdata.h>
+#include <dbus/qdbusmessage.h>
+#include <dbus/qdbusproxy.h>
+#include <dbus/qdbusvariant.h>
 #endif
 
 void KMenu::insertSuspendOption( int &nId, int &index )
 {
 #ifdef KDELIBS_SUSE
-    int supported = -1;
+
     bool suspend_ram, suspend_disk, standby;
 
-    DCOPRef kpowersave( "kpowersave", "KPowersaveIface" );
-    DCOPReply reply = kpowersave.call( "allowed_sleepingStates" );
-    if( reply.isValid()) {
-        QStringList supported = reply;
-        suspend_ram = supported.contains( "suspendToRAM" );
-        suspend_disk = supported.contains( "suspendToDisk" );
-        standby = supported.contains( "standBy" );
-    } else {
-    liblazy_hal_get_property_bool(HAL_UDI_COMPUTER, 
"power_management.can_suspend", &supported);
-    if (supported == 1)
-        suspend_ram = true;
-    else
-        suspend_ram = false;
-       liblazy_hal_get_property_bool(HAL_UDI_COMPUTER, 
"power_management.can_standby", &supported);
-       if (supported == 1)
-            standby = true;
-       else
-            standby = false;
-       liblazy_hal_get_property_bool(HAL_UDI_COMPUTER, 
"power_management.can_hibernate", &supported);
-       if (supported == 1)
-            suspend_disk = true;
-       else
-            suspend_disk = false;
+               m_dbusConn = 
QDBusConnection::addConnection(QDBusConnection::SystemBus);
+       
+               QDBusProxy upowerProperties("org.freedesktop.UPower", 
"/org/freedesktop/UPower", "org.freedesktop.DBus.Properties", m_dbusConn);
+               // can suspend?
+               QValueList<QDBusData> params;
+               params << QDBusData::fromString(upowerProperties.interface()) 
<< QDBusData::fromString("CanSuspend");
+               QDBusMessage reply = upowerProperties.sendWithReply("Get", 
params);
+               if(reply.type() == QDBusMessage::ReplyMessage && reply.count() 
== 1)
+                       suspend_ram = reply[0].toVariant().value.toBool();
+
+               // can hibernate?
+               params.clear();
+               params << QDBusData::fromString(upowerProperties.interface()) 
<< QDBusData::fromString("CanHibernate");
+               reply = upowerProperties.sendWithReply("Get", params);
+               if(reply.type() == QDBusMessage::ReplyMessage && reply.count() 
== 1)
+                       suspend_disk = reply[0].toVariant().value.toBool();
 
-       if 
(liblazy_hal_is_caller_privileged("org.freedesktop.hal.power-management.hibernate")
 != 1)
-            suspend_disk = false;
-       if 
(liblazy_hal_is_caller_privileged("org.freedesktop.hal.power-management.suspend")
 != 1)
-            suspend_ram = false;
-       if 
(liblazy_hal_is_caller_privileged("org.freedesktop.hal.power-management.standby")
 != 1)
            standby = false;
-    }
 
        if ( ! ( standby + suspend_ram + suspend_disk ) )
             return;
@@ -3756,59 +3743,29 @@
 void KMenu::slotSuspend(int id)
 {
 #ifdef KDELIBS_SUSE
-    int error = 0;
-
-    DCOPRef kpowersave( "kpowersave", "KPowersaveIface" );
-    DCOPReply reply = kpowersave.call( "allowed_sleepingStates" );
-    if( reply.isValid()) {
-       bool ok;
-       extern Time qt_x_time;
-       XUngrabKeyboard( qt_xdisplay(), qt_x_time );
-       XUngrabPointer( qt_xdisplay(), qt_x_time );
-       XSync( qt_xdisplay(), False );
-       if( id == 1 )
-           ok = kpowersave.call( "do_suspendToDisk" );
-       else if( id == 2 )
-           ok = kpowersave.call( "do_suspendToRAM" );
-       else if( id == 3 )
-           ok = kpowersave.call( "do_standBy" );
-       else
-           return;
-       error = ok ? 0 : 1;
-    } else {
-    int wake = 0;
-    DBusMessage *reply = 0;
 
     if (id == 1) {
-        error = liblazy_dbus_system_send_method_call(DBUS_HAL_INTERFACE,
-                                                     HAL_UDI_COMPUTER,
-                                                     
DBUS_HAL_SYSTEM_POWER_INTERFACE,
-                                                     "Hibernate",
-                                                     &reply,
-                                                     DBUS_TYPE_INVALID);
+       if( m_dbusConn.isConnected() ) {
+               QDBusMessage msg = QDBusMessage::methodCall(
+                                       "org.freedesktop.UPower",
+                                       "/org/freedesktop/UPower",
+                                       "org.freedesktop.UPower",
+                                       "Hibernate");
+               m_dbusConn.sendWithReply(msg);
+       }
     } else if (id == 2)
-        error = liblazy_dbus_system_send_method_call(DBUS_HAL_INTERFACE,
-                                                     HAL_UDI_COMPUTER,
-                                                     
DBUS_HAL_SYSTEM_POWER_INTERFACE,
-                                                     "Suspend",
-                                                     &reply,
-                                                     DBUS_TYPE_INT32,
-                                                     &wake,
-                                                     DBUS_TYPE_INVALID);
-    else if (id == 3)
-        error = liblazy_dbus_system_send_method_call(DBUS_HAL_INTERFACE,
-                                                     HAL_UDI_COMPUTER,
-                                                     
DBUS_HAL_SYSTEM_POWER_INTERFACE,
-                                                     "Standby",
-                                                     &reply,
-                                                     DBUS_TYPE_INVALID);
+       if( m_dbusConn.isConnected() ) {
+               QDBusMessage msg = QDBusMessage::methodCall(
+                                       "org.freedesktop.UPower",
+                                       "/org/freedesktop/UPower",
+                                       "org.freedesktop.UPower",
+                                       "Suspend");
+               m_dbusConn.sendWithReply(msg);
+       }
     else
         return;
-    }
 
-    if (error)
 #endif
-        KMessageBox::error(this, i18n("Suspend failed"));
 
 }
 
diff -wruN kdebase-3.5.10.orig/kicker/kicker/ui/k_new_mnu.h 
kdebase-3.5.10/kicker/kicker/ui/k_new_mnu.h
--- kdebase-3.5.10.orig/kicker/kicker/ui/k_new_mnu.h    2012-02-24 
14:28:32.000000000 +0400
+++ kdebase-3.5.10/kicker/kicker/ui/k_new_mnu.h 2012-02-26 09:14:15.733728378 
+0400
@@ -41,6 +41,7 @@
 #include "kmenubase.h"
 #include "service_mnu.h"
 #include "query.h"
+#include <dbus/qdbusconnection.h>
 
 class KickerClientMenu;
 class KickoffTabBar;
@@ -228,6 +229,7 @@
     FlipScrollView             * m_exitView;
     QVBox                      * m_searchWidget;
     QLabel                     * m_resizeHandle;
+    QDBusConnection              m_dbusConn;
 
     bool                       m_isresizing;
     // timer for search without pressing enter feature
++++++ ksmserver-shutdown-upower.patch ++++++
diff -wruN kdebase-3.5.10.orig/ksmserver/shutdowndlg.cpp 
kdebase-3.5.10/ksmserver/shutdowndlg.cpp
--- kdebase-3.5.10.orig/ksmserver/shutdowndlg.cpp       2012-02-22 
08:17:40.342199124 +0400
+++ kdebase-3.5.10/ksmserver/shutdowndlg.cpp    2012-02-26 05:57:11.235726994 
+0400
@@ -47,15 +47,15 @@
 #include <unistd.h>
 #include <stdlib.h>
 #include <dmctl.h>
-#include <liblazy.h>
 
 #include <X11/Xlib.h>
 
 #include "shutdowndlg.moc"
 
-#define DBUS_HAL_INTERFACE             "org.freedesktop.Hal"
-#define DBUS_HAL_SYSTEM_POWER_INTERFACE        
"org.freedesktop.Hal.Device.SystemPowerManagement"
-#define HAL_UDI_COMPUTER               "/org/freedesktop/Hal/devices/computer"
+#include <dbus/qdbusdata.h>
+#include <dbus/qdbusmessage.h>
+#include <dbus/qdbusproxy.h>
+#include <dbus/qdbusvariant.h>
 
 static const int max_faded = 2300;
 static const int slice = 20;
@@ -265,43 +265,29 @@
        } else
             QToolTip::add( btnReboot, i18n( "<qt><h3>Restart 
Computer</h3><p>Log out of the current session and restart the 
computer</p></qt>" ) );
 
-       DCOPRef kpowersave( "kpowersave", "KPowersaveIface" );
-       DCOPReply reply = kpowersave.call( "allowed_sleepingStates" );
-       if( reply.isValid()) {
-           QStringList supported = reply;
-           suspend_ram = supported.contains( "suspendToRAM" );
-           suspend_disk = supported.contains( "suspendToDisk" );
-           standby = supported.contains( "standBy" );
-       } else {
-       int supported = -1;
-       liblazy_hal_get_property_bool(HAL_UDI_COMPUTER, 
"power_management.can_suspend", &supported);
-       if (supported == 1)
-            suspend_ram = true;
-       else
-            suspend_ram = false;
-       liblazy_hal_get_property_bool(HAL_UDI_COMPUTER, 
"power_management.can_standby", &supported);
-       if (supported == 1)
-            standby = true;
-       else
-            standby = false;
-       liblazy_hal_get_property_bool(HAL_UDI_COMPUTER, 
"power_management.can_hibernate", &supported);
-       if (supported == 1)
-            suspend_disk = true;
-       else
-            suspend_disk = false;
+               m_dbusConn = 
QDBusConnection::addConnection(QDBusConnection::SystemBus);
+       
+               QDBusProxy upowerProperties("org.freedesktop.UPower", 
"/org/freedesktop/UPower", "org.freedesktop.DBus.Properties", m_dbusConn);
        
-       if 
(liblazy_hal_is_caller_privileged("org.freedesktop.hal.power-management.hibernate")
 != 1) 
-            suspend_disk = false;
-       if 
(liblazy_hal_is_caller_privileged("org.freedesktop.hal.power-management.suspend")
 != 1) 
-            suspend_ram = false;
-       if 
(liblazy_hal_is_caller_privileged("org.freedesktop.hal.power-management.standby")
 != 1) 
+               // can suspend?
+               QValueList<QDBusData> params;
+               params << QDBusData::fromString(upowerProperties.interface()) 
<< QDBusData::fromString("CanSuspend");
+               QDBusMessage reply = upowerProperties.sendWithReply("Get", 
params);
+               if(reply.type() == QDBusMessage::ReplyMessage && reply.count() 
== 1)
+                       suspend_ram = reply[0].toVariant().value.toBool();
+
+               // can hibernate?
+               params.clear();
+               params << QDBusData::fromString(upowerProperties.interface()) 
<< QDBusData::fromString("CanHibernate");
+               reply = upowerProperties.sendWithReply("Get", params);
+               if(reply.type() == QDBusMessage::ReplyMessage && reply.count() 
== 1)
+                       suspend_disk = reply[0].toVariant().value.toBool();
            standby = false;
-       }
        
        int sum = standby + suspend_ram + suspend_disk;
        if ( sum ) {
             QButton *btnSuspend;
-            if (sum > 1) {
+            if (sum >= 1) {
                  btnSuspend = new KSMDelayedPushButton( KGuiItem( 
i18n("&Suspend Computer"), "player_pause"), frame );
                  QPopupMenu *suspends = new QPopupMenu(frame);
                  if (suspend_disk)
@@ -312,8 +298,6 @@
                       suspends->insertItem(i18n("Standby"), 3);
                  connect(suspends, SIGNAL(activated(int)), 
SLOT(slotSuspend(int)));
                  
static_cast<KSMDelayedPushButton*>(btnSuspend)->setPopup(suspends);
-            } else {
-                 btnSuspend = new KPushButton( KGuiItem( i18n("&Suspend 
Computer"), "player_pause"), frame );
             }
             btnSuspend->setFont( btnFont );
             buttonlay->addWidget( btnSuspend );
@@ -334,55 +318,25 @@
 
 void KSMShutdownDlg::slotSuspend()
 {
-  int error = 0;
-    DCOPRef kpowersave( "kpowersave", "KPowersaveIface" );
-    DCOPReply reply = kpowersave.call( "allowed_sleepingStates" );
-    if( reply.isValid()) {
-       bool ok;
-       // so that screen locking can take place
-       extern Time qt_x_time;
-       XUngrabKeyboard( qt_xdisplay(), qt_x_time );
-       XUngrabPointer( qt_xdisplay(), qt_x_time );
-       XSync( qt_xdisplay(), False );
-       if( suspend_disk )
-           ok = kpowersave.call( "do_suspendToDisk" );
-       else if( suspend_ram )
-           ok = kpowersave.call( "do_suspendToRAM" );
-       else
-           ok = kpowersave.call( "do_standBy" );
-       error = ok ? 0 : 1;
-    } else {
-  
-  int wake = 0;
-  DBusMessage *reply;
 
-  if (suspend_disk)
-       error = liblazy_dbus_system_send_method_call(DBUS_HAL_INTERFACE,
-                                                   HAL_UDI_COMPUTER,
-                                                   
DBUS_HAL_SYSTEM_POWER_INTERFACE,
-                                                   "Hibernate",
-                                                   &reply,
-                                                   DBUS_TYPE_INVALID);
-  else if (suspend_ram)
-       error = liblazy_dbus_system_send_method_call(DBUS_HAL_INTERFACE,
-                                                   HAL_UDI_COMPUTER,
-                                                   
DBUS_HAL_SYSTEM_POWER_INTERFACE,
-                                                   "Suspend",
-                                                   &reply,
-                                                   DBUS_TYPE_INT32,
-                                                   &wake,
-                                                   DBUS_TYPE_INVALID);
-  else
-       error = liblazy_dbus_system_send_method_call(DBUS_HAL_INTERFACE,
-                                                   HAL_UDI_COMPUTER,
-                                                   
DBUS_HAL_SYSTEM_POWER_INTERFACE,
-                                                   "Standby",
-                                                   &reply,
-                                                   DBUS_TYPE_INVALID);
+  if (suspend_disk) {
+       if( m_dbusConn.isConnected() ) {
+               QDBusMessage msg = QDBusMessage::methodCall(
+                                       "org.freedesktop.UPower",
+                                       "/org/freedesktop/UPower",
+                                       "org.freedesktop.UPower",
+                                       "Hibernate");
+               m_dbusConn.sendWithReply(msg);
+       }
+  } else 
+       if( m_dbusConn.isConnected() ) {
+               QDBusMessage msg = QDBusMessage::methodCall(
+                                       "org.freedesktop.UPower",
+                                       "/org/freedesktop/UPower",
+                                       "org.freedesktop.UPower",
+                                       "Suspend");
+               m_dbusConn.sendWithReply(msg);
     }
-  
-  if (error)
-       KMessageBox::error(this, i18n("Suspend failed"));
   
   // possibly after resume :)
   reject();
@@ -390,60 +344,27 @@
 
 void KSMShutdownDlg::slotSuspend(int id)
 {
-  int error = 0;
-
-    DCOPRef kpowersave( "kpowersave", "KPowersaveIface" );
-    DCOPReply reply = kpowersave.call( "allowed_sleepingStates" );
-    if( reply.isValid()) {
-       bool ok;
-       extern Time qt_x_time;
-       XUngrabKeyboard( qt_xdisplay(), qt_x_time );
-       XUngrabPointer( qt_xdisplay(), qt_x_time );
-       XSync( qt_xdisplay(), False );
-       if( suspend_disk && id == 1 )
-           ok = kpowersave.call( "do_suspendToDisk" );
-       else if( suspend_ram && id == 2 )
-           ok = kpowersave.call( "do_suspendToRAM" );
-       else if( standby && id == 3 )
-           ok = kpowersave.call( "do_standBy" );
-       else
-           return;
-       error = ok ? 0 : 1;
-    } else {
-
-
-  int wake = 0;
-  DBusMessage *reply;
 
   if (suspend_disk && id == 1) {
-       error = liblazy_dbus_system_send_method_call(DBUS_HAL_INTERFACE,
-                                                   HAL_UDI_COMPUTER,
-                                                   
DBUS_HAL_SYSTEM_POWER_INTERFACE,
-                                                   "Hibernate",
-                                                   &reply,
-                                                   DBUS_TYPE_INVALID);
+       if( m_dbusConn.isConnected() ) {
+               QDBusMessage msg = QDBusMessage::methodCall(
+                                       "org.freedesktop.UPower",
+                                       "/org/freedesktop/UPower",
+                                       "org.freedesktop.UPower",
+                                       "Hibernate");
+               m_dbusConn.sendWithReply(msg);
+       }
   } else if (suspend_ram && id == 2)
-       error = liblazy_dbus_system_send_method_call(DBUS_HAL_INTERFACE,
-                                                   HAL_UDI_COMPUTER,
-                                                   
DBUS_HAL_SYSTEM_POWER_INTERFACE,
-                                                   "Suspend",
-                                                   &reply,
-                                                   DBUS_TYPE_INT32,
-                                                   &wake,
-                                                   DBUS_TYPE_INVALID);
-  else if (standby && id == 3)
-       error = liblazy_dbus_system_send_method_call(DBUS_HAL_INTERFACE,
-                                                   HAL_UDI_COMPUTER,
-                                                   
DBUS_HAL_SYSTEM_POWER_INTERFACE,
-                                                   "Standby",
-                                                   &reply,
-                                                 DBUS_TYPE_INVALID);
-  else
-       return;
+       if( m_dbusConn.isConnected() ) {
+               QDBusMessage msg = QDBusMessage::methodCall(
+                                       "org.freedesktop.UPower",
+                                       "/org/freedesktop/UPower",
+                                       "org.freedesktop.UPower",
+                                       "Suspend");
+               m_dbusConn.sendWithReply(msg);
     }
-
-  if (error)
-       KMessageBox::error(this, i18n("Suspend failed"));
+  else
+       KSMShutdownDlg::slotSuspend(); return;
   
   // possibly after resume :)
   reject();
diff -wruN kdebase-3.5.10.orig/ksmserver/shutdowndlg.h 
kdebase-3.5.10/ksmserver/shutdowndlg.h
--- kdebase-3.5.10.orig/ksmserver/shutdowndlg.h 2012-02-20 01:01:49.084200000 
+0400
+++ kdebase-3.5.10/ksmserver/shutdowndlg.h      2012-02-25 16:45:19.519737644 
+0400
@@ -12,6 +12,7 @@
 #include <qdatetime.h>
 #include <kpushbutton.h>
 #include <qimage.h>
+#include <dbus/qdbusconnection.h>
 class QPushButton;
 class QVButtonGroup;
 class QPopupMenu;
@@ -74,6 +75,7 @@
     QPopupMenu *targets;
     QStringList rebootOptions;
     bool suspend_disk, suspend_ram, standby;
+    QDBusConnection m_dbusConn;
 };
 
 class KSMDelayedPushButton : public KPushButton


-- 
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to