|
|
@ -1,11 +1,20 @@
|
|
|
|
/*****************************************************************
|
|
|
|
/*****************************************************************
|
|
|
|
ksmserver - the KDE session management server
|
|
|
|
ksmserver - the KDE session management server
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Copyright (C) 2012 Serghei Amelian <serghei.amelian@gmail.com>
|
|
|
|
Copyright (C) 2010 Timothy Pearson <kb9vqf@pearsoncomputing.net>
|
|
|
|
Copyright (C) 2010 Timothy Pearson <kb9vqf@pearsoncomputing.net>
|
|
|
|
Copyright (C) 2000 Matthias Ettrich <ettrich@kde.org>
|
|
|
|
Copyright (C) 2000 Matthias Ettrich <ettrich@kde.org>
|
|
|
|
******************************************************************/
|
|
|
|
******************************************************************/
|
|
|
|
|
|
|
|
|
|
|
|
#include "shutdowndlg.h"
|
|
|
|
#include "shutdowndlg.h"
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
#ifdef WITH_UPOWER
|
|
|
|
|
|
|
|
#include <tqdbusdata.h>
|
|
|
|
|
|
|
|
#include <tqdbusmessage.h>
|
|
|
|
|
|
|
|
#include <tqdbusproxy.h>
|
|
|
|
|
|
|
|
#include <tqdbusvariant.h>
|
|
|
|
|
|
|
|
#endif
|
|
|
|
|
|
|
|
|
|
|
|
#include <tqapplication.h>
|
|
|
|
#include <tqapplication.h>
|
|
|
|
#include <tqlayout.h>
|
|
|
|
#include <tqlayout.h>
|
|
|
|
#include <tqgroupbox.h>
|
|
|
|
#include <tqgroupbox.h>
|
|
|
@ -727,10 +736,11 @@ KSMShutdownDlg::KSMShutdownDlg( TQWidget* parent,
|
|
|
|
connect(btnLogout, TQT_SIGNAL(clicked()), TQT_SLOT(slotLogout()));
|
|
|
|
connect(btnLogout, TQT_SIGNAL(clicked()), TQT_SLOT(slotLogout()));
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
#ifndef WITH_UPOWER
|
|
|
|
#ifdef COMPILE_HALBACKEND
|
|
|
|
#ifdef COMPILE_HALBACKEND
|
|
|
|
m_halCtx = NULL;
|
|
|
|
m_halCtx = NULL;
|
|
|
|
#endif
|
|
|
|
#endif
|
|
|
|
|
|
|
|
#endif // WITH_UPOWER
|
|
|
|
|
|
|
|
|
|
|
|
if (maysd) {
|
|
|
|
if (maysd) {
|
|
|
|
|
|
|
|
|
|
|
@ -744,6 +754,25 @@ KSMShutdownDlg::KSMShutdownDlg( TQWidget* parent,
|
|
|
|
bool canSuspend = false;
|
|
|
|
bool canSuspend = false;
|
|
|
|
bool canHibernate = false;
|
|
|
|
bool canHibernate = false;
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
#ifdef WITH_UPOWER
|
|
|
|
|
|
|
|
m_dbusConn = TQT_DBusConnection::addConnection(TQT_DBusConnection::SystemBus);
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
TQT_DBusProxy upowerProperties("org.freedesktop.UPower", "/org/freedesktop/UPower", "org.freedesktop.DBus.Properties", m_dbusConn);
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
// can suspend?
|
|
|
|
|
|
|
|
TQValueList<TQT_DBusData> params;
|
|
|
|
|
|
|
|
params << TQT_DBusData::fromString(upowerProperties.interface()) << TQT_DBusData::fromString("CanSuspend");
|
|
|
|
|
|
|
|
TQT_DBusMessage reply = upowerProperties.sendWithReply("Get", params);
|
|
|
|
|
|
|
|
if(reply.type() == TQT_DBusMessage::ReplyMessage && reply.count() == 1)
|
|
|
|
|
|
|
|
canSuspend = reply[0].toVariant().value.toBool();
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
// can hibernate?
|
|
|
|
|
|
|
|
params.clear();
|
|
|
|
|
|
|
|
params << TQT_DBusData::fromString(upowerProperties.interface()) << TQT_DBusData::fromString("CanHibernate");
|
|
|
|
|
|
|
|
reply = upowerProperties.sendWithReply("Get", params);
|
|
|
|
|
|
|
|
if(reply.type() == TQT_DBusMessage::ReplyMessage && reply.count() == 1)
|
|
|
|
|
|
|
|
canHibernate = reply[0].toVariant().value.toBool();
|
|
|
|
|
|
|
|
#else
|
|
|
|
#ifdef COMPILE_HALBACKEND
|
|
|
|
#ifdef COMPILE_HALBACKEND
|
|
|
|
// Query HAL for suspend/resume support
|
|
|
|
// Query HAL for suspend/resume support
|
|
|
|
m_halCtx = libhal_ctx_new();
|
|
|
|
m_halCtx = libhal_ctx_new();
|
|
|
@ -800,6 +829,7 @@ KSMShutdownDlg::KSMShutdownDlg( TQWidget* parent,
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
#endif
|
|
|
|
#endif
|
|
|
|
|
|
|
|
#endif // WITH_UPOWER
|
|
|
|
|
|
|
|
|
|
|
|
if(doUbuntuLogout) {
|
|
|
|
if(doUbuntuLogout) {
|
|
|
|
|
|
|
|
|
|
|
@ -1043,6 +1073,22 @@ void KSMShutdownDlg::slotHalt()
|
|
|
|
|
|
|
|
|
|
|
|
void KSMShutdownDlg::slotSuspend()
|
|
|
|
void KSMShutdownDlg::slotSuspend()
|
|
|
|
{
|
|
|
|
{
|
|
|
|
|
|
|
|
#ifdef WITH_UPOWER
|
|
|
|
|
|
|
|
if (m_lockOnResume) {
|
|
|
|
|
|
|
|
DCOPRef("kdesktop", "KScreensaverIface").send("lock");
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
if( m_dbusConn.isConnected() ) {
|
|
|
|
|
|
|
|
TQT_DBusMessage msg = TQT_DBusMessage::methodCall(
|
|
|
|
|
|
|
|
"org.freedesktop.UPower",
|
|
|
|
|
|
|
|
"/org/freedesktop/UPower",
|
|
|
|
|
|
|
|
"org.freedesktop.UPower",
|
|
|
|
|
|
|
|
"Suspend");
|
|
|
|
|
|
|
|
m_dbusConn.sendWithReply(msg);
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
reject(); // continue on resume
|
|
|
|
|
|
|
|
#else
|
|
|
|
#ifdef COMPILE_HALBACKEND
|
|
|
|
#ifdef COMPILE_HALBACKEND
|
|
|
|
if (m_lockOnResume) {
|
|
|
|
if (m_lockOnResume) {
|
|
|
|
DCOPRef("kdesktop", "KScreensaverIface").send("lock");
|
|
|
|
DCOPRef("kdesktop", "KScreensaverIface").send("lock");
|
|
|
@ -1066,10 +1112,27 @@ void KSMShutdownDlg::slotSuspend()
|
|
|
|
|
|
|
|
|
|
|
|
reject(); // continue on resume
|
|
|
|
reject(); // continue on resume
|
|
|
|
#endif
|
|
|
|
#endif
|
|
|
|
|
|
|
|
#endif // WITH_UPOWER
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
void KSMShutdownDlg::slotHibernate()
|
|
|
|
void KSMShutdownDlg::slotHibernate()
|
|
|
|
{
|
|
|
|
{
|
|
|
|
|
|
|
|
#ifdef WITH_UPOWER
|
|
|
|
|
|
|
|
if (m_lockOnResume) {
|
|
|
|
|
|
|
|
DCOPRef("kdesktop", "KScreensaverIface").send("lock");
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
if( m_dbusConn.isConnected() ) {
|
|
|
|
|
|
|
|
TQT_DBusMessage msg = TQT_DBusMessage::methodCall(
|
|
|
|
|
|
|
|
"org.freedesktop.UPower",
|
|
|
|
|
|
|
|
"/org/freedesktop/UPower",
|
|
|
|
|
|
|
|
"org.freedesktop.UPower",
|
|
|
|
|
|
|
|
"Hibernate");
|
|
|
|
|
|
|
|
m_dbusConn.sendWithReply(msg);
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
reject(); // continue on resume
|
|
|
|
|
|
|
|
#else
|
|
|
|
#ifdef COMPILE_HALBACKEND
|
|
|
|
#ifdef COMPILE_HALBACKEND
|
|
|
|
if (m_lockOnResume) {
|
|
|
|
if (m_lockOnResume) {
|
|
|
|
DCOPRef("kdesktop", "KScreensaverIface").send("lock");
|
|
|
|
DCOPRef("kdesktop", "KScreensaverIface").send("lock");
|
|
|
@ -1090,6 +1153,7 @@ void KSMShutdownDlg::slotHibernate()
|
|
|
|
|
|
|
|
|
|
|
|
reject(); // continue on resume
|
|
|
|
reject(); // continue on resume
|
|
|
|
#endif
|
|
|
|
#endif
|
|
|
|
|
|
|
|
#endif // WITH_UPOWER
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
bool KSMShutdownDlg::confirmShutdown( bool maysd, KApplication::ShutdownType& sdtype, TQString& bootOption )
|
|
|
|
bool KSMShutdownDlg::confirmShutdown( bool maysd, KApplication::ShutdownType& sdtype, TQString& bootOption )
|
|
|
|