1
/***************************************************************************
2
* Copyright (C) 2010 by Dario Freddi <drf@kde.org> *
4
* This program is free software; you can redistribute it and/or modify *
5
* it under the terms of the GNU General Public License as published by *
6
* the Free Software Foundation; either version 2 of the License, or *
7
* (at your option) any later version. *
9
* This program is distributed in the hope that it will be useful, *
10
* but WITHOUT ANY WARRANTY; without even the implied warranty of *
11
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the *
12
* GNU General Public License for more details. *
14
* You should have received a copy of the GNU General Public License *
15
* along with this program; if not, write to the *
16
* Free Software Foundation, Inc., *
17
* 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA . *
18
***************************************************************************/
20
#include "disabledesktopeffects.h"
22
#include <QtDBus/QDBusPendingReply>
23
#include <QtDBus/QDBusInterface>
25
#include <KConfigGroup>
26
#include <KLocalizedString>
28
namespace PowerDevil {
29
namespace BundledActions {
31
DisableDesktopEffects::DisableDesktopEffects(QObject* parent)
34
setRequiredPolicies(PowerDevil::PolicyAgent::ChangeScreenSettings);
37
DisableDesktopEffects::~DisableDesktopEffects()
42
void DisableDesktopEffects::onProfileUnload()
46
args["Enable"] = QVariant::fromValue(true);
51
void DisableDesktopEffects::onWakeupFromIdle()
54
args["Enable"] = QVariant::fromValue(true);
58
void DisableDesktopEffects::onIdleTimeout(int msec)
63
args["Enable"] = QVariant::fromValue(false);
67
void DisableDesktopEffects::onProfileLoad()
71
args["Enable"] = QVariant::fromValue(false);
76
void DisableDesktopEffects::triggerImpl(const QVariantMap& args)
78
bool enabled = args["Enable"].toBool();
79
QDBusInterface kwiniface("org.kde.kwin", "/KWin", "org.kde.KWin", QDBusConnection::sessionBus());
81
QDBusPendingReply<bool> state = kwiniface.call("compositingActive");
82
state.waitForFinished();
84
if (state.value() != enabled) {
85
kwiniface.asyncCall("toggleCompositing");
90
bool DisableDesktopEffects::loadAction(const KConfigGroup& config)
92
if (config.readEntry<bool>("onIdle", false) && config.hasKey("idleTime")) {
94
registerIdleTimeout(config.readEntry<int>("idleTime", 10000000));
96
m_hasIdleTime = false;
105
#include "disabledesktopeffects.moc"