/* * Copyright (C) 2014 Canonical, Ltd. * * This program is free software: you can redistribute it and/or modify it under * the terms of the GNU Lesser General Public License version 3, as published by * the Free Software Foundation. * * This program is distributed in the hope that it will be useful, but WITHOUT * ANY WARRANTY; without even the implied warranties of MERCHANTABILITY, * SATISFACTORY QUALITY, or FITNESS FOR A PARTICULAR PURPOSE. See the GNU * Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser General Public License * along with this program. If not, see . */ // local #include "dbusunitysessionservice.h" // Qt #include #include DBusUnitySessionService::DBusUnitySessionService() : QObject() { QDBusConnection connection = QDBusConnection::sessionBus(); connection.registerService("com.canonical.Unity"); connection.registerObject("/com/canonical/Unity/Session", this, QDBusConnection::ExportScriptableSignals | QDBusConnection::ExportScriptableSlots | QDBusConnection::ExportScriptableInvokables); } DBusUnitySessionService::~DBusUnitySessionService() { } void DBusUnitySessionService::Logout() { Q_EMIT logoutReady(); } void DBusUnitySessionService::RequestLogout() { Q_EMIT logoutRequested(false); } void DBusUnitySessionService::Reboot() { QDBusConnection connection = QDBusConnection::systemBus(); QDBusInterface iface1 ("org.freedesktop.login1", "/org/freedesktop/login1", "org.freedesktop.login1.Manager", connection); iface1.call("Reboot", false); } void DBusUnitySessionService::RequestReboot() { Q_EMIT rebootRequested(false); } void DBusUnitySessionService::Shutdown() { QDBusConnection connection = QDBusConnection::systemBus(); QDBusInterface iface1 ("org.freedesktop.login1", "/org/freedesktop/login1", "org.freedesktop.login1.Manager", connection); iface1.call("PowerOff", false); } void DBusUnitySessionService::RequestShutdown() { Q_EMIT shutdownRequested(false); }