File indexing completed on 2024-04-21 14:56:11
0001 /* 0002 Copyright 2006-2007 Kevin Ottens <ervin@kde.org> 0003 0004 This library is free software; you can redistribute it and/or 0005 modify it under the terms of the GNU Lesser General Public 0006 License as published by the Free Software Foundation; either 0007 version 2.1 of the License, or (at your option) version 3, or any 0008 later version accepted by the membership of KDE e.V. (or its 0009 successor approved by the membership of KDE e.V.), which shall 0010 act as a proxy defined in Section 6 of version 3 of the license. 0011 0012 This library is distributed in the hope that it will be useful, 0013 but WITHOUT ANY WARRANTY; without even the implied warranty of 0014 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 0015 Lesser General Public License for more details. 0016 0017 You should have received a copy of the GNU Lesser General Public 0018 License along with this library. If not, see <http://www.gnu.org/licenses/>. 0019 */ 0020 0021 #ifndef SOLID_POWERMANAGEMENT_P_H 0022 #define SOLID_POWERMANAGEMENT_P_H 0023 0024 #include "powermanagement.h" 0025 0026 #include "inhibitinterface.h" 0027 #include "powermanagementinterface.h" 0028 #include "policyagentinterface.h" 0029 0030 #include <QDBusServiceWatcher> 0031 0032 namespace Solid 0033 { 0034 class PowerManagementPrivate : public PowerManagement::Notifier 0035 { 0036 Q_OBJECT 0037 public: 0038 enum RequiredPolicy { 0039 None = 0, 0040 InterruptSession = 1, 0041 ChangeProfile = 2, 0042 ChangeScreenSettings = 4 0043 }; 0044 0045 PowerManagementPrivate(); 0046 ~PowerManagementPrivate() override; 0047 0048 public Q_SLOTS: 0049 void slotCanSuspendChanged(bool newState); 0050 void slotCanHibernateChanged(bool newState); 0051 void slotCanHybridSuspendChanged(bool newState); 0052 void slotPowerSaveStatusChanged(bool newState); 0053 void slotServiceRegistered(const QString &serviceName); 0054 void slotServiceUnregistered(const QString &serviceName); 0055 0056 public: 0057 OrgFreedesktopPowerManagementInterface managerIface; 0058 OrgKdeSolidPowerManagementPolicyAgentInterface policyAgentIface; 0059 OrgFreedesktopPowerManagementInhibitInterface inhibitIface; 0060 QDBusServiceWatcher serviceWatcher; 0061 0062 bool powerSaveStatus; 0063 QSet<Solid::PowerManagement::SleepState> supportedSleepStates; 0064 QHash<uint, uint> screensaverCookiesForPowerDevilCookies; 0065 }; 0066 } 0067 0068 #endif