[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-04 11:47:40
Message-ID: 20101204114740.2D1CFAC8A4 () svn ! kde ! org
[Download RAW message or body]

SVN commit 1203496 by dafre:

Move backend loading and initialization out of the core. Also, move backend code to \
the kded module instead of the library

 M  +7 -7      CMakeLists.txt  
 M  +16 -1     kdedpowerdevil.cpp  
 M  +16 -14    powerdevilcore.cpp  
 M  +1 -0      powerdevilcore.h  


--- trunk/KDE/kdebase/workspace/powerdevil/daemon/CMakeLists.txt #1203495:1203496
@@ -18,15 +18,11 @@
     actions/bundled/handlebuttonevents.cpp
 )
 
-# Backends
-include(BackendConfig.cmake)
-
 # target no.1 - powerdevil core library
 set(powerdevilcore_SRCS
     powerdevilaction.cpp
     powerdevilactionpool.cpp
     powerdevilbackendinterface.cpp
-    powerdevilbackendloader.cpp
     powerdevilcore.cpp
     powerdevilfdoconnector.cpp
     powerdevilpolicyagent.cpp
@@ -46,26 +42,30 @@
 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} ${POWERDEVIL_BACKEND_SRCS}) \
+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}) \
  target_link_libraries(powerdevilcore
     ${KDE4_KDECORE_LIBS}
     ${KDE4_SOLID_LIBS}
     ${KDE4_KIDLETIME_LIBS}
-    ${POWERDEVIL_BACKEND_LIBS}
     kworkspace
 )
 
 # target no.2 - powerdevil kded module
 set(kded_powerdevil_SRCS
     kdedpowerdevil.cpp
+    powerdevilbackendloader.cpp
 )
 
-kde4_add_plugin(kded_powerdevil ${kded_powerdevil_SRCS})
+# Backends
+include(BackendConfig.cmake)
 
+kde4_add_plugin(kded_powerdevil ${kded_powerdevil_SRCS} ${POWERDEVIL_BACKEND_SRCS})
+
 target_link_libraries(kded_powerdevil
     ${KDE4_KDECORE_LIBS}
+    ${POWERDEVIL_BACKEND_LIBS}
     powerdevilcore
 )
 
--- trunk/KDE/kdebase/workspace/powerdevil/daemon/kdedpowerdevil.cpp #1203495:1203496
@@ -19,11 +19,13 @@
 
 #include "kdedpowerdevil.h"
 
+#include "powerdevilbackendloader.h"
 #include "powerdevilcore.h"
 
 #include <QtCore/QTimer>
 
 #include <KAboutData>
+#include <KDebug>
 #include <KPluginFactory>
 
 K_PLUGIN_FACTORY( PowerDevilFactory,
@@ -56,7 +58,20 @@
     aboutData.addAuthor(ki18n( "Dario Freddi" ), ki18n("Maintainer"), "drf@kde.org",
                         "http://drfav.wordpress.com");
 
-    new PowerDevil::Core(this, KComponentData(aboutData));
+    PowerDevil::Core *core = new PowerDevil::Core(this, KComponentData(aboutData));
+
+    // Before doing anything, let's set up our backend
+    PowerDevil::BackendInterface *interface = \
PowerDevil::BackendLoader::loadBackend(core); +
+    if (!interface) {
+        // Ouch
+        kError() << "KDE Power Management System init failed!";
+        core->loadCore(0);
+    } else {
+        // Let's go!
+        kDebug() << "Backend loaded, loading core";
+        core->loadCore(interface);
 }
+}
 
 #include "kdedpowerdevil.moc"
--- trunk/KDE/kdebase/workspace/powerdevil/daemon/powerdevilcore.cpp #1203495:1203496
@@ -26,7 +26,6 @@
 #include "powerdevilaction.h"
 #include "powerdevilactionpool.h"
 #include "powerdevilbackendinterface.h"
-#include "powerdevilbackendloader.h"
 #include "powerdevilfdoconnector.h"
 #include "powerdevilpolicyagent.h"
 #include "powerdevilprofilegenerator.h"
@@ -58,28 +57,31 @@
     , m_applicationData(componentData)
     , m_criticalBatteryTimer(new QTimer(this))
 {
-    // Before doing anything, let's set up our backend
-    m_backend = PowerDevil::BackendLoader::loadBackend(this);
+}
 
-    if (!m_backend) {
-        // Ouch
-        kError() << "KDE Power Management System init failed!";
+Core::~Core()
+{
+    // Unload all actions before exiting
+    ActionPool::instance()->unloadAllActiveActions();
+}
+
+void Core::loadCore(BackendInterface* backend)
+{
+    if (!backend) {
         onBackendError(i18n("No valid Power Management backend plugins are \
                available. "
                             "A new installation might solve this problem."));
-    } else {
+        return;
+    }
+
+    m_backend = backend;
+
         // Async backend init - so that KDED gets a bit of a speed up
+    kDebug() << "Core loaded, initializing backend";
         connect(m_backend, SIGNAL(backendReady()), this, SLOT(onBackendReady()));
         connect(m_backend, SIGNAL(backendError(QString)), this, \
SLOT(onBackendError(QString)));  m_backend->init();
     }
-}
 
-Core::~Core()
-{
-    // Unload all actions before exiting
-    ActionPool::instance()->unloadAllActiveActions();
-}
-
 void Core::onBackendReady()
 {
     kDebug() << "Backend is ready, KDE Power Management system initialized";
--- trunk/KDE/kdebase/workspace/powerdevil/daemon/powerdevilcore.h #1203495:1203496
@@ -61,6 +61,7 @@
     // More...
 
 public Q_SLOTS:
+    void loadCore(PowerDevil::BackendInterface *backend);
     // Set of common action - useful for the DBus interface
     void refreshStatus();
     void reloadProfile();


[prev in list] [next in list] [prev in thread] [next in thread] 

Configure | About | News | Add a list | Sponsored by KoreLogic