[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