[prev in list] [next in list] [prev in thread] [next in thread]
List: kde-commits
Subject: koffice/kpresenter
From: David Faure <faure () kde ! org>
Date: 2006-10-16 19:51:13
Message-ID: 1161028273.522003.6187.nullmailer () svn ! kde ! org
[Download RAW message or body]
SVN commit 596148 by dfaure:
Use xdg-utils (xdg-screensaver) when available, to enable/disable dpms+screensaver.
As a benefit, kpresenter can now disable the gnome-screensaver or xscreensaver too,
when not running in kde.
M +45 -23 KPrView.cpp
--- trunk/koffice/kpresenter/KPrView.cpp #596147:596148
@@ -102,6 +102,7 @@
#include <kdebug.h>
#include <ktemporaryfile.h>
#include <kcolorbutton.h>
+#include <kprocess.h>
#include <KoMainWindow.h>
#include <KoPartSelectDia.h>
@@ -1498,32 +1499,43 @@
m_canvas->setToolEditMode( TEM_MOUSE );
if ( !presStarted ) {
- m_screenSaverWasEnabled = false;
- // is screensaver enabled?
- QDBusInterface screensaver("org.kde.kdesktop", "/", \
"org.kde.kdesktop.KScreensaver");
- QDBusReply<bool> reply = screensaver.call("isEnabled");
- if (reply.isValid() )
- {
- if ( reply.value() )
+ const QString xdgScreenSaver = KStandardDirs::findExe("xdg-screensaver");
+ if (!xdgScreenSaver.isEmpty()) {
+ KProcess proc;
+ proc << xdgScreenSaver;
+ proc << "suspend";
+ proc << QString::number( topLevelWidget()->winId() );
+ kDebug() << k_funcinfo << proc.args() << endl;
+ proc.start( KProcess::DontCare );
+ } else {
+
+ m_screenSaverWasEnabled = false;
+ // is screensaver enabled?
+ QDBusInterface screensaver("org.kde.kdesktop", "/", \
"org.kde.kdesktop.KScreensaver"); + QDBusReply<bool> reply = \
screensaver.call("isEnabled"); + if (reply.isValid() )
{
- // disable screensaver
- QList<QVariant> args;
- args << false;
- reply = screensaver.callWithArgumentList(QDBus::Block, "enable", \
args);
- if (!reply.isValid() || !reply.value())
- kWarning(33001) << "Couldn't disable screensaver (using dbus to \
kdesktop)!" << endl;
- else
- kDebug(33001) << "Screensaver successfully disabled" << endl;
+ if ( reply.value() )
+ {
+ // disable screensaver
+ QList<QVariant> args;
+ args << false;
+ reply = screensaver.callWithArgumentList(QDBus::Block, "enable", \
args); + if (!reply.isValid() || !reply.value())
+ kWarning(33001) << "Couldn't disable screensaver (using dbus \
to kdesktop)!" << endl; + else
+ kDebug(33001) << "Screensaver successfully disabled" << \
endl; + }
+ } else {
+ kWarning(33001) << "Couldn't check screensaver (using dcop to \
kdesktop)!" << endl; }
- } else {
- kWarning(33001) << "Couldn't check screensaver (using dcop to \
kdesktop)!" << endl; + // is DPMS enabled?
+ m_dpmsWasEnabled = isDPMSEnabled();
+ kDebug() << "DPMS was enabled:" << m_dpmsWasEnabled << endl;
+ if ( m_dpmsWasEnabled ) {
+ enableDPMS( false );
+ }
}
- // is DPMS enabled?
- m_dpmsWasEnabled = isDPMSEnabled();
- kDebug() << "DPMS was enabled:" << m_dpmsWasEnabled << endl;
- if ( m_dpmsWasEnabled ) {
- enableDPMS( false );
- }
deSelectAllObjects();
presStarted = true;
@@ -1608,6 +1620,15 @@
m_canvas->setMouseTracking( true );
m_canvas->setBackgroundMode( Qt::NoBackground );
+ const QString xdgScreenSaver = KStandardDirs::findExe("xdg-screensaver");
+ if (!xdgScreenSaver.isEmpty()) {
+ KProcess proc;
+ proc << xdgScreenSaver;
+ proc << "resume";
+ proc << QString::number( topLevelWidget()->winId() );
+ kDebug() << k_funcinfo << proc.args() << endl;
+ proc.start( KProcess::DontCare );
+ } else {
if ( m_screenSaverWasEnabled )
{
// start screensaver again
@@ -1625,6 +1646,7 @@
kDebug(33001) << "Re-enabling DPMS" << endl;
enableDPMS( true );
}
+ }
actionScreenStart->setEnabled( true );
pageBase->resizeEvent( 0 );
[prev in list] [next in list] [prev in thread] [next in thread]
Configure |
About |
News |
Add a list |
Sponsored by KoreLogic