[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