/* * Copyright (C) 2021 CutefishOS Team. * * Author: revenmartin * * 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 3 of the License, or * 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, see . */ #include "actions.h" #include #include #include #include const static QString s_dbusName = "com.cutefish.Session"; const static QString s_pathName = "/Session"; const static QString s_interfaceName = "com.cutefish.Session"; Actions::Actions(QObject *parent) : QObject(parent) { } void Actions::shutdown() { QDBusInterface iface(s_dbusName, s_pathName, s_interfaceName, QDBusConnection::sessionBus()); if (iface.isValid()) { iface.call("powerOff"); } } void Actions::logout() { QDBusInterface iface(s_dbusName, s_pathName, s_interfaceName, QDBusConnection::sessionBus()); if (iface.isValid()) { iface.call("logout"); } } void Actions::reboot() { QDBusInterface iface(s_dbusName, s_pathName, s_interfaceName, QDBusConnection::sessionBus()); if (iface.isValid()) { iface.call("reboot"); } } void Actions::lockScreen() { QProcess::startDetached("cutefish-screenlocker", QStringList()); qApp->exit(0); } void Actions::suspend() { QDBusInterface iface(s_dbusName, s_pathName, s_interfaceName, QDBusConnection::sessionBus()); if (iface.isValid()) { iface.call("suspend"); } QCoreApplication::exit(0); }