[prev in list] [next in list] [prev in thread] [next in thread]
List: kde-commits
Subject: KDE/kdebase/workspace/powerdevil/daemon
From: Dario Freddi <drf () kde ! org>
Date: 2010-12-09 7:22:28
Message-ID: 20101209072228.555E2AC8A8 () svn ! kde ! org
[Download RAW message or body]
SVN commit 1204817 by dafre:
Remove all the DBus logic from the core, and put it into the KDED module
M +11 -9 CMakeLists.txt
M +39 -4 kdedpowerdevil.cpp
M +8 -0 kdedpowerdevil.h
M +1 -18 powerdevilcore.cpp
M +1 -0 powerdevilcore.h
M +0 -8 powerdevilpolicyagent.cpp
M +3 -1 powerdevilpolicyagent.h
--- trunk/KDE/kdebase/workspace/powerdevil/daemon/CMakeLists.txt #1204816:1204817
@@ -24,24 +24,15 @@
powerdevilactionpool.cpp
powerdevilbackendinterface.cpp
powerdevilcore.cpp
- powerdevilfdoconnector.cpp
powerdevilpolicyagent.cpp
powerdevilprofilegenerator.cpp
)
kde4_add_kcfg_files(powerdevilcore_SRCS ../PowerDevilSettings.kcfgc)
-qt4_add_dbus_adaptor(powerdevilcore_SRCS org.kde.Solid.PowerManagement.xml \
powerdevilcore.h PowerDevil::Core)
-qt4_add_dbus_adaptor(powerdevilcore_SRCS \
${KDE4_DBUS_INTERFACES_DIR}/org.kde.Solid.PowerManagement.PolicyAgent.xml \
- powerdevilpolicyagent.h \
PowerDevil::PolicyAgent
- powermanagementpolicyagentadaptor \
PowerManagementPolicyAgentAdaptor)
-
set(screensaver_xml \
"${KDEBASE_WORKSPACE_SOURCE_DIR}/krunner/dbus/org.freedesktop.ScreenSaver.xml") \
qt4_add_dbus_interface(powerdevilcore_SRCS ${screensaver_xml} screensaver_interface ) \
-qt4_add_dbus_adaptor(powerdevilcore_SRCS \
${KDE4_DBUS_INTERFACES_DIR}/org.freedesktop.PowerManagement.xml \
powerdevilfdoconnector.h PowerDevil::FdoConnector powermanagementfdoadaptor \
PowerManagementFdoAdaptor)
-qt4_add_dbus_adaptor(powerdevilcore_SRCS \
${KDE4_DBUS_INTERFACES_DIR}/org.freedesktop.PowerManagement.Inhibit.xml \
powerdevilfdoconnector.h PowerDevil::FdoConnector powermanagementinhibitadaptor \
PowerManagementInhibitAdaptor)
-
kde4_add_library(powerdevilcore SHARED ${powerdevilcore_SRCS} \
${powerdevil_bundled_actions_SRCS}) set_target_properties(powerdevilcore PROPERTIES \
VERSION ${POWERDEVIL_CORE_VERSION_STRING} SOVERSION ${POWERDEVIL_CORE_VERSION_MAJOR}) \
@@ -56,8 +47,19 @@
set(kded_powerdevil_SRCS
kdedpowerdevil.cpp
powerdevilbackendloader.cpp
+ powerdevilfdoconnector.cpp
)
+# DBus Adaptors
+qt4_add_dbus_adaptor(kded_powerdevil_SRCS org.kde.Solid.PowerManagement.xml \
powerdevilcore.h PowerDevil::Core) +qt4_add_dbus_adaptor(kded_powerdevil_SRCS \
${KDE4_DBUS_INTERFACES_DIR}/org.kde.Solid.PowerManagement.PolicyAgent.xml + \
powerdevilpolicyagent.h PowerDevil::PolicyAgent + \
powermanagementpolicyagentadaptor PowerManagementPolicyAgentAdaptor) +
+qt4_add_dbus_adaptor(kded_powerdevil_SRCS \
${KDE4_DBUS_INTERFACES_DIR}/org.freedesktop.PowerManagement.xml \
powerdevilfdoconnector.h PowerDevil::FdoConnector powermanagementfdoadaptor \
PowerManagementFdoAdaptor) +qt4_add_dbus_adaptor(kded_powerdevil_SRCS \
${KDE4_DBUS_INTERFACES_DIR}/org.freedesktop.PowerManagement.Inhibit.xml \
powerdevilfdoconnector.h PowerDevil::FdoConnector powermanagementinhibitadaptor \
PowerManagementInhibitAdaptor) +
+
# Backends
include(BackendConfig.cmake)
--- trunk/KDE/kdebase/workspace/powerdevil/daemon/kdedpowerdevil.cpp #1204816:1204817
@@ -19,11 +19,18 @@
#include "kdedpowerdevil.h"
+#include "powerdevilfdoconnector.h"
+#include "powermanagementadaptor.h"
+#include "powermanagementpolicyagentadaptor.h"
+
#include "powerdevilbackendloader.h"
#include "powerdevilcore.h"
#include <QtCore/QTimer>
+#include <QtDBus/QDBusConnection>
+#include <QtDBus/QDBusConnectionInterface>
+
#include <KAboutData>
#include <KDebug>
#include <KPluginFactory>
@@ -58,20 +65,48 @@
aboutData.addAuthor(ki18n( "Dario Freddi" ), ki18n("Maintainer"), "drf@kde.org",
"http://drfav.wordpress.com");
- PowerDevil::Core *core = new PowerDevil::Core(this, KComponentData(aboutData));
+ if (QDBusConnection::systemBus().interface()->isServiceRegistered("org.freedesktop.PowerManagement") \
|| + QDBusConnection::systemBus().interface()->isServiceRegistered("com.novell.powersave") \
|| + QDBusConnection::systemBus().interface()->isServiceRegistered("org.freedesktop.Policy.Power")) \
{ + kError() << "KDE Power Management system not initialized, another power \
manager has been detected"; + return;
+ }
+ m_core = new PowerDevil::Core(this, KComponentData(aboutData));
+
+ connect(m_core, SIGNAL(coreReady()), this, SLOT(onCoreReady()));
+
// Before doing anything, let's set up our backend
- PowerDevil::BackendInterface *interface = \
PowerDevil::BackendLoader::loadBackend(core); + PowerDevil::BackendInterface \
*interface = PowerDevil::BackendLoader::loadBackend(m_core);
if (!interface) {
// Ouch
kError() << "KDE Power Management System init failed!";
- core->loadCore(0);
+ m_core->loadCore(0);
} else {
// Let's go!
kDebug() << "Backend loaded, loading core";
- core->loadCore(interface);
+ m_core->loadCore(interface);
}
}
+void KDEDPowerDevil::onCoreReady()
+{
+ kDebug() << "Core is ready, registering various services on the bus...";
+ //DBus logic for the core
+ new PowerManagementAdaptor(m_core);
+ new PowerDevil::FdoConnector(m_core);
+
+ QDBusConnection::sessionBus().registerService("org.kde.Solid.PowerManagement");
+ QDBusConnection::sessionBus().registerObject("/org/kde/Solid/PowerManagement", \
m_core); +
+ QDBusConnection::systemBus().interface()->registerService("org.freedesktop.Policy.Power");
+
+ // Start the Policy Agent service
+ new PowerManagementPolicyAgentAdaptor(PowerDevil::PolicyAgent::instance());
+
+ QDBusConnection::sessionBus().registerService("org.kde.Solid.PowerManagement.PolicyAgent");
+ QDBusConnection::sessionBus().registerObject("/org/kde/Solid/PowerManagement/PolicyAgent", \
PowerDevil::PolicyAgent::instance()); +}
+
#include "kdedpowerdevil.moc"
--- trunk/KDE/kdebase/workspace/powerdevil/daemon/kdedpowerdevil.h #1204816:1204817
@@ -23,6 +23,10 @@
#include <KDEDModule>
#include <QVariantList>
+namespace PowerDevil {
+ class Core;
+}
+
class KDEDPowerDevil : public KDEDModule
{
Q_OBJECT
@@ -34,6 +38,10 @@
private Q_SLOTS:
void init();
+ void onCoreReady();
+
+private:
+ PowerDevil::Core *m_core;
};
#endif // KDEDPOWERDEVIL_H
--- trunk/KDE/kdebase/workspace/powerdevil/daemon/powerdevilcore.cpp #1204816:1204817
@@ -20,13 +20,11 @@
#include "powerdevilcore.h"
#include "PowerDevilSettings.h"
-#include "powermanagementadaptor.h"
#include "screensaver_interface.h"
#include "powerdevilaction.h"
#include "powerdevilactionpool.h"
#include "powerdevilbackendinterface.h"
-#include "powerdevilfdoconnector.h"
#include "powerdevilpolicyagent.h"
#include "powerdevilprofilegenerator.h"
@@ -89,13 +87,6 @@
{
kDebug() << "Backend is ready, KDE Power Management system initialized";
- if (QDBusConnection::systemBus().interface()->isServiceRegistered("org.freedesktop.PowerManagement") \
||
- QDBusConnection::systemBus().interface()->isServiceRegistered("com.novell.powersave") \
||
- QDBusConnection::systemBus().interface()->isServiceRegistered("org.freedesktop.Policy.Power")) \
{
- kError() << "KDE Power Management system not initialized, another power \
manager has been detected";
- return;
- }
-
m_profilesConfig = KSharedConfig::openConfig("powerdevil2profilesrc", \
KConfig::SimpleConfig);
// Is it brand new?
@@ -140,15 +131,6 @@
// Set up the policy agent
PowerDevil::PolicyAgent::instance()->init();
- //DBus
- new PowerManagementAdaptor(this);
- new FdoConnector(this);
-
- QDBusConnection::sessionBus().registerService("org.kde.Solid.PowerManagement");
- QDBusConnection::sessionBus().registerObject("/org/kde/Solid/PowerManagement", \
this);
-
- QDBusConnection::systemBus().interface()->registerService("org.freedesktop.Policy.Power");
-
// Set up the critical battery timer
m_criticalBatteryTimer->setSingleShot(true);
m_criticalBatteryTimer->setInterval(30000);
@@ -158,6 +140,7 @@
QTimer::singleShot(30000, this, SLOT(checkBatteryStatus()));
// All systems up Houston, let's go!
+ emit coreReady();
refreshStatus();
KActionCollection* actionCollection = new KActionCollection( this );
--- trunk/KDE/kdebase/workspace/powerdevil/daemon/powerdevilcore.h #1204816:1204817
@@ -90,6 +90,7 @@
void onResumeFromSuspend();
Q_SIGNALS:
+ void coreReady();
void profileChanged(const QString &newProfile);
void configurationReloaded();
void brightnessChanged(int percent);
--- trunk/KDE/kdebase/workspace/powerdevil/daemon/powerdevilpolicyagent.cpp \
#1204816:1204817 @@ -29,8 +29,6 @@
#include <KGlobal>
#include <KDebug>
-#include "powermanagementpolicyagentadaptor.h"
-
namespace PowerDevil
{
@@ -72,12 +70,6 @@
void PolicyAgent::init()
{
- // Start the DBus service
- new PowerManagementPolicyAgentAdaptor(this);
-
- QDBusConnection::sessionBus().registerService("org.kde.Solid.PowerManagement.PolicyAgent");
- QDBusConnection::sessionBus().registerObject("/org/kde/Solid/PowerManagement/PolicyAgent", \
this);
-
// Let's cache the needed information to check if our session is actually active
if (!QDBusConnection::systemBus().interface()->isServiceRegistered("org.freedesktop.ConsoleKit")) \
{
// No way to determine if we are on the current session, simply suppose we \
are
--- trunk/KDE/kdebase/workspace/powerdevil/daemon/powerdevilpolicyagent.h \
#1204816:1204817 @@ -27,13 +27,15 @@
#include <QtDBus/QDBusContext>
+#include <kdemacros.h>
+
class QDBusServiceWatcher;
class QDBusInterface;
namespace PowerDevil
{
-class PolicyAgent : public QObject, protected QDBusContext
+class KDE_EXPORT PolicyAgent : public QObject, protected QDBusContext
{
Q_OBJECT
Q_DISABLE_COPY(PolicyAgent)
[prev in list] [next in list] [prev in thread] [next in thread]
Configure |
About |
News |
Add a list |
Sponsored by KoreLogic