[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-11-20 18:23:16
Message-ID: 20101120182316.CBE84AC8A0 () svn ! kde ! org
[Download RAW message or body]

SVN commit 1199129 by dafre:

Make backends link statically to the daemon, and fix loading by adding a \
backendloader.

 A             BackendConfig.cmake  
 M  +6 -3      CMakeLists.txt  
 M  +6 -4      backends/hal/powerdevilhalbackend.cpp  
 M  +2 -1      backends/hal/powerdevilhalbackend.h  
 M  +0 -2      backends/upower/CMakeLists.txt  
 M  +6 -4      backends/upower/powerdevilupowerbackend.cpp  
 M  +2 -1      backends/upower/powerdevilupowerbackend.h  
 M  +2 -0      powerdevilbackendinterface.h  
 A             powerdevilbackendloader.cpp   [License: GPL (v2+)]
 A             powerdevilbackendloader.h   [License: GPL (v2+)]
 M  +5 -18     powerdevilcore.cpp  


--- trunk/KDE/kdebase/workspace/powerdevil/daemon/CMakeLists.txt #1199128:1199129
@@ -13,11 +13,15 @@
     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
@@ -37,12 +41,13 @@
 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}) +kde4_add_library(powerdevilcore SHARED \
${powerdevilcore_SRCS} ${powerdevil_bundled_actions_SRCS} ${POWERDEVIL_BACKEND_SRCS}) \
  target_link_libraries(powerdevilcore
     ${KDE4_KDECORE_LIBS}
     ${KDE4_SOLID_LIBS}
     ${KDE4_KIDLETIME_LIBS}
+    ${POWERDEVIL_BACKEND_LIBS}
     kworkspace
 )
 
@@ -75,5 +80,3 @@
 
 install(TARGETS powerdevilui ${INSTALL_TARGETS_DEFAULT_ARGS})
 install(FILES powerdevil.desktop DESTINATION ${SERVICES_INSTALL_DIR}/kded)
-
-add_subdirectory(backends)
--- trunk/KDE/kdebase/workspace/powerdevil/daemon/backends/hal/powerdevilhalbackend.cpp \
#1199128:1199129 @@ -32,10 +32,7 @@
 #include <KPluginFactory>
 #include <QtCore/QTimer>
 
-K_PLUGIN_FACTORY(PowerDevilHalBackendFactory, \
                registerPlugin<PowerDevilHALBackend>(); )
-K_EXPORT_PLUGIN(PowerDevilHalBackendFactory("powerdevilhalbackend"))
-
-PowerDevilHALBackend::PowerDevilHALBackend(QObject* parent, const QVariantList&)
+PowerDevilHALBackend::PowerDevilHALBackend(QObject* parent)
     : BackendInterface(parent),
       m_brightnessInHardware(true),
       m_halComputer("org.freedesktop.Hal",
@@ -64,6 +61,11 @@
     qDeleteAll(m_buttons);
 }
 
