From kde-commits Mon May 18 16:39:21 2009 From: Dario Freddi Date: Mon, 18 May 2009 16:39:21 +0000 To: kde-commits Subject: KDE/kdebase/workspace/powerdevil Message-Id: <1242664761.147270.16450.nullmailer () svn ! kde ! org> X-MARC-Message: https://marc.info/?l=kde-commits&m=124266477510721 SVN commit 969646 by dafre: Fix bugs when DBus policies make sense: register an interface on the session bus and check for it. Also remove the old custom dbus interface. M +3 -5 daemon/PowerDevilDaemon.cpp M +14 -12 kcmodule/PowerDevilKCM.cpp --- trunk/KDE/kdebase/workspace/powerdevil/daemon/PowerDevilDaemon.cpp #969645:969646 @@ -103,7 +103,7 @@ , battery(0) , currentConfig(0) , status(PowerDevilDaemon::NoAction) - , ckSessionInterface(0) {}; + , ckSessionInterface(0) {} Solid::Control::PowerManager::Notifier *notifier; QPointer battery; @@ -164,8 +164,7 @@ if (conn.interface()->isServiceRegistered("org.freedesktop.PowerManagement") || conn.interface()->isServiceRegistered("com.novell.powersave") || - conn.interface()->isServiceRegistered("org.freedesktop.Policy.Power") || - conn.interface()->isServiceRegistered("org.kde.powerdevilsystem")) { + conn.interface()->isServiceRegistered("org.freedesktop.Policy.Power")) { kError() << "PowerDevil not initialized, another power manager has been detected"; return; } @@ -223,9 +222,8 @@ new PowerDevilAdaptor(this); new PowerManagementConnector(this); - // This gets registered to avoid double copies. - QDBusConnection::sessionBus().registerService("org.kde.powerdevilsystem"); conn.interface()->registerService("org.freedesktop.Policy.Power"); + QDBusConnection::sessionBus().registerService("org.kde.powerdevil"); // All systems up Houston, let's go! refreshStatus(); } --- trunk/KDE/kdebase/workspace/powerdevil/kcmodule/PowerDevilKCM.cpp #969645:969646 @@ -80,19 +80,21 @@ QDBusInterface iface("org.kde.kded", "/modules/powerdevil"); if (iface.isValid()) { - QDBusConnection conn = QDBusConnection::systemBus(); + if (!QDBusConnection::sessionBus().interface()->isServiceRegistered("org.kde.powerdevil").value()) { + QDBusConnection conn = QDBusConnection::systemBus(); - if (conn.interface()->isServiceRegistered("org.freedesktop.PowerManagement") || ( - conn.interface()->isServiceRegistered("org.freedesktop.Policy.Power") && !QDBusConnection::sessionBus().interface()->isServiceRegistered("org.kde.powerdevilsystem"))) { - initError(i18n("Another power manager has been detected. PowerDevil will not start if " - "other power managers are active. If you want to use PowerDevil as your primary " - "power manager, please remove the existing one and restart the PowerDevil service.")); - return; - } else if (conn.interface()->isServiceRegistered("com.novell.powersave")) { - initError(i18n("It seems powersaved is running on this system. PowerDevil will not start if " - "other power managers are active. If you want to use PowerDevil as your primary " - "power manager, please stop powersaved and restart the PowerDevil service.")); - return; + if (conn.interface()->isServiceRegistered("org.freedesktop.PowerManagement") || ( + conn.interface()->isServiceRegistered("org.freedesktop.Policy.Power") && !QDBusConnection::sessionBus().interface()->isServiceRegistered("org.kde.powerdevilsystem"))) { + initError(i18n("Another power manager has been detected. PowerDevil will not start if " + "other power managers are active. If you want to use PowerDevil as your primary " + "power manager, please remove the existing one and restart the PowerDevil service.")); + return; + } else if (conn.interface()->isServiceRegistered("com.novell.powersave")) { + initError(i18n("It seems powersaved is running on this system. PowerDevil will not start if " + "other power managers are active. If you want to use PowerDevil as your primary " + "power manager, please stop powersaved and restart the PowerDevil service.")); + return; + } } initView();