File indexing completed on 2024-04-14 05:21:16

0001 /*
0002 SPDX-FileCopyrightText: 2014 Martin Gräßlin <mgraesslin@kde.org>
0003 
0004 SPDX-License-Identifier: GPL-2.0-or-later
0005 */
0006 #pragma once
0007 
0008 #include <QObject>
0009 #include <QtDBus>
0010 
0011 class FakeLogindSession;
0012 
0013 class FakeLogind : public QObject
0014 {
0015     Q_OBJECT
0016     Q_CLASSINFO("D-Bus Interface", "org.freedesktop.login1.Manager")
0017 public:
0018     explicit FakeLogind(QObject *parent = nullptr);
0019     ~FakeLogind() override;
0020 
0021     FakeLogindSession *session() const
0022     {
0023         return m_session;
0024     }
0025 
0026 public Q_SLOTS:
0027     Q_SCRIPTABLE QDBusObjectPath GetSession(const QString &session);
0028     Q_SCRIPTABLE void lock();
0029     Q_SCRIPTABLE void unlock();
0030 
0031 private:
0032     FakeLogindSession *m_session;
0033 };
0034 
0035 class FakeLogindSession : public QObject
0036 {
0037     Q_OBJECT
0038     Q_CLASSINFO("D-Bus Interface", "org.freedesktop.login1.Session")
0039 public:
0040     explicit FakeLogindSession(const QString &path, QObject *parent = nullptr);
0041     ~FakeLogindSession() override;
0042 
0043     const QString &path()
0044     {
0045         return m_path;
0046     }
0047 
0048     void lock();
0049     void unlock();
0050 
0051 Q_SIGNALS:
0052     Q_SCRIPTABLE void Lock();
0053     Q_SCRIPTABLE void Unlock();
0054 
0055 private:
0056     QString m_path;
0057 };