| 60 | static const QString s_managerPath = QStringLiteral("/org/freedesktop/login1"); |
| 61 | |
| 62 | static QString findProcessSessionPath() |
| 63 | { |
| 64 | const QString sessionId = qEnvironmentVariable("XDG_SESSION_ID", QStringLiteral("auto")); |
| 65 | QDBusMessage message = QDBusMessage::createMethodCall(s_serviceName, s_managerPath, |
| 66 | s_managerInterface, |
| 67 | QStringLiteral("GetSession")); |
| 68 | message.setArguments({sessionId}); |
| 69 | const QDBusMessage reply = QDBusConnection::systemBus().call(message); |
| 70 | if (reply.type() == QDBusMessage::ErrorMessage) { |
| 71 | return QString(); |
| 72 | } |
| 73 | |
| 74 | return reply.arguments().constFirst().value<QDBusObjectPath>().path(); |
| 75 | } |
| 76 | |
| 77 | static bool takeControl(const QString &sessionPath) |
| 78 | { |