Fix power manager

pull/55/head
reionwong 4 years ago
parent 589364b289
commit b8ac4b618d

@ -18,7 +18,10 @@
*/
#include "powermanager.h"
#include <QSettings>
#include <QDBusPendingCall>
#include <QDebug>
PowerManager::PowerManager(QObject *parent)
: QObject(parent)
@ -30,6 +33,10 @@ PowerManager::PowerManager(QObject *parent)
if (m_iface.isValid()) {
m_mode = m_iface.property("mode").toInt();
}
QSettings settings(QSettings::UserScope, "cutefishos", "power");
m_idleTime = settings.value("CloseScreenTimeout", 600).toInt();
m_hibernateTime = settings.value("HibernateTimeout", 600).toInt();
}
int PowerManager::mode() const
@ -45,3 +52,33 @@ void PowerManager::setMode(int mode)
emit modeChanged();
}
}
int PowerManager::idleTime()
{
return m_idleTime;
}
void PowerManager::setIdleTime(int idleTime)
{
if (m_idleTime != idleTime) {
m_idleTime = idleTime;
QSettings settings(QSettings::UserScope, "cutefishos", "power");
settings.setValue("CloseScreenTimeout", idleTime);
emit idleTimeChanged();
}
}
int PowerManager::hibernateTime()
{
return m_hibernateTime;
}
void PowerManager::setHibernateTime(int timeout)
{
if (m_hibernateTime != timeout) {
m_hibernateTime = timeout;
QSettings settings(QSettings::UserScope, "cutefishos", "power");
settings.setValue("HibernateTimeout", timeout);
emit hibernateTimeChanged();
}
}

@ -27,6 +27,8 @@ class PowerManager : public QObject
{
Q_OBJECT
Q_PROPERTY(int mode READ mode WRITE setMode NOTIFY modeChanged)
Q_PROPERTY(int idleTime READ idleTime WRITE setIdleTime NOTIFY idleTimeChanged)
Q_PROPERTY(int hibernateTime READ hibernateTime WRITE setHibernateTime NOTIFY hibernateTimeChanged)
public:
explicit PowerManager(QObject *parent = nullptr);
@ -34,12 +36,22 @@ public:
int mode() const;
void setMode(int mode);
int idleTime();
void setIdleTime(int idleTime);
int hibernateTime();
void setHibernateTime(int timeout);
signals:
void modeChanged();
void idleTimeChanged();
void hibernateTimeChanged();
private:
QDBusInterface m_iface;
int m_mode;
int m_idleTime;
int m_hibernateTime;
};
#endif // POWERMANAGER_H

@ -38,6 +38,23 @@ ItemPage {
id: battery
}
function timeoutToIndex(timeout) {
switch (timeout) {
case 2 * 60:
return 0
case 5 * 60:
return 1
case 10 * 60:
return 2
case 15 * 60:
return 3
case 30 * 60:
return 4
case -1:
return 5
}
}
Scrollable {
anchors.fill: parent
contentHeight: layout.implicitHeight
@ -90,11 +107,6 @@ ItemPage {
RoundedItem {
Layout.topMargin: FishUI.Units.largeSpacing
Label {
text: qsTr("Plugged In")
color: FishUI.Theme.disabledTextColor
}
GridLayout {
columns: 2
@ -112,40 +124,37 @@ ItemPage {
ListElement { text: qsTr("30 Minutes") }
ListElement { text: qsTr("Never") }
}
}
Label {
text: qsTr("Hibernate")
Layout.fillWidth: true
}
Component.onCompleted: {
currentIndex = timeoutToIndex(power.idleTime)
}
ComboBox {
model: ListModel {
ListElement { text: qsTr("2 Minutes") }
ListElement { text: qsTr("5 Minutes") }
ListElement { text: qsTr("10 Minutes") }
ListElement { text: qsTr("15 Minutes") }
ListElement { text: qsTr("30 Minutes") }
ListElement { text: qsTr("Never") }
onActivated: {
switch (currentIndex) {
case 0:
power.idleTime = 2 * 60
break
case 1:
power.idleTime = 5 * 60
break
case 2:
power.idleTime = 10 * 60
break
case 3:
power.idleTime = 15 * 60
break
case 4:
power.idleTime = 30 * 60
break
case 5:
power.idleTime = -1
break
}
}
}
}
}
RoundedItem {
visible: battery.available
Layout.topMargin: FishUI.Units.largeSpacing
Label {
text: qsTr("On Battery")
color: FishUI.Theme.disabledTextColor
}
GridLayout {
columns: 2
Label {
text: qsTr("Turn off screen")
text: qsTr("Hibernate")
Layout.fillWidth: true
}
@ -158,21 +167,32 @@ ItemPage {
ListElement { text: qsTr("30 Minutes") }
ListElement { text: qsTr("Never") }
}
}
Label {
text: qsTr("Hibernate")
Layout.fillWidth: true
}
Component.onCompleted: {
currentIndex = timeoutToIndex(power.hibernateTime)
}
ComboBox {
model: ListModel {
ListElement { text: qsTr("2 Minutes") }
ListElement { text: qsTr("5 Minutes") }
ListElement { text: qsTr("10 Minutes") }
ListElement { text: qsTr("15 Minutes") }
ListElement { text: qsTr("30 Minutes") }
ListElement { text: qsTr("Never") }
onActivated: {
switch (currentIndex) {
case 0:
power.hibernateTime = 2 * 60
break
case 1:
power.hibernateTime = 5 * 60
break
case 2:
power.hibernateTime = 10 * 60
break
case 3:
power.hibernateTime = 15 * 60
break
case 4:
power.hibernateTime = 30 * 60
break
case 5:
power.hibernateTime = -1
break
}
}
}
}

Loading…
Cancel
Save