[prev in list] [next in list] [prev in thread] [next in thread]
List: kde-commits
Subject: KDE/kdebase/workspace/plasma/desktop/applets/kickoff
From: Dario Freddi <drf () kde ! org>
Date: 2010-11-28 17:09:28
Message-ID: 20101128170928.73639AC8A5 () svn ! kde ! org
[Download RAW message or body]
SVN commit 1201782 by dafre:
Port KickOff away from S::C::PowerManager and to new KDE Power Management System
M +4 -4 CMakeLists.txt
M +36 -38 core/itemhandlers.cpp
M +5 -5 core/leavemodel.cpp
M +5 -5 simpleapplet/simpleapplet.cpp
--- trunk/KDE/kdebase/workspace/plasma/desktop/applets/kickoff/CMakeLists.txt \
#1201781:1201782 @@ -33,7 +33,7 @@
set(ksmserver_xml ${KDEBASE_WORKSPACE_SOURCE_DIR}/ksmserver/org.kde.KSMServerInterface.xml)
QT4_ADD_DBUS_INTERFACE(libkickoff_SRCS ${ksmserver_xml} ksmserver_interface)
-set(Kickoff_LIBS ${KDE4_KIO_LIBS} ${KDE4_KFILE_LIBS} ${KDE4_SOLID_LIBS} \
solidcontrol) +set(Kickoff_LIBS ${KDE4_KIO_LIBS} ${KDE4_KFILE_LIBS} \
${KDE4_SOLID_LIBS}) if(NOT WIN32)
set(Kickoff_LIBS ${Kickoff_LIBS} kworkspace)
endif(NOT WIN32)
@@ -44,7 +44,7 @@
include_directories( ${STRIGI_INCLUDE_DIR} )
kde4_add_library(kickoff SHARED ${libkickoff_SRCS})
-target_link_libraries(kickoff ${KDE4_PLASMA_LIBS} solidcontrol ${Kickoff_LIBS})
+target_link_libraries(kickoff ${KDE4_PLASMA_LIBS} ${Kickoff_LIBS})
install(TARGETS kickoff ${INSTALL_TARGETS_DEFAULT_ARGS})
#######################################################################################
@@ -64,7 +64,7 @@
)
kde4_add_ui_files(Applet_SRCS applet/kickoffConfig.ui )
kde4_add_plugin(plasma_applet_launcher ${Applet_SRCS})
-target_link_libraries(plasma_applet_launcher ${KDE4_PLASMA_LIBS} solidcontrol \
${Kickoff_LIBS} kickoff) +target_link_libraries(plasma_applet_launcher \
${KDE4_PLASMA_LIBS} ${Kickoff_LIBS} kickoff) install(TARGETS plasma_applet_launcher \
DESTINATION ${PLUGIN_INSTALL_DIR}) install(FILES \
applet/plasma-applet-launcher.desktop DESTINATION ${SERVICES_INSTALL_DIR})
@@ -77,7 +77,7 @@
simpleapplet/simpleapplet.cpp
)
kde4_add_plugin(plasma_applet_simplelauncher ${SimpleApplet_SRCS})
-target_link_libraries(plasma_applet_simplelauncher ${KDE4_KCMUTILS_LIBS} \
${KDE4_PLASMA_LIBS} solidcontrol ${Kickoff_LIBS} kickoff) \
+target_link_libraries(plasma_applet_simplelauncher ${KDE4_KCMUTILS_LIBS} \
${KDE4_PLASMA_LIBS} ${Kickoff_LIBS} kickoff) install(TARGETS \
plasma_applet_simplelauncher DESTINATION ${PLUGIN_INSTALL_DIR}) install(FILES \
simpleapplet/plasma-applet-simplelauncher.desktop DESTINATION \
${SERVICES_INSTALL_DIR})
--- trunk/KDE/kdebase/workspace/plasma/desktop/applets/kickoff/core/itemhandlers.cpp \
#1201781:1201782 @@ -33,7 +33,6 @@
// KDE Base
#include <kworkspace/kworkspace.h>
-#include <solid/control/powermanager.h>
// Local
#include "core/recentapplications.h"
@@ -42,6 +41,8 @@
#include "krunner_interface.h"
#include "screensaver_interface.h"
#include "ksmserver_interface.h"
+#include <QtDBus/QDBusConnection>
+#include <QtDBus/QDBusConnectionInterface>
using namespace Kickoff;
@@ -68,39 +69,33 @@
m_logoutAction = url.path().remove('/');
if (m_logoutAction == "sleep") {
- // Check if powerdevil is running, and use its methods to suspend if \
available
- // otherwise go through Solid directly
- QStringList modules;
- QDBusInterface kdedInterface("org.kde.kded", "/kded", "org.kde.kded");
- QDBusReply<QStringList> reply = kdedInterface.call("loadedModules");
- if (reply.isValid() && reply.value().contains("powerdevil")) {
- kDebug() << "Using powerdevil to suspend";
- QDBusConnection dbus(QDBusConnection::sessionBus());
- QDBusInterface iface("org.kde.kded", "/modules/powerdevil", \
"org.kde.PowerDevil", dbus);
- iface.call("suspend", Solid::Control::PowerManager::ToRam);
+ // Check if KDE Power Management System is running, and use its methods to \
suspend if available + if \
(QDBusConnection::sessionBus().interface()->isServiceRegistered("org.kde.Solid.PowerManagement")) \
{ + kDebug() << "Using KDE Power Management System to suspend";
+ QDBusMessage call = \
QDBusMessage::createMethodCall("org.kde.Solid.PowerManagement", + \
"/org/kde/Solid/PowerManagement", + \
"org.kde.Solid.PowerManagement", + \
"suspendToRam"); + QDBusConnection::sessionBus().asyncCall(call);
+ return true;
} else {
- kDebug() << "Powerdevil not available, using solid to suspend";
- KJob * job = \
Solid::Control::PowerManager::suspend(Solid::Control::PowerManager::ToRam);
- job->start();
+ kDebug() << "KDE Power Management System not available, suspend failed";
+ return false;
}
- return true;
} else if (m_logoutAction == "hibernate") {
- // Check if powerdevil is running, and use its methods to hibernate if \
available
- // otherwise go through Solid directly
- QStringList modules;
- QDBusInterface kdedInterface("org.kde.kded", "/kded", "org.kde.kded");
- QDBusReply<QStringList> reply = kdedInterface.call("loadedModules");
- if (reply.isValid() && reply.value().contains("powerdevil")) {
- kDebug() << "Using powerdevil to hibernate";
- QDBusConnection dbus(QDBusConnection::sessionBus());
- QDBusInterface iface("org.kde.kded", "/modules/powerdevil", \
"org.kde.PowerDevil", dbus);
- iface.call("suspend", Solid::Control::PowerManager::ToDisk);
+ // Check if KDE Power Management System is running, and use its methods to \
hibernate if available + if \
(QDBusConnection::sessionBus().interface()->isServiceRegistered("org.kde.Solid.PowerManagement")) \
{ + kDebug() << "Using KDE Power Management System to hibernate";
+ QDBusMessage call = \
QDBusMessage::createMethodCall("org.kde.Solid.PowerManagement", + \
"/org/kde/Solid/PowerManagement", + \
"org.kde.Solid.PowerManagement", + \
"suspendToDisk"); + QDBusConnection::sessionBus().asyncCall(call);
+ return true;
} else {
- kDebug() << "Powerdevil not available, using solid to hibernate";
- KJob * job = \
Solid::Control::PowerManager::suspend(Solid::Control::PowerManager::ToDisk);
- job->start();
+ kDebug() << "KDE Power Management System not available, hibernate \
failed"; + return false;
}
- return true;
} else if (m_logoutAction == "lock") {
// decouple dbus call, otherwise we'll run into a dead-lock
QTimer::singleShot(0, this, SLOT(lock()));
@@ -197,21 +192,24 @@
void LeaveItemHandler::standby()
{
- QDBusConnection dbus(QDBusConnection::sessionBus());
- QDBusInterface iface("org.kde.kded", "/modules/powerdevil", \
"org.kde.PowerDevil", dbus);
- iface.asyncCall("suspend", Solid::Control::PowerManager::Standby);
+ // FIXME: Use standby from KDE Power Management System's interface
+ suspendRAM();
}
void LeaveItemHandler::suspendRAM()
{
- QDBusConnection dbus(QDBusConnection::sessionBus());
- QDBusInterface iface("org.kde.kded", "/modules/powerdevil", \
"org.kde.PowerDevil", dbus);
- iface.asyncCall("suspend", Solid::Control::PowerManager::ToRam);
+ QDBusMessage call = \
QDBusMessage::createMethodCall("org.kde.Solid.PowerManagement", + \
"/org/kde/Solid/PowerManagement", + \
"org.kde.Solid.PowerManagement", + \
"suspendToRam"); + QDBusConnection::sessionBus().asyncCall(call);
}
void LeaveItemHandler::suspendDisk()
{
- QDBusConnection dbus(QDBusConnection::sessionBus());
- QDBusInterface iface("org.kde.kded", "/modules/powerdevil", \
"org.kde.PowerDevil", dbus);
- iface.asyncCall("suspend", Solid::Control::PowerManager::ToDisk);
+ QDBusMessage call = \
QDBusMessage::createMethodCall("org.kde.Solid.PowerManagement", + \
"/org/kde/Solid/PowerManagement", + \
"org.kde.Solid.PowerManagement", + \
"suspendToDisk"); + QDBusConnection::sessionBus().asyncCall(call);
}
--- trunk/KDE/kdebase/workspace/plasma/desktop/applets/kickoff/core/leavemodel.cpp \
#1201781:1201782 @@ -27,7 +27,7 @@
#include <KConfigGroup>
#include <KDebug>
#include <KIcon>
-#include <solid/control/powermanager.h>
+#include <Solid/PowerManagement>
#include <kworkspace/kworkspace.h>
// Local
@@ -141,20 +141,20 @@
//FIXME: the proper fix is to implement the KWorkSpace methods for Windows
#ifndef Q_WS_WIN
- Solid::Control::PowerManager::SuspendMethods spdMethods = \
Solid::Control::PowerManager::supportedSuspendMethods();
- if (spdMethods & Solid::Control::PowerManager::Standby) {
+ QSet< Solid::PowerManagement::SleepState > spdMethods = \
Solid::PowerManagement::supportedSleepStates(); + if \
(spdMethods.contains(Solid::PowerManagement::StandbyState)) {
QStandardItem *standbyOption = createStandardItem("leave:/standby");
systemOptions->appendRow(standbyOption);
addSystemSession = true;
}
- if (spdMethods & Solid::Control::PowerManager::ToRam) {
+ if (spdMethods.contains(Solid::PowerManagement::SuspendState)) {
QStandardItem *suspendramOption = createStandardItem("leave:/suspendram");
systemOptions->appendRow(suspendramOption);
addSystemSession = true;
}
- if (spdMethods & Solid::Control::PowerManager::ToDisk) {
+ if (spdMethods.contains(Solid::PowerManagement::HibernateState)) {
QStandardItem *suspenddiskOption = createStandardItem("leave:/suspenddisk");
systemOptions->appendRow(suspenddiskOption);
addSystemSession = true;
--- trunk/KDE/kdebase/workspace/plasma/desktop/applets/kickoff/simpleapplet/simpleapplet.cpp \
#1201781:1201782 @@ -52,10 +52,10 @@
#include <KRun>
#include <KServiceTypeTrader>
#include <KToolInvocation>
+#include <Solid/PowerManagement>
// KDE Base
#include <kworkspace/kworkspace.h>
-#include <solid/control/powermanager.h>
// Plasma
#include <Plasma/IconWidget>
@@ -731,15 +731,15 @@
d->addModel(leavemodel, Leave, Kickoff::MenuView::MergeFirstLevel, \
Kickoff::MenuView::Name); } else {
#ifndef Q_WS_WIN
- Solid::Control::PowerManager::SuspendMethods spdMethods = \
Solid::Control::PowerManager::supportedSuspendMethods(); + QSet< \
Solid::PowerManagement::SleepState > spdMethods = \
Solid::PowerManagement::supportedSleepStates(); if (vtname == "Standby") {
- if (spdMethods & Solid::Control::PowerManager::Standby)
+ if (spdMethods.contains(Solid::PowerManagement::StandbyState))
menuview->addAction(KIcon(d->viewIcon(Standby)), \
d->viewText(Standby))->setData(KUrl("leave:/standby")); } else if(vtname == \
"SuspendDisk") {
- if (spdMethods & Solid::Control::PowerManager::ToDisk)
+ if (spdMethods.contains(Solid::PowerManagement::HibernateState))
menuview->addAction(KIcon(d->viewIcon(SuspendDisk)), \
d->viewText(SuspendDisk))->setData(KUrl("leave:/suspenddisk")); } else if(vtname == \
"SuspendRAM") {
- if (spdMethods & Solid::Control::PowerManager::ToRam)
+ if (spdMethods.contains(Solid::PowerManagement::SuspendState))
menuview->addAction(KIcon(d->viewIcon(SuspendRAM)), \
d->viewText(SuspendRAM))->setData(KUrl("leave:/suspendram")); } else if(vtname == \
"Restart") {
if (KWorkSpace::canShutDown(KWorkSpace::ShutdownConfirmDefault, \
KWorkSpace::ShutdownTypeReboot))
[prev in list] [next in list] [prev in thread] [next in thread]
Configure |
About |
News |
Add a list |
Sponsored by KoreLogic