summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorSerghei Amelian <serghei.amelian@gmail.com>2012-02-15 02:36:12 +0200
committerSerghei Amelian <serghei.amelian@gmail.com>2012-02-15 02:36:12 +0200
commitb5236f1d75d5784aa9f1dac7e826921e7c464b6b (patch)
tree413aac2a5fa3b7c4ae022ab24c49661c04eda861
parent39c1afd3f898e9577981edf624e96d46777fb07e (diff)
downloadtdebase-b5236f1d.tar.gz
tdebase-b5236f1d.zip
[tdebase/ksmserver] added UPower support
-rw-r--r--CMakeLists.txt3
-rw-r--r--ConfigureChecks.cmake44
-rw-r--r--ksmserver/CMakeLists.txt8
-rw-r--r--ksmserver/shutdowndlg.cpp590
-rw-r--r--ksmserver/shutdowndlg.h170
-rw-r--r--ksmserver/startupdlg.h19
6 files changed, 459 insertions, 375 deletions
diff --git a/CMakeLists.txt b/CMakeLists.txt
index c10f65055..0385c2b00 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -77,6 +77,7 @@ option( WITH_XINERAMA "Enable xinerama extension support" ${WITH_ALL_OPTIONS} )
option( WITH_ARTS "Enable aRts support" ${WITH_ALL_OPTIONS} )
option( WITH_I8K "Enable Dell laptop support (ksysguard)" ${WITH_ALL_OPTIONS} )
option( WITH_HAL "Enable HAL support" ${WITH_ALL_OPTIONS} )
+option( WITH_UPOWER "Enable UPOWER support" ${WITH_ALL_OPTIONS} )
option( WITH_GCC_VISIBILITY "Enable fvisibility and fvisibility-inlines-hidden" ${WITH_ALL_OPTIONS} )
@@ -205,7 +206,7 @@ tde_conditional_add_subdirectory( BUILD_KSYSGUARD ksysguard )
tde_conditional_add_subdirectory( BUILD_KXKB kxkb )
tde_conditional_add_subdirectory( BUILD_TSAK tsak )
tde_conditional_add_subdirectory( BUILD_KROOTBACKING krootbacking )
-tde_conditional_add_subdirectory( BUILD_TQT3INTEGRATION tqt3integration )
+tde_conditional_add_subdirectory( BUILD_TQT3INTEGRATION tqt3integration )
##### install starttde & related stuff ##########
diff --git a/ConfigureChecks.cmake b/ConfigureChecks.cmake
index 8c84b5bc8..47c343f65 100644
--- a/ConfigureChecks.cmake
+++ b/ConfigureChecks.cmake
@@ -1,6 +1,6 @@
#################################################
#
-# (C) 2010-2011 Serghei Amelian
+# (C) 2010-2012 Serghei Amelian
# serghei (DOT) amelian (AT) gmail.com
#
# Improvements and feedback are welcome
@@ -215,7 +215,7 @@ find_package( TQt )
find_package( TDE )
-# dbus-tqt need Qt flags
+
# dbus (tdm, ksmserver)
if( BUILD_TDM OR BUILD_KSMSERVER )
@@ -224,19 +224,33 @@ if( BUILD_TDM OR BUILD_KSMSERVER )
tde_message_fatal( "dbus-1 is required, but was not found on your system" )
endif( )
- # check for dbus-tqt
- pkg_check_modules( DBUS_TQT REQUIRED dbus-tqt )
- tde_save( CMAKE_REQUIRED_INCLUDES CMAKE_REQUIRED_LIBRARIES )
- set( CMAKE_REQUIRED_INCLUDES ${DBUS_TQT_INCLUDE_DIRS} ${TQT_INCLUDE_DIRS} ${QT_INCLUDE_DIRS})
- set( CMAKE_REQUIRED_LIBRARIES ${DBUS_TQT_LDFLAGS} ${TQT_LDFLAGS} ${QT_LDFLAGS} )
- check_cxx_source_compiles("
- #include <tqt.h>
- #include <dbus/connection.h>
- int main(int, char**) { return 0; } "
- HAVE_DBUS_QT3_07 )
- tde_restore( CMAKE_REQUIRED_INCLUDES CMAKE_REQUIRED_LIBRARIES )
- if( NOT HAVE_DBUS_QT3_07 )
- tde_message_fatal( "dbus-tqt is required, but was not found on your system" )
+endif( )
+
+
+# tqt-dbus (tdm, ksmserver)
+if( BUILD_TDM OR BUILD_KSMSERVER )
+
+ if( BUILD_KSMSERVER AND WITH_UPOWER )
+ pkg_check_modules( DBUS_1_TQT dbus-1-tqt )
+ if( NOT DBUS_1_TQT_FOUND )
+ tde_message_fatal( "dbus-tqt-1 is required, but was not found on your system" )
+ endif( )
+ else( )
+ # check for dbus-tqt
+ # dbus-tqt need Qt flags
+ pkg_check_modules( DBUS_TQT REQUIRED dbus-tqt )
+ tde_save( CMAKE_REQUIRED_INCLUDES CMAKE_REQUIRED_LIBRARIES )
+ set( CMAKE_REQUIRED_INCLUDES ${DBUS_TQT_INCLUDE_DIRS} ${TQT_INCLUDE_DIRS} ${QT_INCLUDE_DIRS})
+ set( CMAKE_REQUIRED_LIBRARIES ${DBUS_TQT_LDFLAGS} ${TQT_LDFLAGS} ${QT_LDFLAGS} )
+ check_cxx_source_compiles("
+ #include <tqt.h>
+ #include <dbus/connection.h>
+ int main(int, char**) { return 0; } "
+ HAVE_DBUS_QT3_07 )
+ tde_restore( CMAKE_REQUIRED_INCLUDES CMAKE_REQUIRED_LIBRARIES )
+ if( NOT HAVE_DBUS_QT3_07 )
+ tde_message_fatal( "dbus-tqt is required, but was not found on your system" )
+ endif( )
endif( )
endif( )
diff --git a/ksmserver/CMakeLists.txt b/ksmserver/CMakeLists.txt
index d0e82ec82..bd46dadcd 100644
--- a/ksmserver/CMakeLists.txt
+++ b/ksmserver/CMakeLists.txt
@@ -13,18 +13,24 @@ if( NOT DBUS_SYSTEM_BUS )
set( DBUS_SYSTEM_BUS "unix:path=/var/run/dbus/system_bus_socket" CACHE INTERNAL "" FORCE )
endif()
+if( WITH_UPOWER )
+ add_definitions( -DWITH_UPOWER )
+endif( )
+
include_directories(
${CMAKE_CURRENT_BINARY_DIR}
${CMAKE_BINARY_DIR}
${CMAKE_SOURCE_DIR}/tdmlib
${TDE_INCLUDE_DIR}
${TQT_INCLUDE_DIRS}
+ ${DBUS_1_TQT_INCLUDE_DIRS}
${DBUS_TQT_INCLUDE_DIRS}
${HAL_INCLUDE_DIRS}
)
link_directories(
${TQT_LIBRARY_DIRS}
+ ${DBUS_1_TQT_LIBRARY_DIRS}
${DBUS_TQT_LIBRARY_DIRS}
)
@@ -43,5 +49,5 @@ tde_add_tdeinit_executable( ksmserver AUTOMOC
main.cpp server.cpp shutdowndlg.cpp startupdlg.cpp
legacy.cpp startup.cpp shutdown.cpp client.cpp
KSMServerInterface.skel server.skel timed.ui
- LINK dmctl-static tdeui-shared krsync-shared ${HAL_LIBRARIES} ${DBUS_TQT_LIBRARIES}
+ LINK dmctl-static tdeui-shared krsync-shared ${HAL_LIBRARIES} ${DBUS_1_TQT_LIBRARIES} ${DBUS_TQT_LIBRARIES}
)
diff --git a/ksmserver/shutdowndlg.cpp b/ksmserver/shutdowndlg.cpp
index 8f5610bd3..99ac8a5ff 100644
--- a/ksmserver/shutdowndlg.cpp
+++ b/ksmserver/shutdowndlg.cpp
@@ -1,11 +1,20 @@
/*****************************************************************
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) 2000 Matthias Ettrich <ettrich@kde.org>
******************************************************************/
#include "shutdowndlg.h"
+
+#ifdef WITH_UPOWER
+ #include <tqdbusdata.h>
+ #include <tqdbusmessage.h>
+ #include <tqdbusproxy.h>
+ #include <tqdbusvariant.h>
+#endif
+
#include <tqapplication.h>
#include <tqlayout.h>
#include <tqgroupbox.h>
@@ -76,42 +85,42 @@ KSMShutdownFeedback::KSMShutdownFeedback()
m_greyImageCreated( FALSE )
{
- if (kapp->isX11CompositionAvailable()) {
- m_grayImage = TQImage( TQApplication::desktop()->width(), TQApplication::desktop()->height(), 32 );
- m_grayImage = m_grayImage.convertDepth(32);
- m_grayImage.setAlphaBuffer(false);
- m_grayImage.fill(0); // Set the alpha buffer to 0 (fully transparent)
- m_grayImage.setAlphaBuffer(true);
- }
- else {
- // The hacks below aren't needed any more because Qt3 supports true transparency for the fading logout screen when composition is available
- DCOPRef("kicker", "KMenu").call("hideMenu"); // Make sure the K Menu is completely removed from the screen before taking a snapshot...
- m_grayImage = TQPixmap(TQPixmap::grabWindow(qt_xrootwin(), 0, 0, TQApplication::desktop()->width(), TQApplication::desktop()->height())).convertToImage();
- }
- m_unfadedImage = m_grayImage;
- resize(0, 0);
- setShown(true);
- TQTimer::singleShot( 500, this, TQT_SLOT( slotPaintEffect() ) );
+ if (kapp->isX11CompositionAvailable()) {
+ m_grayImage = TQImage( TQApplication::desktop()->width(), TQApplication::desktop()->height(), 32 );
+ m_grayImage = m_grayImage.convertDepth(32);
+ m_grayImage.setAlphaBuffer(false);
+ m_grayImage.fill(0); // Set the alpha buffer to 0 (fully transparent)
+ m_grayImage.setAlphaBuffer(true);
+ }
+ else {
+ // The hacks below aren't needed any more because Qt3 supports true transparency for the fading logout screen when composition is available
+ DCOPRef("kicker", "KMenu").call("hideMenu"); // Make sure the K Menu is completely removed from the screen before taking a snapshot...
+ m_grayImage = TQPixmap(TQPixmap::grabWindow(qt_xrootwin(), 0, 0, TQApplication::desktop()->width(), TQApplication::desktop()->height())).convertToImage();
+ }
+ m_unfadedImage = m_grayImage;
+ resize(0, 0);
+ setShown(true);
+ TQTimer::singleShot( 500, this, TQT_SLOT( slotPaintEffect() ) );
}
// called after stopping shutdown-feedback -> smooth fade-back to color-mode
void KSMShutdownFeedback::fadeBack( void )
{
- m_fadeTime.restart();
- m_fadeBackwards = TRUE;
- // its possible that we have to fade back, before all is completely gray, so we cannot start
- // with completely gray when fading back...
- m_compensation = 1.0f - m_grayOpacity;
- // wait until we're completely back in color-mode...
- while ( m_grayOpacity > 0.0f )
- slotPaintEffect();
+ m_fadeTime.restart();
+ m_fadeBackwards = TRUE;
+ // its possible that we have to fade back, before all is completely gray, so we cannot start
+ // with completely gray when fading back...
+ m_compensation = 1.0f - m_grayOpacity;
+ // wait until we're completely back in color-mode...
+ while ( m_grayOpacity > 0.0f )
+ slotPaintEffect();
}
void KSMShutdownFeedback::slotPaintEffect()
{
- // determine which fade to use
+ // determine which fade to use
if (KConfigGroup(KGlobal::config(), "Logout").readBoolEntry("doFancyLogout", true))
- {
+ {
float doFancyLogoutAdditionalDarkness = (float)KConfigGroup(KGlobal::config(), "Logout").readDoubleNumEntry("doFancyLogoutAdditionalDarkness", 0.6);
@@ -132,10 +141,10 @@ void KSMShutdownFeedback::slotPaintEffect()
m_root.resize( width(), height() );
TQImage blendedImage = m_grayImage;
TQPainter p;
- p.begin( &m_root );
- blendedImage.setAlphaBuffer(false);
- p.drawImage( 0, 0, blendedImage );
- p.end();
+ p.begin( &m_root );
+ blendedImage.setAlphaBuffer(false);
+ p.drawImage( 0, 0, blendedImage );
+ p.end();
setBackgroundPixmap( m_root );
setGeometry( TQApplication::desktop()->geometry() );
@@ -264,12 +273,12 @@ void KSMShutdownFeedback::slotPaintEffect()
m_fadeTime.start();
m_rowsDone = 0;
}
-
+
// return if fading is completely done...
if ( ( m_grayOpacity >= 1.0f && m_fadeBackwards == FALSE ) || ( m_grayOpacity <= 0.0f && m_fadeBackwards == TRUE ) )
return;
-
-
+
+
if ( m_fadeBackwards == FALSE )
{
m_grayOpacity = m_fadeTime.elapsed() / doFancyLogoutFadeTime;
@@ -282,21 +291,21 @@ void KSMShutdownFeedback::slotPaintEffect()
if ( m_grayOpacity < 0.0f )
m_grayOpacity = 0.0f;
}
-
+
const int imgWidth = m_unfadedImage.width();
int imgHeight = m_unfadedImage.height();
int heightUnit = imgHeight / 3;
if( heightUnit < 1 )
heightUnit = 1;
-
+
int y1 = static_cast<int>( imgHeight*m_grayOpacity - heightUnit + m_grayOpacity*heightUnit*2.0f );
if( y1 > imgHeight )
y1 = imgHeight;
-
+
int y2 = y1+heightUnit;
if( y2 > imgHeight )
y2 = imgHeight;
-
+
if( m_fadeBackwards == FALSE )
{
if( y1 > 0 && y1 < imgHeight && y1-m_rowsDone > 0 && m_rowsDone < imgHeight )
@@ -325,7 +334,7 @@ void KSMShutdownFeedback::slotPaintEffect()
m_rowsDone = y2;
}
}
-
+
int start_y1 = y1;
if( start_y1 < 0 )
start_y1 = 0;
@@ -362,11 +371,11 @@ void KSMShutdownFeedback::slotPaintEffect()
TQTimer::singleShot( 5, this, TQT_SLOT( slotPaintEffect() ) );
}
- }
- // standard logout fade
- else
- {
- if (kapp->isX11CompositionAvailable()) {
+ }
+ // standard logout fade
+ else
+ {
+ if (kapp->isX11CompositionAvailable()) {
// We can do this in a different (simpler) manner because we have compositing support!
// The end effect will be very similar to the old style logout
float doFancyLogoutFadeTime = 1000;
@@ -402,12 +411,12 @@ void KSMShutdownFeedback::slotPaintEffect()
m_fadeTime.start();
m_rowsDone = 0;
}
-
+
// return if fading is completely done...
if ( ( m_grayOpacity >= 1.0f && m_fadeBackwards == FALSE ) || ( m_grayOpacity <= 0.0f && m_fadeBackwards == TRUE ) )
return;
-
-
+
+
if ( m_fadeBackwards == FALSE )
{
m_grayOpacity = m_fadeTime.elapsed() / doFancyLogoutFadeTime;
@@ -420,21 +429,21 @@ void KSMShutdownFeedback::slotPaintEffect()
if ( m_grayOpacity < 0.0f )
m_grayOpacity = 0.0f;
}
-
+
const int imgWidth = m_unfadedImage.width();
int imgHeight = m_unfadedImage.height();
int heightUnit = imgHeight / 3;
if( heightUnit < 1 )
heightUnit = 1;
-
+
int y1 = static_cast<int>( imgHeight*m_grayOpacity - heightUnit + m_grayOpacity*heightUnit*2.0f );
if( y1 > imgHeight )
y1 = imgHeight;
-
+
int y2 = y1+heightUnit;
if( y2 > imgHeight )
y2 = imgHeight;
-
+
if( m_fadeBackwards == FALSE )
{
if( y1 > 0 && y1 < imgHeight && y1-m_rowsDone > 0 && m_rowsDone < imgHeight )
@@ -479,35 +488,35 @@ void KSMShutdownFeedback::slotPaintEffect()
}
TQTimer::singleShot( 1, this, TQT_SLOT( slotPaintEffect() ) );
- }
- else {
- if ( m_currentY >= height() ) {
- if ( backgroundMode() == TQWidget::NoBackground ) {
- setBackgroundMode( TQWidget::NoBackground );
- setBackgroundPixmap( m_root );
- }
- return;
- }
-
- if ( m_currentY == 0 ) {
+ }
+ else {
+ if ( m_currentY >= height() ) {
+ if ( backgroundMode() == TQWidget::NoBackground ) {
+ setBackgroundMode( TQWidget::NoBackground );
+ setBackgroundPixmap( m_root );
+ }
+ return;
+ }
+
+ if ( m_currentY == 0 ) {
KPixmap pixmap;
pixmap = TQPixmap(TQPixmap::grabWindow( qt_xrootwin(), 0, 0, width(), height() ));
bitBlt( this, 0, 0, &pixmap );
bitBlt( &m_root, 0, 0, &pixmap );
- }
-
- KPixmap pixmap;
- pixmap = TQPixmap(TQPixmap::grabWindow( qt_xrootwin(), 0, m_currentY, width(), 10 ));
- TQImage image = pixmap.convertToImage();
- KImageEffect::blend( Qt::black, image, 0.4 );
- KImageEffect::toGray( image, true );
- pixmap.convertFromImage( image );
- bitBlt( this, 0, m_currentY, &pixmap );
- bitBlt( &m_root, 0, m_currentY, &pixmap );
- m_currentY += 10;
- TQTimer::singleShot( 1, this, TQT_SLOT( slotPaintEffect() ) );
- }
- }
+ }
+
+ KPixmap pixmap;
+ pixmap = TQPixmap(TQPixmap::grabWindow( qt_xrootwin(), 0, m_currentY, width(), 10 ));
+ TQImage image = pixmap.convertToImage();
+ KImageEffect::blend( Qt::black, image, 0.4 );
+ KImageEffect::toGray( image, true );
+ pixmap.convertFromImage( image );
+ bitBlt( this, 0, m_currentY, &pixmap );
+ bitBlt( &m_root, 0, m_currentY, &pixmap );
+ m_currentY += 10;
+ TQTimer::singleShot( 1, this, TQT_SLOT( slotPaintEffect() ) );
+ }
+ }
}
@@ -530,7 +539,7 @@ KSMShutdownIPFeedback::KSMShutdownIPFeedback()
filename.prepend("/tmp/kde-");
filename.append("/krootbacking.png");
remove(filename.ascii());
- system("krootbacking &");
+ system("krootbacking &");
}
// eliminate nasty flicker on first show
@@ -639,33 +648,33 @@ void KSMShutdownIPFeedback::slotPaintEffect()
//////
KSMShutdownDlg::KSMShutdownDlg( TQWidget* parent,
- bool maysd, KApplication::ShutdownType sdtype )
+ bool maysd, KApplication::ShutdownType sdtype )
: TQDialog( parent, 0, TRUE, (WFlags)WType_Popup ), targets(0)
- // this is a WType_Popup on purpose. Do not change that! Not
- // having a popup here has severe side effects.
+ // this is a WType_Popup on purpose. Do not change that! Not
+ // having a popup here has severe side effects.
{
- TQVBoxLayout* vbox = new TQVBoxLayout( this );
+ TQVBoxLayout* vbox = new TQVBoxLayout( this );
- TQFrame* frame = new TQFrame( this );
- frame->setFrameStyle( TQFrame::StyledPanel | TQFrame::Raised );
- frame->setLineWidth( style().pixelMetric( TQStyle::PM_DefaultFrameWidth, frame ) );
+ TQFrame* frame = new TQFrame( this );
+ frame->setFrameStyle( TQFrame::StyledPanel | TQFrame::Raised );
+ frame->setLineWidth( style().pixelMetric( TQStyle::PM_DefaultFrameWidth, frame ) );
// we need to set the minimum size for the logout box, since it
// gets too small if there isn't all options available
frame->setMinimumWidth(400);
- vbox->addWidget( frame );
- vbox = new TQVBoxLayout( frame, 2 * KDialog::marginHint(),
- 2 * KDialog::spacingHint() );
+ vbox->addWidget( frame );
+ vbox = new TQVBoxLayout( frame, 2 * KDialog::marginHint(),
+ 2 * KDialog::spacingHint() );
// default factor
- bool doUbuntuLogout = KConfigGroup(KGlobal::config(), "Logout").readBoolEntry("doUbuntuLogout", false);
+ bool doUbuntuLogout = KConfigGroup(KGlobal::config(), "Logout").readBoolEntry("doUbuntuLogout", false);
- // slighty more space for the new logout
+ // slighty more space for the new logout
int factor = 2;
- if(doUbuntuLogout)
- {
+ if(doUbuntuLogout)
+ {
factor = 8;
}
else {
@@ -721,20 +730,21 @@ KSMShutdownDlg::KSMShutdownDlg( TQWidget* parent,
buttonlay->addStretch( 1 );
// End session
KPushButton* btnLogout = new KPushButton( KGuiItem( i18n("&End Current Session"), "undo"), frame );
- TQToolTip::add( btnLogout, i18n( "<qt><h3>End Current Session</h3><p>Log out of the current session to login with a different user</p></qt>" ) );
+ TQToolTip::add( btnLogout, i18n( "<qt><h3>End Current Session</h3><p>Log out of the current session to login with a different user</p></qt>" ) );
btnFont = btnLogout->font();
buttonlay->addWidget( btnLogout );
connect(btnLogout, TQT_SIGNAL(clicked()), TQT_SLOT(slotLogout()));
}
-
+#ifndef WITH_UPOWER
#ifdef COMPILE_HALBACKEND
m_halCtx = NULL;
#endif
+#endif // WITH_UPOWER
if (maysd) {
- // respect lock on resume & disable suspend/hibernate settings
+ // respect lock on resume & disable suspend/hibernate settings
// from power-manager
KConfig config("power-managerrc");
bool disableSuspend = config.readBoolEntry("disableSuspend", false);
@@ -744,6 +754,25 @@ KSMShutdownDlg::KSMShutdownDlg( TQWidget* parent,
bool canSuspend = 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
// Query HAL for suspend/resume support
m_halCtx = libhal_ctx_new();
@@ -785,13 +814,13 @@ KSMShutdownDlg::KSMShutdownDlg( TQWidget* parent,
{
if (libhal_device_get_property_bool(m_halCtx,
"/org/freedesktop/Hal/devices/computer",
- "power_management.can_suspend",
+ "power_management.can_suspend",
NULL))
{
canSuspend = true;
}
- if (libhal_device_get_property_bool(m_halCtx,
+ if (libhal_device_get_property_bool(m_halCtx,
"/org/freedesktop/Hal/devices/computer",
"power_management.can_hibernate",
NULL))
@@ -800,6 +829,7 @@ KSMShutdownDlg::KSMShutdownDlg( TQWidget* parent,
}
}
#endif
+#endif // WITH_UPOWER
if(doUbuntuLogout) {
@@ -809,21 +839,21 @@ KSMShutdownDlg::KSMShutdownDlg( TQWidget* parent,
FlatButton* btnSuspend = new FlatButton( frame );
btnSuspend->setTextLabel( i18n("&Suspend"), false );
btnSuspend->setPixmap( DesktopIcon( "suspend") );
- int i = btnSuspend->textLabel().find( TQRegExp("\\&"), 0 ); // i == 1
+ int i = btnSuspend->textLabel().find( TQRegExp("\\&"), 0 ); // i == 1
btnSuspend->setAccel( "ALT+" + btnSuspend->textLabel().lower()[i+1] ) ;
hbuttonbox->addWidget ( btnSuspend);
connect(btnSuspend, TQT_SIGNAL(clicked()), TQT_SLOT(slotSuspend()));
}
-
+
if (canHibernate && !disableHibernate)
{
// Hibernate
FlatButton* btnHibernate = new FlatButton( frame );
- btnHibernate->setTextLabel( i18n("&Hibernate"), false );
+ btnHibernate->setTextLabel( i18n("&Hibernate"), false );
btnHibernate->setPixmap( DesktopIcon( "hibernate") );
int i = btnHibernate->textLabel().find( TQRegExp("\\&"), 0 ); // i == 1
- btnHibernate->setAccel( "ALT+" + btnHibernate->textLabel().lower()[i+1] ) ;
- hbuttonbox->addWidget ( btnHibernate);
+ btnHibernate->setAccel( "ALT+" + btnHibernate->textLabel().lower()[i+1] ) ;
+ hbuttonbox->addWidget ( btnHibernate);
connect(btnHibernate, TQT_SIGNAL(clicked()), TQT_SLOT(slotHibernate()));
}
@@ -833,12 +863,12 @@ KSMShutdownDlg::KSMShutdownDlg( TQWidget* parent,
// bottom buttons
TQHBoxLayout* hbuttonbox2 = new TQHBoxLayout( vbox, factor * KDialog::spacingHint() );
hbuttonbox2->setAlignment( Qt::AlignHCenter );
-
+
// Reboot
FlatButton* btnReboot = new FlatButton( frame );
btnReboot->setTextLabel( i18n("&Restart"), false );
btnReboot->setPixmap( DesktopIcon( "reload") );
- int i = btnReboot->textLabel().find( TQRegExp("\\&"), 0 ); // i == 1
+ int i = btnReboot->textLabel().find( TQRegExp("\\&"), 0 ); // i == 1
btnReboot->setAccel( "ALT+" + btnReboot->textLabel().lower()[i+1] ) ;
hbuttonbox2->addWidget ( btnReboot);
connect(btnReboot, TQT_SIGNAL(clicked()), TQT_SLOT(slotReboot()));
@@ -852,7 +882,7 @@ KSMShutdownDlg::KSMShutdownDlg( TQWidget* parent,
targets = new TQPopupMenu( frame );
if ( cur == -1 )
cur = def;
-
+
int index = 0;
for (TQStringList::ConstIterator it = rebootOptions.begin(); it != rebootOptions.end(); ++it, ++index)
{
@@ -863,12 +893,12 @@ KSMShutdownDlg::KSMShutdownDlg( TQWidget* parent,
else
targets->insertItem( label, index );
}
-
+
btnReboot->setPopup(targets);
connect( targets, TQT_SIGNAL(activated(int)), TQT_SLOT(slotReboot(int)) );
}
// BAD CARMA .. this code is copied line by line from standard konqy dialog [EOF]
-
+
// Shutdown
FlatButton* btnHalt = new FlatButton( frame );
btnHalt->setTextLabel( i18n("&Turn Off"), false );
@@ -888,36 +918,36 @@ KSMShutdownDlg::KSMShutdownDlg( TQWidget* parent,
KSMPushButton* btnBack = new KSMPushButton( KStdGuiItem::cancel(), frame );
hbuttonbox3->addWidget( btnBack );
connect(btnBack, TQT_SIGNAL(clicked()), TQT_SLOT(reject()));
-
+
}
- else
+ else
{
// Shutdown
KPushButton* btnHalt = new KPushButton( KGuiItem( i18n("&Turn Off Computer"), "exit"), frame );
- TQToolTip::add( btnHalt, i18n( "<qt><h3>Turn Off Computer</h3><p>Log out of the current session and turn off the computer</p></qt>" ) );
+ TQToolTip::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 );
buttonlay->addWidget( btnHalt );
connect(btnHalt, TQT_SIGNAL(clicked()), TQT_SLOT(slotHalt()));
- if ( sdtype == KApplication::ShutdownTypeHalt || getenv("TDM_AUTOLOGIN") )
+ if ( sdtype == KApplication::ShutdownTypeHalt || getenv("TDM_AUTOLOGIN") )
btnHalt->setFocus();
-
+
// Reboot
KSMDelayedPushButton* btnReboot = new KSMDelayedPushButton( KGuiItem( i18n("&Restart Computer"), "reload"), frame );
- TQToolTip::add( btnReboot, i18n( "<qt><h3>Restart Computer</h3><p>Log out of the current session and restart the computer</p><p>Hold the mouse button or the space bar for a short while to get a list of options what to boot</p></qt>" ) );
+ TQToolTip::add( btnReboot, i18n( "<qt><h3>Restart Computer</h3><p>Log out of the current session and restart the computer</p><p>Hold the mouse button or the space bar for a short while to get a list of options what to boot</p></qt>" ) );
btnReboot->setFont( btnFont );
buttonlay->addWidget( btnReboot );
-
+
connect(btnReboot, TQT_SIGNAL(clicked()), TQT_SLOT(slotReboot()));
if ( sdtype == KApplication::ShutdownTypeReboot )
btnReboot->setFocus();
-
+
// this section is copied as-is into ubuntulogout as well
int def, cur;
if ( DM().bootOptions( rebootOptions, def, cur ) ) {
targets = new TQPopupMenu( frame );
if ( cur == -1 )
cur = def;
-
+
int index = 0;
for (TQStringList::ConstIterator it = rebootOptions.begin(); it != rebootOptions.end(); ++it, ++index)
{
@@ -928,12 +958,12 @@ KSMShutdownDlg::KSMShutdownDlg( TQWidget* parent,
else
targets->insertItem( label, index );
}
-
+
btnReboot->setPopup(targets);
connect( targets, TQT_SIGNAL(activated(int)), TQT_SLOT(slotReboot(int)) );
}
-
-
+
+
if (canSuspend && !disableSuspend)
{
KPushButton* btnSuspend = new KPushButton( KGuiItem( i18n("&Suspend Computer"), "suspend"), frame );
@@ -941,7 +971,7 @@ KSMShutdownDlg::KSMShutdownDlg( TQWidget* parent,
buttonlay->addWidget( btnSuspend );
connect(btnSuspend, TQT_SIGNAL(clicked()), TQT_SLOT(slotSuspend()));
}
-
+
if (canHibernate && !disableHibernate)
{
KPushButton* btnHibernate = new KPushButton( KGuiItem( i18n("&Hibernate Computer"), "hibernate"), frame );
@@ -951,7 +981,7 @@ KSMShutdownDlg::KSMShutdownDlg( TQWidget* parent,
}
buttonlay->addStretch( 1 );
-
+
// Separator
buttonlay->addWidget( new KSeparator( frame ) );
@@ -977,7 +1007,7 @@ KSMShutdownDlg::KSMShutdownDlg( TQWidget* parent,
connect(btnBack, TQT_SIGNAL(clicked()), TQT_SLOT(reject()));
}
- else
+ else
{
// Separator
buttonlay->addWidget( new KSeparator( frame ) );
@@ -999,130 +1029,164 @@ KSMShutdownDlg::KSMShutdownDlg( TQWidget* parent,
KSMShutdownDlg::~KSMShutdownDlg()
{
#ifdef COMPILE_HALBACKEND
- if (m_halCtx)
- {
- DBusError error;
- dbus_error_init(&error);
- libhal_ctx_shutdown(m_halCtx, &error);
- libhal_ctx_free(m_halCtx);
- }
+ if (m_halCtx)
+ {
+ DBusError error;
+ dbus_error_init(&error);
+ libhal_ctx_shutdown(m_halCtx, &error);
+ libhal_ctx_free(m_halCtx);
+ }
#endif
}
void KSMShutdownDlg::slotLogout()
{
- m_shutdownType = KApplication::ShutdownTypeNone;
- accept();
+ m_shutdownType = KApplication::ShutdownTypeNone;
+ accept();
}
void KSMShutdownDlg::slotReboot()
{
- // no boot option selected -> current
- m_bootOption = TQString::null;
- m_shutdownType = KApplication::ShutdownTypeReboot;
- accept();
+ // no boot option selected -> current
+ m_bootOption = TQString::null;
+ m_shutdownType = KApplication::ShutdownTypeReboot;
+ accept();
}
void KSMShutdownDlg::slotReboot(int opt)
{
- if (int(rebootOptions.size()) > opt)
- m_bootOption = rebootOptions[opt];
- m_shutdownType = KApplication::ShutdownTypeReboot;
- accept();
+ if (int(rebootOptions.size()) > opt)
+ m_bootOption = rebootOptions[opt];
+ m_shutdownType = KApplication::ShutdownTypeReboot;
+ accept();
}
void KSMShutdownDlg::slotHalt()
{
- m_bootOption = TQString::null;
- m_shutdownType = KApplication::ShutdownTypeHalt;
- accept();
+ m_bootOption = TQString::null;
+ m_shutdownType = KApplication::ShutdownTypeHalt;
+ accept();
}
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
- if (m_lockOnResume) {
- DCOPRef("kdesktop", "KScreensaverIface").send("lock");
- }
+ if (m_lockOnResume) {
+ DCOPRef("kdesktop", "KScreensaverIface").send("lock");
+ }
- if (m_dbusConn)
- {
- DBusMessage *msg = dbus_message_new_method_call(
- "org.freedesktop.Hal",
- "/org/freedesktop/Hal/devices/computer",
- "org.freedesktop.Hal.Device.SystemPowerManagement",
- "Suspend");
+ if (m_dbusConn)
+ {
+ DBusMessage *msg = dbus_message_new_method_call(
+ "org.freedesktop.Hal",
+ "/org/freedesktop/Hal/devices/computer",
+ "org.freedesktop.Hal.Device.SystemPowerManagement",
+ "Suspend");
- int wakeup=0;
- dbus_message_append_args(msg, DBUS_TYPE_INT32, &wakeup, DBUS_TYPE_INVALID);
+ int wakeup=0;
+ dbus_message_append_args(msg, DBUS_TYPE_INT32, &wakeup, DBUS_TYPE_INVALID);
- dbus_connection_send(m_dbusConn, msg, NULL);
+ dbus_connection_send(m_dbusConn, msg, NULL);
- dbus_message_unref(msg);
- }
+ dbus_message_unref(msg);
+ }
- reject(); // continue on resume
+ reject(); // continue on resume
#endif
+#endif // WITH_UPOWER
}
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
- if (m_lockOnResume) {
- DCOPRef("kdesktop", "KScreensaverIface").send("lock");
- }
+ if (m_lockOnResume) {
+ DCOPRef("kdesktop", "KScreensaverIface").send("lock");
+ }
- if (m_dbusConn)
- {
- DBusMessage *msg = dbus_message_new_method_call(
- "org.freedesktop.Hal",
- "/org/freedesktop/Hal/devices/computer",
- "org.freedesktop.Hal.Device.SystemPowerManagement",
- "Hibernate");
+ if (m_dbusConn)
+ {
+ DBusMessage *msg = dbus_message_new_method_call(
+ "org.freedesktop.Hal",
+ "/org/freedesktop/Hal/devices/computer",
+ "org.freedesktop.Hal.Device.SystemPowerManagement",
+ "Hibernate");
- dbus_connection_send(m_dbusConn, msg, NULL);
+ dbus_connection_send(m_dbusConn, msg, NULL);
- dbus_message_unref(msg);
- }
+ dbus_message_unref(msg);
+ }
- reject(); // continue on resume
+ reject(); // continue on resume
#endif
+#endif // WITH_UPOWER
}
bool KSMShutdownDlg::confirmShutdown( bool maysd, KApplication::ShutdownType& sdtype, TQString& bootOption )
{
- kapp->enableStyles();
- KSMShutdownDlg* l = new KSMShutdownDlg( 0,
- //KSMShutdownFeedback::self(),
- maysd, sdtype );
+ kapp->enableStyles();
+ KSMShutdownDlg* l = new KSMShutdownDlg( 0,
+ //KSMShutdownFeedback::self(),
+ maysd, sdtype );
- // Show dialog (will save the background in showEvent)
- TQSize sh = l->sizeHint();
- TQRect rect = KGlobalSettings::desktopGeometry(TQCursor::pos());
+ // Show dialog (will save the background in showEvent)
+ TQSize sh = l->sizeHint();
+ TQRect rect = KGlobalSettings::desktopGeometry(TQCursor::pos());
- l->move(rect.x() + (rect.width() - sh.width())/2,
- rect.y() + (rect.height() - sh.height())/2);
- bool result = l->exec();
- sdtype = l->m_shutdownType;
- bootOption = l->m_bootOption;
+ l->move(rect.x() + (rect.width() - sh.width())/2,
+ rect.y() + (rect.height() - sh.height())/2);
+ bool result = l->exec();
+ sdtype = l->m_shutdownType;
+ bootOption = l->m_bootOption;
- delete l;
+ delete l;
- kapp->disableStyles();
- return result;
+ kapp->disableStyles();
+ return result;
}
TQWidget* KSMShutdownIPDlg::showShutdownIP()
{
- kapp->enableStyles();
- KSMShutdownIPDlg* l = new KSMShutdownIPDlg( 0 );
+ kapp->enableStyles();
+ KSMShutdownIPDlg* l = new KSMShutdownIPDlg( 0 );
- kapp->disableStyles();
+ kapp->disableStyles();
- return l;
+ return l;
}
KSMShutdownIPDlg::KSMShutdownIPDlg(TQWidget* parent)
@@ -1140,8 +1204,8 @@ KSMShutdownIPDlg::~KSMShutdownIPDlg()
}
KSMDelayedPushButton::KSMDelayedPushButton( const KGuiItem &item,
- TQWidget *parent,
- const char *name)
+ TQWidget *parent,
+ const char *name)
: KPushButton( item, parent, name), pop(0), popt(0)
{
connect(this, TQT_SIGNAL(pressed()), TQT_SLOT(slotPressed()));
@@ -1159,7 +1223,7 @@ void KSMDelayedPushButton::setPopup(TQPopupMenu *p)
void KSMDelayedPushButton::slotPressed()
{
if (pop)
- popt->start(TQApplication::startDragTime());
+ popt->start(TQApplication::startDragTime());
}
void KSMDelayedPushButton::slotReleased()
@@ -1178,97 +1242,97 @@ void KSMDelayedPushButton::slotTimeout()
}
KSMDelayedMessageBox::KSMDelayedMessageBox( KApplication::ShutdownType sdtype, const TQString &bootOption, int confirmDelay )
- : TimedLogoutDlg( 0, 0, true, (WFlags)WType_Popup ), m_remaining(confirmDelay)
+ : TimedLogoutDlg( 0, 0, true, (WFlags)WType_Popup ), m_remaining(confirmDelay)
{
- if ( sdtype == KApplication::ShutdownTypeHalt )
- {
- m_title->setText( i18n( "Would you like to turn off your computer?" ) );
- m_template = i18n( "This computer will turn off automatically\n"
- "after %1 seconds." );
- m_logo->setPixmap( BarIcon( "exit", 48 ) );
- } else if ( sdtype == KApplication::ShutdownTypeReboot )
- {
- if (bootOption.isEmpty())
- m_title->setText( i18n( "Would you like to reboot your computer?" ) );
- else
- m_title->setText( i18n( "Would you like to reboot to \"%1\"?" ).arg(bootOption) );
- m_template = i18n( "This computer will reboot automatically\n"
- "after %1 seconds." );
- m_logo->setPixmap( BarIcon( "reload", 48 ) );
- } else {
- m_title->setText( i18n( "Would you like to end your current session?" ) );
- m_template = i18n( "This session will end\n"
- "after %1 seconds automatically." );
- m_logo->setPixmap( BarIcon( "previous", 48 ) );
- }
-
- updateText();
- adjustSize();
- if ( double( height() ) / width() < 0.25 )
- {
- setFixedHeight( tqRound( width() * 0.3 ) );
- adjustSize();
- }
- TQTimer *timer = new TQTimer( this );
- timer->start( 1000 );
- connect( timer, TQT_SIGNAL( timeout() ), TQT_SLOT( updateText() ) );
- KDialog::centerOnScreen(this);
+ if ( sdtype == KApplication::ShutdownTypeHalt )
+ {
+ m_title->setText( i18n( "Would you like to turn off your computer?" ) );
+ m_template = i18n( "This computer will turn off automatically\n"
+ "after %1 seconds." );
+ m_logo->setPixmap( BarIcon( "exit", 48 ) );
+ } else if ( sdtype == KApplication::ShutdownTypeReboot )
+ {
+ if (bootOption.isEmpty())
+ m_title->setText( i18n( "Would you like to reboot your computer?" ) );
+ else
+ m_title->setText( i18n( "Would you like to reboot to \"%1\"?" ).arg(bootOption) );
+ m_template = i18n( "This computer will reboot automatically\n"
+ "after %1 seconds." );
+ m_logo->setPixmap( BarIcon( "reload", 48 ) );
+ } else {
+ m_title->setText( i18n( "Would you like to end your current session?" ) );
+ m_template = i18n( "This session will end\n"
+ "after %1 seconds automatically." );
+ m_logo->setPixmap( BarIcon( "previous", 48 ) );
+ }
+
+ updateText();
+ adjustSize();
+ if ( double( height() ) / width() < 0.25 )
+ {
+ setFixedHeight( tqRound( width() * 0.3 ) );
+ adjustSize();
+ }
+ TQTimer *timer = new TQTimer( this );
+ timer->start( 1000 );
+ connect( timer, TQT_SIGNAL( timeout() ), TQT_SLOT( updateText() ) );
+ KDialog::centerOnScreen(this);
}
void KSMDelayedMessageBox::updateText()
{
- m_remaining--;
- if ( m_remaining == 0 )
- {
- accept();
- return;
- }
- m_text->setText( m_template.arg( m_remaining ) );
+ m_remaining--;
+ if ( m_remaining == 0 )
+ {
+ accept();
+ return;
+ }
+ m_text->setText( m_template.arg( m_remaining ) );
}
bool KSMDelayedMessageBox::showTicker( KApplication::ShutdownType sdtype, const TQString &bootOption, int confirmDelay )
{
- kapp->enableStyles();
- KSMDelayedMessageBox msg( sdtype, bootOption, confirmDelay );
- TQSize sh = msg.sizeHint();
- TQRect rect = KGlobalSettings::desktopGeometry(TQCursor::pos());
+ kapp->enableStyles();
+ KSMDelayedMessageBox msg( sdtype, bootOption, confirmDelay );
+ TQSize sh = msg.sizeHint();
+ TQRect rect = KGlobalSettings::desktopGeometry(TQCursor::pos());
- msg.move(rect.x() + (rect.width() - sh.width())/2,
- rect.y() + (rect.height() - sh.height())/2);
- bool result = msg.exec();
+ msg.move(rect.x() + (rect.width() - sh.width())/2,
+ rect.y() + (rect.height() - sh.height())/2);
+ bool result = msg.exec();
- kapp->disableStyles();
- return result;
+ kapp->disableStyles();
+ return result;
}
KSMPushButton::KSMPushButton( const KGuiItem &item,
- TQWidget *parent,
- const char *name)
+ TQWidget *parent,
+ const char *name)
: KPushButton( item, parent, name),
- m_pressed(false)
+ m_pressed(false)
{
setDefault( false );
- setAutoDefault ( false );
+ setAutoDefault ( false );
}
void KSMPushButton::keyPressEvent( TQKeyEvent* e )
{
-switch ( e->key() )
+switch ( e->key() )
{
- case Key_Enter:
- case Key_Return:
- case Key_Space:
- m_pressed = TRUE;
+ case Key_Enter:
+ case Key_Return:
+ case Key_Space:
+ m_pressed = TRUE;
setDown(true);
- emit pressed();
- break;
+ emit pressed();
+ break;
case Key_Escape:
e->ignore();
break;
- default:
- e->ignore();
- }
+ default:
+ e->ignore();
+ }
TQPushButton::keyPressEvent(e);
}
@@ -1276,12 +1340,12 @@ switch ( e->key() )
void KSMPushButton::keyReleaseEvent( TQKeyEvent* e )
{
- switch ( e->key() )
+ switch ( e->key() )
{
case Key_Space:
case Key_Enter:
case Key_Return:
- if ( m_pressed )
+ if ( m_pressed )
{
setDown(false);
m_pressed = FALSE;
@@ -1303,7 +1367,7 @@ void KSMPushButton::keyReleaseEvent( TQKeyEvent* e )
FlatButton::FlatButton( TQWidget *parent, const char *name )
: TQToolButton( parent, name/*, TQt::WNoAutoErase*/ ),
- m_pressed(false)
+ m_pressed(false)
{
init();
}
@@ -1318,13 +1382,13 @@ void FlatButton::init()
setUsesBigPixmap(true);
setAutoRaise(true);
setTextPosition( TQToolButton::Under );
- setFocusPolicy(TQ_StrongFocus);
+ setFocusPolicy(TQ_StrongFocus);
}
void FlatButton::keyPressEvent( TQKeyEvent* e )
{
- switch ( e->key() )
+ switch ( e->key() )
{
case Key_Enter:
case Key_Return:
@@ -1346,12 +1410,12 @@ void FlatButton::keyPressEvent( TQKeyEvent* e )
void FlatButton::keyReleaseEvent( TQKeyEvent* e )
{
- switch ( e->key() )
+ switch ( e->key() )
{
case Key_Space:
case Key_Enter:
case Key_Return:
- if ( m_pressed )
+ if ( m_pressed )
{
setDown(false);
m_pressed = FALSE;
diff --git a/ksmserver/shutdowndlg.h b/ksmserver/shutdowndlg.h
index 89f508602..db66c55c8 100644
--- a/ksmserver/shutdowndlg.h
+++ b/ksmserver/shutdowndlg.h
@@ -1,6 +1,7 @@
/*****************************************************************
ksmserver - the KDE session management server
+Copyright (C) 2012 Serghei Amelian <serghei.amelian@gmail.com>
Copyright (C) 2000 Matthias Ettrich <ettrich@kde.org>
******************************************************************/
@@ -32,129 +33,138 @@ class KAction;
#include <config.h>
-#ifndef NO_QT3_DBUS_SUPPORT
-/* We acknowledge the the dbus API is unstable */
-#define DBUS_API_SUBJECT_TO_CHANGE
-#include <dbus/connection.h>
-#endif // NO_QT3_DBUS_SUPPORT
-
-#ifdef COMPILE_HALBACKEND
-#include <hal/libhal.h>
-#endif
+#ifdef WITH_UPOWER
+ #include <tqdbusconnection.h>
+#else
+ #warning test
+ #ifndef NO_QT3_DBUS_SUPPORT
+ /* We acknowledge the the dbus API is unstable */
+ #define DBUS_API_SUBJECT_TO_CHANGE
+ #include <dbus/connection.h>
+ #endif // NO_QT3_DBUS_SUPPORT
+
+ #ifdef COMPILE_HALBACKEND
+ #include <hal/libhal.h>
+ #endif
+#endif // WITH_UPOWER
// The (singleton) widget that makes/fades the desktop gray.
class KSMShutdownFeedback : public TQWidget
{
- Q_OBJECT
+ Q_OBJECT
public:
- static void start() { s_pSelf = new KSMShutdownFeedback(); }
- static void stop() { if ( s_pSelf != 0L ) s_pSelf->fadeBack(); delete s_pSelf; s_pSelf = 0L; }
- static KSMShutdownFeedback * self() { return s_pSelf; }
+ static void start() { s_pSelf = new KSMShutdownFeedback(); }
+ static void stop() { if ( s_pSelf != 0L ) s_pSelf->fadeBack(); delete s_pSelf; s_pSelf = 0L; }
+ static KSMShutdownFeedback * self() { return s_pSelf; }
protected:
- ~KSMShutdownFeedback() {}
+ ~KSMShutdownFeedback() {}
private slots:
- void slotPaintEffect();
+ void slotPaintEffect();
private:
- static KSMShutdownFeedback * s_pSelf;
- KSMShutdownFeedback();
- int m_currentY;
- TQPixmap m_root;
- void fadeBack( void );
- float m_grayOpacity;
- float m_compensation;
- bool m_fadeBackwards;
- bool m_readDelayComplete;
- TQImage m_unfadedImage;
- TQImage m_grayImage;
- TQTime m_fadeTime;
- int m_rowsDone;
- KPixmapIO m_pmio;
- bool m_greyImageCreated;
+ static KSMShutdownFeedback * s_pSelf;
+ KSMShutdownFeedback();
+ int m_currentY;
+ TQPixmap m_root;
+ void fadeBack( void );
+ float m_grayOpacity;
+ float m_compensation;
+ bool m_fadeBackwards;
+ bool m_readDelayComplete;
+ TQImage m_unfadedImage;
+ TQImage m_grayImage;
+ TQTime m_fadeTime;
+ int m_rowsDone;
+ KPixmapIO m_pmio;
+ bool m_greyImageCreated;
};
// The (singleton) widget that shows either pretty pictures or a black screen during logout
class KSMShutdownIPFeedback : public TQWidget
{
- Q_OBJECT
+ Q_OBJECT
public:
- static void start() { s_pSelf = new KSMShutdownIPFeedback(); }
- static void showit() { if ( s_pSelf != 0L ) s_pSelf->showNow(); }
- static void stop() { if ( s_pSelf != 0L ) s_pSelf->fadeBack(); delete s_pSelf; s_pSelf = 0L; }
- static KSMShutdownIPFeedback * self() { return s_pSelf; }
- static bool ispainted() { if ( s_pSelf != 0L ) return s_pSelf->m_isPainted; else return false; }
+ static void start() { s_pSelf = new KSMShutdownIPFeedback(); }
+ static void showit() { if ( s_pSelf != 0L ) s_pSelf->showNow(); }
+ static void stop() { if ( s_pSelf != 0L ) s_pSelf->fadeBack(); delete s_pSelf; s_pSelf = 0L; }
+ static KSMShutdownIPFeedback * self() { return s_pSelf; }
+ static bool ispainted() { if ( s_pSelf != 0L ) return s_pSelf->m_isPainted; else return false; }
protected:
- ~KSMShutdownIPFeedback();
+ ~KSMShutdownIPFeedback();
public slots:
- void slotPaintEffect();
- void slotSetBackgroundPixmap(const TQPixmap &);
+ void slotPaintEffect();
+ void slotSetBackgroundPixmap(const TQPixmap &);
private:
- static KSMShutdownIPFeedback * s_pSelf;
- KSMShutdownIPFeedback();
- int m_currentY;
- TQPixmap m_root;
- void fadeBack( void );
- void showNow( void );
- int m_timeout;
- bool m_isPainted;
- KRootPixmap* m_sharedRootPixmap;
- TQPixmap m_rootPixmap;
- int mPixmapTimeout;
+ static KSMShutdownIPFeedback * s_pSelf;
+ KSMShutdownIPFeedback();
+ int m_currentY;
+ TQPixmap m_root;
+ void fadeBack( void );
+ void showNow( void );
+ int m_timeout;
+ bool m_isPainted;
+ KRootPixmap* m_sharedRootPixmap;
+ TQPixmap m_rootPixmap;
+ int mPixmapTimeout;
};
// The confirmation dialog
class KSMShutdownDlg : public TQDialog
{
- Q_OBJECT
+ Q_OBJECT
public:
- static bool confirmShutdown( bool maysd, KApplication::ShutdownType& sdtype, TQString& bopt );
+ static bool confirmShutdown( bool maysd, KApplication::ShutdownType& sdtype, TQString& bopt );
public slots:
- void slotLogout();
- void slotHalt();
- void slotReboot();
- void slotReboot(int);
- void slotSuspend();
- void slotHibernate();
+ void slotLogout();
+ void slotHalt();
+ void slotReboot();
+ void slotReboot(int);
+ void slotSuspend();
+ void slotHibernate();
protected:
- ~KSMShutdownDlg();
+ ~KSMShutdownDlg();
private:
- KSMShutdownDlg( TQWidget* parent, bool maysd, KApplication::ShutdownType sdtype );
- KApplication::ShutdownType m_shutdownType;
- TQString m_bootOption;
- TQPopupMenu *targets;
- TQStringList rebootOptions;
+ KSMShutdownDlg( TQWidget* parent, bool maysd, KApplication::ShutdownType sdtype );
+ KApplication::ShutdownType m_shutdownType;
+ TQString m_bootOption;
+ TQPopupMenu *targets;
+ TQStringList rebootOptions;
+#ifdef WITH_UPOWER
+ TQT_DBusConnection m_dbusConn;
+#else
#ifdef COMPILE_HALBACKEND
- LibHalContext* m_halCtx;
- DBusConnection *m_dbusConn;
+ LibHalContext* m_halCtx;
+ DBusConnection *m_dbusConn;
#endif
- bool m_lockOnResume;
+#endif // WITH_UPOWER
+ bool m_lockOnResume;
};
// The shutdown-in-progress dialog
class KSMShutdownIPDlg : public KSMModalDialog
{
- Q_OBJECT
+ Q_OBJECT
public:
- static TQWidget* showShutdownIP();
+ static TQWidget* showShutdownIP();
protected:
- ~KSMShutdownIPDlg();
+ ~KSMShutdownIPDlg();
private:
- KSMShutdownIPDlg( TQWidget* parent );
+ KSMShutdownIPDlg( TQWidget* parent );
};
class KSMDelayedPushButton : public KPushButton
@@ -210,14 +220,14 @@ class FlatButton : public TQToolButton
virtual void keyReleaseEvent(TQKeyEvent*e);
private slots:
-
+
private:
void init();
-
+
bool m_pressed;
TQString m_text;
TQPixmap m_pixmap;
-
+
};
@@ -227,18 +237,18 @@ class TQLabel;
class KSMDelayedMessageBox : public TimedLogoutDlg
{
- Q_OBJECT
+ Q_OBJECT
public:
- KSMDelayedMessageBox( KApplication::ShutdownType sdtype, const TQString &bootOption, int confirmDelay );
- static bool showTicker( KApplication::ShutdownType sdtype, const TQString &bootOption, int confirmDelay );
+ KSMDelayedMessageBox( KApplication::ShutdownType sdtype, const TQString &bootOption, int confirmDelay );
+ static bool showTicker( KApplication::ShutdownType sdtype, const TQString &bootOption, int confirmDelay );
protected slots:
- void updateText();
+ void updateText();
private:
- TQString m_template;
- int m_remaining;
+ TQString m_template;
+ int m_remaining;
};
#endif
diff --git a/ksmserver/startupdlg.h b/ksmserver/startupdlg.h
index 3b1fe7925..b0e7840fa 100644
--- a/ksmserver/startupdlg.h
+++ b/ksmserver/startupdlg.h
@@ -30,31 +30,20 @@ class KAction;
#include <kapplication.h>
#include <kpixmapio.h>
-#include <config.h>
-
-#ifndef NO_QT3_DBUS_SUPPORT
-/* We acknowledge the the dbus API is unstable */
-#define DBUS_API_SUBJECT_TO_CHANGE
-#include <dbus/connection.h>
-#endif // NO_QT3_DBUS_SUPPORT
-
-#ifdef COMPILE_HALBACKEND
-#include <hal/libhal.h>
-#endif
// The startup-in-progress dialog
class KSMStartupIPDlg : public KSMModalDialog
{
- Q_OBJECT
+ Q_OBJECT
public:
- static TQWidget* showStartupIP();
+ static TQWidget* showStartupIP();
protected:
- ~KSMStartupIPDlg();
+ ~KSMStartupIPDlg();
private:
- KSMStartupIPDlg( TQWidget* parent );
+ KSMStartupIPDlg( TQWidget* parent );
};
#endif