[kde-workspace] refresh powerdevil_systemd_login1 patch (kde review#108407)
Rex Dieter
rdieter at fedoraproject.org
Mon Jan 14 14:31:42 UTC 2013
commit 1a2bcf265f89f96460ce8874bac7cf6f52f41672
Author: Rex Dieter <rdieter at math.unl.edu>
Date: Mon Jan 14 08:32:06 2013 -0600
refresh powerdevil_systemd_login1 patch (kde review#108407)
...orkspace-4.9.97-powerdevil_systemd_login1.patch | 80 ++++++++------------
kde-workspace.spec | 5 +-
2 files changed, 37 insertions(+), 48 deletions(-)
---
diff --git a/kde-workspace-4.9.97-powerdevil_systemd_login1.patch b/kde-workspace-4.9.97-powerdevil_systemd_login1.patch
index c7ffe96..9b69956 100644
--- a/kde-workspace-4.9.97-powerdevil_systemd_login1.patch
+++ b/kde-workspace-4.9.97-powerdevil_systemd_login1.patch
@@ -12,10 +12,10 @@ index 5dbe6f6..5344925 100644
)
diff --git a/powerdevil/daemon/backends/upower/login1suspendjob.h b/powerdevil/daemon/backends/upower/login1suspendjob.h
new file mode 100644
-index 0000000..bc75e7b
+index 0000000..c7e33ba
--- /dev/null
+++ b/powerdevil/daemon/backends/upower/login1suspendjob.h
-@@ -0,0 +1,52 @@
+@@ -0,0 +1,54 @@
+/* This file is part of the KDE project
+ Copyright (C) 2006 Kevin Ottens <ervin at kde.org>
+ Copyright (C) 2010 Alejandro Fiestas <alex at eyeos.org>
@@ -43,6 +43,7 @@ index 0000000..bc75e7b
+#include <kjob.h>
+#include <QtDBus/QDBusInterface>
+#include <QtDBus/QDBusMessage>
++#include <QtDBus/QDBusPendingCallWatcher>
+
+#include "powerdevilbackendinterface.h"
+
@@ -60,6 +61,7 @@ index 0000000..bc75e7b
+
+private Q_SLOTS:
+ void doStart();
++ void sendResult(QDBusPendingCallWatcher* watcher);
+
+private:
+ QDBusInterface *m_login1Interface;
@@ -70,10 +72,10 @@ index 0000000..bc75e7b
+#endif //LOGIN1SUSPENDJOB_H
diff --git a/powerdevil/daemon/backends/upower/login1suspendjob.cpp b/powerdevil/daemon/backends/upower/login1suspendjob.cpp
new file mode 100644
-index 0000000..587b9cf
+index 0000000..1fe34bb
--- /dev/null
+++ b/powerdevil/daemon/backends/upower/login1suspendjob.cpp
-@@ -0,0 +1,89 @@
+@@ -0,0 +1,100 @@
+/* This file is part of the KDE project
+ Copyright (C) 2006 Kevin Ottens <ervin at kde.org>
+ Copyright (C) 2010 Alejandro Fiestas <alex at eyeos.org>
@@ -136,20 +138,19 @@ index 0000000..587b9cf
+ args << true; // interactive, ie. with polkit dialogs
+
+ QDBusPendingReply<void> reply;
++ QDBusPendingCallWatcher *watcher = new QDBusPendingCallWatcher(reply, this);
++ connect(watcher, SIGNAL(finished(QDBusPendingCallWatcher*)), this, SLOT(sendResult(QDBusPendingCallWatcher*)));
+
+ switch(m_method)
+ {
+ case PowerDevil::BackendInterface::ToRam:
+ reply = m_login1Interface->asyncCallWithArgumentList("Suspend", args);
-+ reply.waitForFinished();
+ break;
+ case PowerDevil::BackendInterface::ToDisk:
+ reply = m_login1Interface->asyncCallWithArgumentList("Hibernate", args);
-+ reply.waitForFinished();
+ break;
+ case PowerDevil::BackendInterface::HybridSuspend:
+ reply = m_login1Interface->asyncCallWithArgumentList("HybridSleep", args);
-+ reply.waitForFinished();
+ break;
+ default:
+ kDebug() << "Unsupported suspend method";
@@ -157,8 +158,20 @@ index 0000000..587b9cf
+ setErrorText(i18n("Unsupported suspend method"));
+ break;
+ }
++ }
++}
++
++void Login1SuspendJob::sendResult(QDBusPendingCallWatcher *watcher)
++{
++ const QDBusPendingReply<void> reply = *watcher;
++ if (!reply.isError()) {
+ emitResult();
+ }
++ else {
++ kWarning() << "Failed to start suspend job" << reply.error().name() << reply.error().message();
++ }
++
++ watcher->deleteLater();
+}
+
+
@@ -194,7 +207,7 @@ index ba942bd..ae3d754 100644
bool m_lidIsPresent;
bool m_lidIsClosed;
diff --git a/powerdevil/daemon/backends/upower/powerdevilupowerbackend.cpp b/powerdevil/daemon/backends/upower/powerdevilupowerbackend.cpp
-index 97a409b..cc5bd0d 100644
+index 97a409b..2c00ac0 100644
--- a/powerdevil/daemon/backends/upower/powerdevilupowerbackend.cpp
+++ b/powerdevil/daemon/backends/upower/powerdevilupowerbackend.cpp
@@ -2,7 +2,7 @@
@@ -222,37 +235,7 @@ index 97a409b..cc5bd0d 100644
}
PowerDevilUPowerBackend::~PowerDevilUPowerBackend()
-@@ -48,6 +50,29 @@ PowerDevilUPowerBackend::~PowerDevilUPowerBackend()
-
- bool PowerDevilUPowerBackend::isAvailable()
- {
-+ if (!QDBusConnection::systemBus().interface()->isServiceRegistered(LOGIN1_SERVICE)) {
-+ // Is it pending activation?
-+ kDebug() << "Login1 service, " << LOGIN1_SERVICE << ", is not registered on the bus. Trying to find out if it is activated.";
-+ QDBusMessage message = QDBusMessage::createMethodCall("org.freedesktop.DBus",
-+ "/org/freedesktop/DBus",
-+ "org.freedesktop.DBus",
-+ "ListActivatableNames");
-+
-+ QDBusPendingReply< QStringList > reply = QDBusConnection::systemBus().asyncCall(message);
-+ reply.waitForFinished();
-+
-+ if (reply.isValid()) {
-+ if (reply.value().contains(LOGIN1_SERVICE)) {
-+ kDebug() << "Login1 was found, activating service...";
-+ QDBusConnection::systemBus().interface()->startService(LOGIN1_SERVICE);
-+ } else {
-+ kDebug() << "Login1 cannot be found on this system.";
-+ }
-+ } else {
-+ kWarning() << "Could not request activatable names to DBus!";
-+ }
-+ }
-+
- if (!QDBusConnection::systemBus().interface()->isServiceRegistered(UPOWER_SERVICE)) {
- // Is it pending activation?
- kDebug() << "UPower service, " << UPOWER_SERVICE << ", is not registered on the bus. Trying to find out if it is activated.";
-@@ -80,11 +105,17 @@ bool PowerDevilUPowerBackend::isAvailable()
+@@ -80,11 +82,19 @@ bool PowerDevilUPowerBackend::isAvailable()
void PowerDevilUPowerBackend::init()
{
// interfaces
@@ -266,11 +249,13 @@ index 97a409b..cc5bd0d 100644
QDBusConnection::systemBus().interface()->startService(UPOWER_SERVICE);
}
-+ m_login1Interface = new QDBusInterface(LOGIN1_SERVICE, "/org/freedesktop/login1", "org.freedesktop.login1.Manager", QDBusConnection::systemBus(), this);
++ if (QDBusConnection::systemBus().interface()->isServiceRegistered(LOGIN1_SERVICE)) {
++ m_login1Interface = new QDBusInterface(LOGIN1_SERVICE, "/org/freedesktop/login1", "org.freedesktop.login1.Manager", QDBusConnection::systemBus(), this);
++ }
m_upowerInterface = new OrgFreedesktopUPowerInterface(UPOWER_SERVICE, "/org/freedesktop/UPower", QDBusConnection::systemBus(), this);
m_kbdBacklight = new OrgFreedesktopUPowerKbdBacklightInterface(UPOWER_SERVICE, "/org/freedesktop/UPower/KbdBacklight", QDBusConnection::systemBus(), this);
m_brightnessControl = new XRandrBrightness();
-@@ -113,7 +144,22 @@ void PowerDevilUPowerBackend::init()
+@@ -113,7 +123,22 @@ void PowerDevilUPowerBackend::init()
// Supported suspend methods
SuspendMethods supported = UnknownSuspendMethod;
@@ -294,12 +279,12 @@ index 97a409b..cc5bd0d 100644
if (m_upowerInterface->canSuspend() && m_upowerInterface->SuspendAllowed()) {
kDebug() << "Can suspend";
supported |= ToRam;
-@@ -125,7 +171,13 @@ void PowerDevilUPowerBackend::init()
+@@ -125,7 +150,13 @@ void PowerDevilUPowerBackend::init()
}
}
- connect(m_upowerInterface, SIGNAL(Resuming()), this, SIGNAL(resumeFromSuspend()));
-+ // CHECKME if login1 indeed has the resuming signal
++ // CHECKME if login1 indeed has the resuming signal, it doesn't yet :/
+ // "resuming" signal
+ if (m_login1Interface) {
+ connect(m_login1Interface.data(), SIGNAL(PrepareForSleep(bool)), this, SLOT(slotLogin1Resuming(bool)));
@@ -309,19 +294,20 @@ index 97a409b..cc5bd0d 100644
// battery
QList<RecallNotice> recallList;
-@@ -246,7 +298,10 @@ bool PowerDevilUPowerBackend::setBrightness(float brightnessValue, PowerDevil::B
+@@ -246,7 +277,11 @@ bool PowerDevilUPowerBackend::setBrightness(float brightnessValue, PowerDevil::B
KJob* PowerDevilUPowerBackend::suspend(PowerDevil::BackendInterface::SuspendMethod method)
{
- return new UPowerSuspendJob(m_upowerInterface, method, supportedSuspendMethods());
-+ if (m_login1Interface)
++ if (m_login1Interface) {
+ return new Login1SuspendJob(m_login1Interface.data(), method, supportedSuspendMethods());
-+ else
++ } else {
+ return new UPowerSuspendJob(m_upowerInterface, method, supportedSuspendMethods());
++ }
}
void PowerDevilUPowerBackend::enumerateDevices()
-@@ -337,4 +392,11 @@ void PowerDevilUPowerBackend::slotPropertyChanged()
+@@ -337,4 +372,11 @@ void PowerDevilUPowerBackend::slotPropertyChanged()
m_onBattery = onBattery;
}
diff --git a/kde-workspace.spec b/kde-workspace.spec
index fd7b750..4437813 100644
--- a/kde-workspace.spec
+++ b/kde-workspace.spec
@@ -5,7 +5,7 @@
Summary: KDE Workspace
Name: kde-workspace
Version: 4.9.97
-Release: 4%{?dist}
+Release: 5%{?dist}
License: GPLv2
URL: https://projects.kde.org/projects/kde/kde-workspace
@@ -973,6 +973,9 @@ fi
%changelog
+* Mon Jan 14 2013 Rex Dieter <rdieter at fedoraproject.org> 4.9.97-5
+- refresh powerdevil_systemd_login1 patch (kde review#108407)
+
* Mon Jan 14 2013 Rex Dieter <rdieter at fedoraproject.org> 4.9.97-4
- proper powerdevil systemd-login1 support (kde review#108407)
More information about the scm-commits
mailing list