[prev in list] [next in list] [prev in thread] [next in thread]
List: kde-commits
Subject: KDE/kdelibs/solid/solid
From: Dario Freddi <drf () kde ! org>
Date: 2011-01-06 17:47:39
Message-ID: 20110106174739.4B590AC8B0 () svn ! kde ! org
[Download RAW message or body]
SVN commit 1212364 by dafre:
Add a resumeFromSuspend signal to Solid
M +34 -1 powermanagement.cpp
M +8 -0 powermanagement.h
M +4 -0 powermanagement_p.h
--- trunk/KDE/kdelibs/solid/solid/powermanagement.cpp #1212363:1212364
@@ -36,7 +36,10 @@
QDBusConnection::sessionBus()),
inhibitIface("org.freedesktop.PowerManagement.Inhibit",
"/org/freedesktop/PowerManagement/Inhibit",
- QDBusConnection::sessionBus())
+ QDBusConnection::sessionBus()),
+ serviceWatcher("org.kde.Solid.PowerManagement",
+ QDBusConnection::sessionBus(),
+ QDBusServiceWatcher::WatchForRegistration)
{
powerSaveStatus = managerIface.GetPowerSaveStatus();
@@ -51,7 +54,14 @@
this, SLOT(slotCanHibernateChanged(bool)));
connect(&managerIface, SIGNAL(PowerSaveStatusChanged(bool)),
this, SLOT(slotPowerSaveStatusChanged(bool)));
+ connect(&serviceWatcher, SIGNAL(serviceRegistered(QString)),
+ this, SLOT(slotServiceRegistered(QString)));
+
+ // If the service is registered, trigger the connection immediately
+ if (QDBusConnection::sessionBus().interface()->isServiceRegistered("org.kde.Solid.PowerManagement")) \
{ + slotServiceRegistered("org.kde.Solid.PowerManagement");
}
+}
Solid::PowerManagementPrivate::~PowerManagementPrivate()
{
@@ -177,6 +187,29 @@
emit appShouldConserveResourcesChanged(powerSaveStatus);
}
+void Solid::PowerManagementPrivate::slotServiceRegistered(const QString \
&serviceName) +{
+ Q_UNUSED(serviceName);
+
+ // Is the resume signal available?
+ QDBusMessage call = \
QDBusMessage::createMethodCall("org.kde.Solid.PowerManagement", + \
"/org/kde/Solid/PowerManagement", + \
"org.kde.Solid.PowerManagement", + \
"backendCapabilities"); + QDBusPendingReply< uint > reply = \
QDBusConnection::sessionBus().asyncCall(call); + reply.waitForFinished();
+
+ if (reply.isValid() && reply.value() > 0) {
+ // Connect the signal
+ QDBusConnection::sessionBus().connect("org.kde.Solid.PowerManagement",
+ "/org/kde/Solid/PowerManagement",
+ "org.kde.Solid.PowerManagement",
+ "resumingFromSuspend",
+ this,
+ SIGNAL(resumingFromSuspend()));
+ }
+}
+
#include "powermanagement_p.moc"
#include "powermanagement.moc"
--- trunk/KDE/kdelibs/solid/solid/powermanagement.h #1212363:1212364
@@ -134,6 +134,14 @@
*/
void appShouldConserveResourcesChanged(bool newState);
+ /**
+ * This signal is emitted whenever the system is resuming from suspend. \
Applications should connect + * to this signal to perform actions due \
after a wake up (such as updating clocks, etc.). + *
+ * @since 4.7
+ */
+ void resumingFromSuspend();
+
protected:
Notifier();
};
--- trunk/KDE/kdelibs/solid/solid/powermanagement_p.h #1212363:1212364
@@ -27,6 +27,8 @@
#include "powermanagementinterface.h"
#include "policyagentinterface.h"
+#include <QtDBus/QDBusServiceWatcher>
+
namespace Solid
{
class PowerManagementPrivate : public PowerManagement::Notifier
@@ -47,11 +49,13 @@
void slotCanSuspendChanged(bool newState);
void slotCanHibernateChanged(bool newState);
void slotPowerSaveStatusChanged(bool newState);
+ void slotServiceRegistered(const QString &serviceName);
public:
OrgFreedesktopPowerManagementInterface managerIface;
OrgKdeSolidPowerManagementPolicyAgentInterface policyAgentIface;
OrgFreedesktopPowerManagementInhibitInterface inhibitIface;
+ QDBusServiceWatcher serviceWatcher;
bool powerSaveStatus;
QSet<Solid::PowerManagement::SleepState> supportedSleepStates;
[prev in list] [next in list] [prev in thread] [next in thread]
Configure |
About |
News |
Add a list |
Sponsored by KoreLogic