+bool PowerDevilHALBackend::isAvailable()
+{
+    return m_halPowerManagement.isValid();
+}
+
 void PowerDevilHALBackend::init()
 {
     connect(Solid::DeviceNotifier::instance(), SIGNAL(deviceRemoved(const QString \
                &)),
--- trunk/KDE/kdebase/workspace/powerdevil/daemon/backends/hal/powerdevilhalbackend.h \
#1199128:1199129 @@ -42,10 +42,11 @@
     Q_OBJECT
     Q_DISABLE_COPY(PowerDevilHALBackend)
 public:
-    explicit PowerDevilHALBackend(QObject* parent, const QVariantList&);
+    explicit PowerDevilHALBackend(QObject* parent);
     virtual ~PowerDevilHALBackend();
 
     virtual void init();
+    virtual bool isAvailable();
 
     virtual float brightness(BrightnessControlType type = Screen) const;
 
--- trunk/KDE/kdebase/workspace/powerdevil/daemon/backends/upower/CMakeLists.txt \
#1199128:1199129 @@ -1,5 +1,3 @@
-find_package(X11)
-
 include_directories(${CMAKE_CURRENT_SOURCE_DIR}
 ${CMAKE_CURRENT_BINARY_DIR} ${X11_INCLUDE_DIR} ${QT_INCLUDE_DIR} \
${X11_Xrandr_INCLUDE_PATH})  
--- trunk/KDE/kdebase/workspace/powerdevil/daemon/backends/upower/powerdevilupowerbackend.cpp \
#1199128:1199129 @@ -31,10 +31,7 @@
 #include "xrandrbrightness.h"
 #include "upowersuspendjob.h"
 
-K_PLUGIN_FACTORY(PowerDevilUpowerBackendFactory, \
                registerPlugin<PowerDevilUPowerBackend>(); )
-K_EXPORT_PLUGIN(PowerDevilUpowerBackendFactory("powerdevilupowerbackend"))
-
-PowerDevilUPowerBackend::PowerDevilUPowerBackend(QObject* parent, const \
QVariantList&) +PowerDevilUPowerBackend::PowerDevilUPowerBackend(QObject* parent)
     : BackendInterface(parent),
       m_brightNessControl(new XRandrBrightness()),
       m_upowerInterface(new OrgFreedesktopUPowerInterface(UPOWER_SERVICE, \
"/org/freedesktop/UPower", QDBusConnection::systemBus(), parent)), @@ -51,6 +48,11 @@
     delete m_kbdBacklight;
 }
 
+bool PowerDevilUPowerBackend::isAvailable()
+{
+    return m_upowerInterface->isValid();
+}
+
 void PowerDevilUPowerBackend::init()
 {
     // devices
--- trunk/KDE/kdebase/workspace/powerdevil/daemon/backends/upower/powerdevilupowerbackend.h \
#1199128:1199129 @@ -42,10 +42,11 @@
     Q_OBJECT
     Q_DISABLE_COPY(PowerDevilUPowerBackend)
 public:
-    explicit PowerDevilUPowerBackend(QObject* parent, const QVariantList&);
+    explicit PowerDevilUPowerBackend(QObject* parent);
     virtual ~PowerDevilUPowerBackend();
 
     virtual void init();
+    virtual bool isAvailable();
 
     virtual float brightness(BrightnessControlType type = Screen) const;
 
--- trunk/KDE/kdebase/workspace/powerdevil/daemon/powerdevilbackendinterface.h \
#1199128:1199129 @@ -112,6 +112,8 @@
 
     virtual void init() = 0;
 
+    virtual bool isAvailable() = 0;
+
     /**
         * Retrieves the current state of the system battery.
         *
--- trunk/KDE/kdebase/workspace/powerdevil/daemon/powerdevilcore.cpp #1199128:1199129
@@ -26,6 +26,7 @@
 #include "powerdevilaction.h"
 #include "powerdevilactionpool.h"
 #include "powerdevilbackendinterface.h"
+#include "powerdevilbackendloader.h"
 #include "powerdevilfdoconnector.h"
 #include "powerdevilpolicyagent.h"
 #include "powerdevilprofilegenerator.h"
@@ -58,28 +59,14 @@
     , m_criticalBatteryTimer(new QTimer(this))
 {
     // Before doing anything, let's set up our backend
-    KService::List offers = KServiceTypeTrader::self()->query("PowerDevilBackend", \
                "(Type == 'Service')");
-    QString error_string;
+    m_backend = PowerDevil::BackendLoader::loadBackend(this);
 
-    foreach (const KService::Ptr &ptr, offers) {
-        m_backend = ptr->createInstance<PowerDevil::BackendInterface>(0, \
                QVariantList(), &error_string);
-
-        if (!m_backend != 0) {
-            kDebug() << "Error loading '" << ptr->name() << "', KService said: " << \
                error_string;
-        }
-    }
-
     if (!m_backend) {
         // Ouch
         kError() << "KDE Power Management System init failed!";
-        if (error_string.isEmpty() && offers.isEmpty()) {
-            // No offers were available
-            onBackendError(i18n("No valid Power Management backend plugins were \
found. " +        onBackendError(i18n("No valid Power Management backend plugins are \
                available. "
                                 "A new installation might solve this problem."));
         } else {
-            onBackendError(error_string);
-        }
-    } else {
         // Async backend init - so that KDED gets a bit of a speed up
         connect(m_backend, SIGNAL(backendReady()), this, SLOT(onBackendReady()));
         connect(m_backend, SIGNAL(backendError(QString)), this, \
SLOT(onBackendError(QString))); @@ -95,12 +82,12 @@
 
 void Core::onBackendReady()
 {
-    kDebug() << "Backend is ready, PowerDevil system initialized";
+    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() << "PowerDevil not initialized, another power manager has been \
detected"; +        kError() << "KDE Power Management system not initialized, another \
power manager has been detected";  return;
     }
 


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

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