diff --git a/daemon/CMakeLists.txt b/daemon/CMakeLists.txt index ef88d919..4b0aafd2 100644 --- a/daemon/CMakeLists.txt +++ b/daemon/CMakeLists.txt @@ -1,142 +1,141 @@ add_definitions(-DTRANSLATION_DOMAIN=\"powerdevil\" -DQT_USE_QSTRINGBUILDER) include_directories(${CMAKE_CURRENT_SOURCE_DIR} ${CMAKE_CURRENT_BINARY_DIR}) add_subdirectory(actions) set(POWERDEVIL_CORE_VERSION_MAJOR 2) set(POWERDEVIL_CORE_VERSION_MINOR 0) set(POWERDEVIL_CORE_VERSION_MICRO 0) set(POWERDEVIL_CORE_VERSION_STRING ${POWERDEVIL_CORE_VERSION_MAJOR}.${POWERDEVIL_CORE_VERSION_MINOR}.${POWERDEVIL_CORE_VERSION_MICRO}) # Add bundled actions set(powerdevil_bundled_actions_SRCS powerdevil_debug.cpp actions/bundled/suspendsession.cpp actions/bundled/brightnesscontrol.cpp actions/bundled/keyboardbrightnesscontrol.cpp actions/bundled/dimdisplay.cpp actions/bundled/runscript.cpp actions/bundled/handlebuttonevents.cpp actions/bundled/wirelesspowersaving.cpp ) # target no.1 - powerdevil core library set(powerdevilcore_SRCS powerdevil_debug.cpp powerdevilaction.cpp powerdevilactionpool.cpp powerdevilbackendinterface.cpp powerdevilcore.cpp powerdevilpolicyagent.cpp powerdevilprofilegenerator.cpp powerdevilbrightnesslogic.cpp powerdevilscreenbrightnesslogic.cpp powerdevilkeyboardbrightnesslogic.cpp brightnessosdwidget.cpp kwinkscreenhelpereffect.cpp ) kconfig_add_kcfg_files(powerdevilcore_SRCS ../PowerDevilSettings.kcfgc) # Action DBus Adaptors qt5_add_dbus_adaptor(powerdevilcore_SRCS actions/bundled/org.kde.Solid.PowerManagement.Actions.BrightnessControl.xml actions/bundled/brightnesscontrol.h PowerDevil::BundledActions::BrightnessControl) qt5_add_dbus_adaptor(powerdevilcore_SRCS actions/bundled/org.kde.Solid.PowerManagement.Actions.KeyboardBrightnessControl.xml actions/bundled/keyboardbrightnesscontrol.h PowerDevil::BundledActions::KeyboardBrightnessControl) qt5_add_dbus_adaptor(powerdevilcore_SRCS actions/bundled/org.kde.Solid.PowerManagement.Actions.HandleButtonEvents.xml actions/bundled/handlebuttonevents.h PowerDevil::BundledActions::HandleButtonEvents) qt5_add_dbus_adaptor(powerdevilcore_SRCS actions/bundled/org.kde.Solid.PowerManagement.Actions.SuspendSession.xml actions/bundled/suspendsession.h PowerDevil::BundledActions::SuspendSession) qt5_add_dbus_adaptor(powerdevilcore_SRCS actions/bundled/org.kde.Solid.PowerManagement.Actions.WirelessPowerSaving.xml actions/bundled/wirelesspowersaving.h PowerDevil::BundledActions::WirelessPowerSaving) 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}) # not exported, so just make the deps public target_link_libraries(powerdevilcore KF5::Activities KF5::ConfigCore KF5::ConfigGui KF5::DBusAddons KF5::I18n KF5::Solid KF5::IdleTime KF5::GlobalAccel KF5::Screen KF5::Service KF5::WidgetsAddons KF5::Notifications KF5::XmlGui KF5::NetworkManagerQt KF5::BluezQt PW::KWorkspace ) if (XCB_FOUND) # kwin kscreen helper effect target_link_libraries(powerdevilcore Qt5::X11Extras XCB::XCB) endif () # target no.2 - powerdevil kded module set(kded_powerdevil_SRCS powerdevil_debug.cpp kdedpowerdevil.cpp - powerdevilbackendloader.cpp powerdevilfdoconnector.cpp ) # DBus Adaptors qt5_add_dbus_adaptor(kded_powerdevil_SRCS org.kde.Solid.PowerManagement.xml powerdevilcore.h PowerDevil::Core) qt5_add_dbus_adaptor(kded_powerdevil_SRCS org.kde.Solid.PowerManagement.PolicyAgent.xml powerdevilpolicyagent.h PowerDevil::PolicyAgent powermanagementpolicyagentadaptor PowerManagementPolicyAgentAdaptor) qt5_add_dbus_adaptor(kded_powerdevil_SRCS ${KDE4_DBUS_INTERFACES_DIR}/kf5_org.freedesktop.PowerManagement.xml powerdevilfdoconnector.h PowerDevil::FdoConnector powermanagementfdoadaptor PowerManagementFdoAdaptor) qt5_add_dbus_adaptor(kded_powerdevil_SRCS ${KDE4_DBUS_INTERFACES_DIR}/kf5_org.freedesktop.PowerManagement.Inhibit.xml powerdevilfdoconnector.h PowerDevil::FdoConnector powermanagementinhibitadaptor PowerManagementInhibitAdaptor) # Backends include(BackendConfig.cmake) add_library(kded_powerdevil MODULE ${kded_powerdevil_SRCS} ${POWERDEVIL_BACKEND_SRCS}) set_target_properties(kded_powerdevil PROPERTIES OUTPUT_NAME powerdevil) kcoreaddons_desktop_to_json(kded_powerdevil powerdevil.desktop) target_link_libraries(kded_powerdevil ${POWERDEVIL_BACKEND_LIBS} KF5::ConfigCore KF5::CoreAddons KF5::I18n KF5::DBusAddons powerdevilcore ) if (XCB_FOUND) target_link_libraries(kded_powerdevil Qt5::X11Extras) endif () target_link_libraries(kded_powerdevil ${UDEV_LIBS}) install(TARGETS kded_powerdevil DESTINATION ${PLUGIN_INSTALL_DIR}/kf5/kded) install(TARGETS powerdevilcore ${INSTALL_TARGETS_DEFAULT_ARGS}) # target no.3 - powerdevil ui library set(powerdevilui_SRCS powerdevilactionconfig.cpp ) add_library(powerdevilui ${powerdevilui_SRCS}) set_target_properties(powerdevilui PROPERTIES VERSION ${PROJECT_VERSION} SOVERSION ${PROJECT_VERSION_MAJOR}) # not exported, so just make the deps public target_link_libraries(powerdevilui PUBLIC Qt5::Widgets KF5::ConfigCore ) set(HAVE_XCB ${XCB_FOUND}) configure_file(config-powerdevil.h.cmake ${CMAKE_CURRENT_BINARY_DIR}/config-powerdevil.h ) install(TARGETS powerdevilui ${INSTALL_TARGETS_DEFAULT_ARGS}) diff --git a/daemon/kdedpowerdevil.cpp b/daemon/kdedpowerdevil.cpp index 0e0a5b90..c47c2386 100644 --- a/daemon/kdedpowerdevil.cpp +++ b/daemon/kdedpowerdevil.cpp @@ -1,115 +1,116 @@ /*************************************************************************** * Copyright (C) 2010 by Dario Freddi * * * * This program is free software; you can redistribute it and/or modify * * it under the terms of the GNU General Public License as published by * * the Free Software Foundation; either version 2 of the License, or * * (at your option) any later version. * * * * This program is distributed in the hope that it will be useful, * * but WITHOUT ANY WARRANTY; without even the implied warranty of * * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * * GNU General Public License for more details. * * * * You should have received a copy of the GNU General Public License * * along with this program; if not, write to the * * Free Software Foundation, Inc., * * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA . * ***************************************************************************/ #include "kdedpowerdevil.h" #include "powerdevilfdoconnector.h" #include "powermanagementadaptor.h" #include "powermanagementpolicyagentadaptor.h" -#include "powerdevilbackendloader.h" #include "powerdevilcore.h" #include "powerdevil_debug.h" +#include "backends/upower/powerdevilupowerbackend.h" + #include #include #include #include #include #include #include #include K_PLUGIN_FACTORY_WITH_JSON(PowerDevilFactory, "powerdevil.json", registerPlugin();) KDEDPowerDevil::KDEDPowerDevil(QObject* parent, const QVariantList &) : KDEDModule(parent) , m_core(Q_NULLPTR) { QTimer::singleShot(0, this, SLOT(init())); } KDEDPowerDevil::~KDEDPowerDevil() { } void KDEDPowerDevil::init() { // KGlobal::insertCatalog("powerdevil"); // KAboutData aboutData("powerdevil", "powerdevil", ki18n("KDE Power Management System"), // PROJECT_VERSION, ki18n("KDE Power Management System is PowerDevil, an " // "advanced, modular and lightweight Power Management " // "daemon"), // KAboutData::License_GPL, ki18n("(c) 2010 MetalWorkers Co."), // KLocalizedString(), "http://www.kde.org"); // // aboutData.addAuthor(ki18n( "Dario Freddi" ), ki18n("Maintainer"), "drf@kde.org", // "http://drfav.wordpress.com"); if (QDBusConnection::systemBus().interface()->isServiceRegistered(QLatin1String("org.freedesktop.PowerManagement")) || QDBusConnection::systemBus().interface()->isServiceRegistered(QLatin1String("com.novell.powersave")) || QDBusConnection::systemBus().interface()->isServiceRegistered(QLatin1String("org.freedesktop.Policy.Power"))) { qCCritical(POWERDEVIL) << "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(m_core); + PowerDevil::BackendInterface *interface = new PowerDevilUPowerBackend(m_core); if (!interface) { // Ouch qCCritical(POWERDEVIL) << "KDE Power Management System init failed!"; m_core->loadCore(0); } else { // Let's go! qCDebug(POWERDEVIL) << "Backend loaded, loading core"; m_core->loadCore(interface); } } void KDEDPowerDevil::onCoreReady() { qCDebug(POWERDEVIL) << "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(QLatin1String("org.kde.Solid.PowerManagement")); QDBusConnection::sessionBus().registerObject(QLatin1String("/org/kde/Solid/PowerManagement"), m_core); QDBusConnection::systemBus().interface()->registerService("org.freedesktop.Policy.Power"); // Start the Policy Agent service qDBusRegisterMetaType>(); qDBusRegisterMetaType(); new PowerManagementPolicyAgentAdaptor(PowerDevil::PolicyAgent::instance()); QDBusConnection::sessionBus().registerService(QLatin1String("org.kde.Solid.PowerManagement.PolicyAgent")); QDBusConnection::sessionBus().registerObject(QLatin1String("/org/kde/Solid/PowerManagement/PolicyAgent"), PowerDevil::PolicyAgent::instance()); } #include "kdedpowerdevil.moc" diff --git a/daemon/powerdevilbackendloader.cpp b/daemon/powerdevilbackendloader.cpp deleted file mode 100644 index e493be55..00000000 --- a/daemon/powerdevilbackendloader.cpp +++ /dev/null @@ -1,37 +0,0 @@ -/*************************************************************************** - * Copyright (C) 2010 by Dario Freddi * - * * - * This program is free software; you can redistribute it and/or modify * - * it under the terms of the GNU General Public License as published by * - * the Free Software Foundation; either version 2 of the License, or * - * (at your option) any later version. * - * * - * This program is distributed in the hope that it will be useful, * - * but WITHOUT ANY WARRANTY; without even the implied warranty of * - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * - * GNU General Public License for more details. * - * * - * You should have received a copy of the GNU General Public License * - * along with this program; if not, write to the * - * Free Software Foundation, Inc., * - * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA . * - ***************************************************************************/ - - -#include -#include "powerdevilbackendloader.h" -#include "powerdevil_debug.h" - -#include "backends/upower/powerdevilupowerbackend.h" - -namespace PowerDevil { -namespace BackendLoader { - -BackendInterface *loadBackend(QObject *parent) -{ - return new PowerDevilUPowerBackend(parent); -} - -} -} - diff --git a/daemon/powerdevilbackendloader.h b/daemon/powerdevilbackendloader.h deleted file mode 100644 index 5cd60be5..00000000 --- a/daemon/powerdevilbackendloader.h +++ /dev/null @@ -1,36 +0,0 @@ -/*************************************************************************** - * Copyright (C) 2010 by Dario Freddi * - * * - * This program is free software; you can redistribute it and/or modify * - * it under the terms of the GNU General Public License as published by * - * the Free Software Foundation; either version 2 of the License, or * - * (at your option) any later version. * - * * - * This program is distributed in the hope that it will be useful, * - * but WITHOUT ANY WARRANTY; without even the implied warranty of * - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * - * GNU General Public License for more details. * - * * - * You should have received a copy of the GNU General Public License * - * along with this program; if not, write to the * - * Free Software Foundation, Inc., * - * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA . * - ***************************************************************************/ - -#ifndef POWERDEVIL_BACKENDLOADER_H -#define POWERDEVIL_BACKENDLOADER_H - -class QObject; -namespace PowerDevil { - -class BackendInterface; - - -namespace BackendLoader -{ - BackendInterface *loadBackend(QObject *parent); -} - -} - -#endif // POWERDEVIL_POWERDEVILBACKENDLOADER_H