diff options
author | Robert Xu <robxu9@gmail.com> | 2011-11-10 18:04:39 -0500 |
---|---|---|
committer | Robert Xu <robxu9@gmail.com> | 2011-11-10 18:04:39 -0500 |
commit | 21fcfa3348213aa87f0e3aef62ca4720c6d31cb7 (patch) | |
tree | 2cfb64c59322628e613ed0895e3c3694d3abe6bd /opensuse/tdebase/ksmserver-suspend.diff | |
parent | 8667643bff14a60d8571c599efd3e48bed3e3b12 (diff) | |
download | tde-packaging-21fcfa3348213aa87f0e3aef62ca4720c6d31cb7.tar.gz tde-packaging-21fcfa3348213aa87f0e3aef62ca4720c6d31cb7.zip |
initial commit to suse branch: eclipse integration
Diffstat (limited to 'opensuse/tdebase/ksmserver-suspend.diff')
-rw-r--r-- | opensuse/tdebase/ksmserver-suspend.diff | 233 |
1 files changed, 0 insertions, 233 deletions
diff --git a/opensuse/tdebase/ksmserver-suspend.diff b/opensuse/tdebase/ksmserver-suspend.diff deleted file mode 100644 index ef7a88036..000000000 --- a/opensuse/tdebase/ksmserver-suspend.diff +++ /dev/null @@ -1,233 +0,0 @@ -Index: ksmserver/Makefile.am -=================================================================== ---- ksmserver/Makefile.am.orig -+++ ksmserver/Makefile.am -@@ -17,7 +17,7 @@ - - SUBDIRS = . - --INCLUDES= -I$(top_srcdir)/kdmlib $(all_includes) -+INCLUDES= -I$(top_srcdir)/kdmlib $(all_includes) $(DBUS_INCS) - - bin_PROGRAMS = - lib_LTLIBRARIES = -@@ -31,7 +31,7 @@ ksmserver_la_SOURCES = main.cpp server.c - KSMServerInterface.skel server.skel - - ksmserver_la_LDFLAGS = $(all_libraries) -avoid-version -module --ksmserver_la_LIBADD = ../kdmlib/libdmctl.la $(LIB_KDEUI) -+ksmserver_la_LIBADD = ../kdmlib/libdmctl.la $(LIB_KDEUI) -llazy $(DBUS_LIBS) - - picsdir = $(kde_datadir)/ksmserver/pics - pics_DATA = shutdownkonq.png -@@ -44,7 +44,7 @@ updatedir = $(kde_datadir)/kconf_update - EXTRA_PROGRAMS = testsh - testsh_SOURCES = test.cpp - testsh_LDFLAGS = $(all_libraries) $(KDE_RPATH) --testsh_LDADD = $(LIB_KDEUI) shutdowndlg.lo ../kdmlib/libdmctl.la -+testsh_LDADD = $(LIB_KDEUI) shutdowndlg.lo ../kdmlib/libdmctl.la -llazy $(DBUS_LIBS) - - messages: - $(XGETTEXT) *.cpp -o $(podir)/ksmserver.pot -Index: ksmserver/shutdowndlg.cpp -=================================================================== ---- ksmserver/shutdowndlg.cpp.orig -+++ ksmserver/shutdowndlg.cpp -@@ -38,17 +38,23 @@ Copyright (C) 2000 Matthias Ettrich <ett - #include <kpixmapeffect.h> - #include <kdialog.h> - #include <kseparator.h> -+#include <kmessagebox.h> - - #include <sys/types.h> - #include <sys/utsname.h> - #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" -+ - static const int max_faded = 2300; - static const int slice = 20; - -@@ -215,8 +221,8 @@ KSMShutdownDlg::KSMShutdownDlg( QWidget* - connect(btnLogout, SIGNAL(clicked()), SLOT(slotLogout())); - - if (maysd) { -- -- // Shutdown -+ -+ // Shutdown - KPushButton* btnHalt = new KPushButton( KGuiItem( i18n("&Turn Off Computer"), "exit"), frame ); - QToolTip::add( btnHalt, i18n( "<qt><h3>Turn Off Computer</h3><p>Log out of the current session and turn off the computer</p></qt>" ) ); - btnHalt->setFont( btnFont ); -@@ -251,13 +257,58 @@ KSMShutdownDlg::KSMShutdownDlg( QWidget* - else - targets->insertItem( label, index ); - } -- -+ - btnReboot->setPopup(targets); - connect( targets, SIGNAL(activated(int)), SLOT(slotReboot(int)) ); - } else - QToolTip::add( btnReboot, i18n( "<qt><h3>Restart Computer</h3><p>Log out of the current session and restart the computer</p></qt>" ) ); -- } - -+ 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; -+ -+ 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; -+ -+ int sum = standby + suspend_ram + suspend_disk; -+ if ( sum ) { -+ QButton *btnSuspend; -+ if (sum > 1) { -+ btnSuspend = new KSMDelayedPushButton( KGuiItem( i18n("&Suspend Computer"), "player_pause"), frame ); -+ QPopupMenu *suspends = new QPopupMenu(frame); -+ if (suspend_disk) -+ suspends->insertItem(i18n("Suspend to Disk"), 1); -+ if (suspend_ram) -+ suspends->insertItem(i18n("Suspend to RAM"), 2); -+ if (standby) -+ 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 ); -+ connect(btnSuspend, SIGNAL(clicked()), SLOT(slotSuspend())); -+ } -+ } - buttonlay->addStretch( 1 ); - - // Separator -@@ -270,6 +321,80 @@ KSMShutdownDlg::KSMShutdownDlg( QWidget* - - } - -+void KSMShutdownDlg::slotSuspend() -+{ -+ int error = 0; -+ 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 (error) -+ KMessageBox::error(this, i18n("Suspend failed")); -+ -+ // possibly after resume :) -+ reject(); -+} -+ -+void KSMShutdownDlg::slotSuspend(int id) -+{ -+ int error = 0; -+ 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); -+ } 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 (error) -+ KMessageBox::error(this, i18n("Suspend failed")); -+ -+ // possibly after resume :) -+ reject(); -+} - - void KSMShutdownDlg::slotLogout() - { -Index: ksmserver/shutdowndlg.h -=================================================================== ---- ksmserver/shutdowndlg.h.orig -+++ ksmserver/shutdowndlg.h -@@ -60,6 +60,8 @@ public slots: - void slotHalt(); - void slotReboot(); - void slotReboot(int); -+ void slotSuspend(); -+ void slotSuspend(int); - - protected: - ~KSMShutdownDlg() {}; -@@ -70,6 +72,7 @@ private: - QString m_bootOption; - QPopupMenu *targets; - QStringList rebootOptions; -+ bool suspend_disk, suspend_ram, standby; - }; - - class KSMDelayedPushButton : public KPushButton |