File indexing completed on 2024-04-21 09:18:04

0001 /*
0002 SPDX-FileCopyrightText: 2016 Martin Gräßlin <mgraesslin@kde.org>
0003 
0004 SPDX-License-Identifier: LGPL-2.1-only OR LGPL-3.0-only OR LicenseRef-KDE-Accepted-LGPL
0005 */
0006 #pragma once
0007 
0008 #include <QObject>
0009 
0010 class PowerManagement : public QObject
0011 {
0012     Q_OBJECT
0013     Q_PROPERTY(bool canSuspend READ canSuspend NOTIFY canSuspendChanged)
0014     Q_PROPERTY(bool canHibernate READ canHibernate NOTIFY canHibernateChanged)
0015 public:
0016     ~PowerManagement() override;
0017 
0018     bool canSuspend() const;
0019     bool canHibernate() const;
0020 
0021     static PowerManagement *instance();
0022 
0023 public Q_SLOTS:
0024     void suspend();
0025     void hibernate();
0026 
0027 Q_SIGNALS:
0028     void canSuspendChanged();
0029     void canHibernateChanged();
0030 
0031 protected:
0032     explicit PowerManagement();
0033 
0034 private:
0035     class Private;
0036     QScopedPointer<Private> d;
0037 };