File indexing completed on 2024-05-12 05:36:17

0001 // SPDX-License-Identifier: GPL-2.0-only OR GPL-3.0-only OR LicenseRef-KDE-Accepted-GPL
0002 // SPDX-FileCopyrightText: 2020 Tomaz Canabrava <tcanabrava@kde.org>
0003 
0004 #pragma once
0005 
0006 #include "batterymodel.h"
0007 
0008 #include <KQuickConfigModule>
0009 #include <KSharedConfig>
0010 #include <memory>
0011 
0012 class MobilePower : public KQuickConfigModule
0013 {
0014     Q_OBJECT
0015     Q_PROPERTY(BatteryModel *batteries READ batteries CONSTANT)
0016     Q_PROPERTY(int dimScreenIdx READ dimScreenIdx WRITE setDimScreenIdx NOTIFY dimScreenIdxChanged)
0017     Q_PROPERTY(int screenOffIdx READ screenOffIdx WRITE setScreenOffIdx NOTIFY screenOffIdxChanged)
0018     Q_PROPERTY(int suspendSessionIdx READ suspendSessionIdx WRITE setSuspendSessionIdx NOTIFY suspendSessionIdxChanged)
0019 
0020 public:
0021     MobilePower(QObject *parent, const KPluginMetaData &metaData);
0022 
0023     Q_INVOKABLE QStringList timeOptions() const;
0024 
0025     void setDimScreenIdx(int idx);
0026     void setScreenOffIdx(int idx);
0027     void setSuspendSessionIdx(int idx);
0028     int dimScreenIdx();
0029     int screenOffIdx();
0030     int suspendSessionIdx();
0031 
0032     BatteryModel *batteries();
0033 
0034     Q_SIGNAL void dimScreenIdxChanged();
0035     Q_SIGNAL void screenOffIdxChanged();
0036     Q_SIGNAL void suspendSessionIdxChanged();
0037 
0038     QString stringForValue(int value);
0039 
0040     void load() override;
0041     void save() override;
0042 
0043 private:
0044     BatteryModel *m_batteries;
0045     KSharedConfig::Ptr m_profilesConfig;
0046 
0047     int m_suspendSessionTime;
0048     int m_dimScreenTime;
0049     bool m_dimScreen;
0050     int m_screenOffTime;
0051     bool m_screenOff;
0052 };