Move sliders to Settings page, add alert interval setting
This commit is contained in:
parent
1548b17916
commit
c7ba509bc7
3 changed files with 97 additions and 0 deletions
80
qml/pages/SettingsPage.qml
Normal file
80
qml/pages/SettingsPage.qml
Normal file
|
@ -0,0 +1,80 @@
|
||||||
|
/**
|
||||||
|
* Battery Buddy, a Sailfish application to prolong battery lifetime
|
||||||
|
*
|
||||||
|
* Copyright (C) 2019 Matti Viljanen
|
||||||
|
*
|
||||||
|
* Battery Buddy is free software: you can redistribute it and/or modify it under the terms of the
|
||||||
|
* GNU General Public License as published by the Free Software Foundation, either version 3 of the
|
||||||
|
* License, or (at your option) any later version.
|
||||||
|
*
|
||||||
|
* Battery Buddy is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY;
|
||||||
|
* without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
|
||||||
|
*
|
||||||
|
* See the GNU General Public License for more details. You should have received a copy of the GNU
|
||||||
|
* General Public License along with CarBudget. If not, see <http://www.gnu.org/licenses/>.
|
||||||
|
*
|
||||||
|
* Author: Matti Viljanen
|
||||||
|
*/
|
||||||
|
import QtQuick 2.0
|
||||||
|
import Sailfish.Silica 1.0
|
||||||
|
|
||||||
|
Page {
|
||||||
|
id: settingsPage
|
||||||
|
anchors.fill: parent
|
||||||
|
|
||||||
|
PageHeader {
|
||||||
|
id: header
|
||||||
|
title: qsTr("Settings")
|
||||||
|
}
|
||||||
|
|
||||||
|
Column {
|
||||||
|
anchors.top: header.bottom
|
||||||
|
width: parent.width
|
||||||
|
spacing: Theme.paddingMedium
|
||||||
|
|
||||||
|
Label {
|
||||||
|
x: Theme.paddingLarge
|
||||||
|
text: qsTr("Alert settings")
|
||||||
|
color: Theme.highlightColor
|
||||||
|
}
|
||||||
|
Label {
|
||||||
|
x: Theme.paddingLarge*2
|
||||||
|
width: parent.width - x*2;
|
||||||
|
wrapMode: Text.Wrap
|
||||||
|
text: qsTr("Set the maximum and minimum target charge levels.")
|
||||||
|
color: Theme.primaryColor
|
||||||
|
font.pixelSize: Theme.fontSizeSmall
|
||||||
|
}
|
||||||
|
Slider {
|
||||||
|
width: parent.width
|
||||||
|
label: qsTr("Charging limit")
|
||||||
|
minimumValue: 60
|
||||||
|
maximumValue: 99
|
||||||
|
stepSize: 1
|
||||||
|
value: settings.upperLimit
|
||||||
|
valueText: value + "%"
|
||||||
|
onValueChanged: settings.upperLimit = value
|
||||||
|
}
|
||||||
|
Slider {
|
||||||
|
width: parent.width
|
||||||
|
label: qsTr("Discharging limit")
|
||||||
|
minimumValue: 10
|
||||||
|
maximumValue: 40
|
||||||
|
stepSize: 1
|
||||||
|
value: settings.lowerLimit
|
||||||
|
valueText: value + "%"
|
||||||
|
onValueChanged: settings.lowerLimit = value
|
||||||
|
}
|
||||||
|
Slider {
|
||||||
|
width: parent.width
|
||||||
|
label: qsTr("Alert interval")
|
||||||
|
minimumValue: 60
|
||||||
|
maximumValue: 600
|
||||||
|
stepSize: 10
|
||||||
|
value: settings.interval
|
||||||
|
valueText: Math.floor(value / 60) + (value % 60 < 10 ? ":0" + value % 60 : ":" + value % 60)
|
||||||
|
onValueChanged: settings.interval = value
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
|
@ -34,18 +34,28 @@ Settings::Settings(QObject *parent) : QObject(parent)
|
||||||
emit upperLimitChanged();
|
emit upperLimitChanged();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
if(mySettings.contains("interval")) {
|
||||||
|
tempValue = mySettings.value("interval").toInt();
|
||||||
|
if(tempValue >= 60 && tempValue <= 600) {
|
||||||
|
interval = tempValue;
|
||||||
|
emit intervalChanged();
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
Settings::~Settings()
|
Settings::~Settings()
|
||||||
{
|
{
|
||||||
mySettings.setValue("lowerLimit", QByteArray::number(lowerLimit));
|
mySettings.setValue("lowerLimit", QByteArray::number(lowerLimit));
|
||||||
mySettings.setValue("upperLimit", QByteArray::number(upperLimit));
|
mySettings.setValue("upperLimit", QByteArray::number(upperLimit));
|
||||||
|
mySettings.setValue("interval", QByteArray::number(interval));
|
||||||
}
|
}
|
||||||
|
|
||||||
int Settings::getLowerLimit() { return lowerLimit; }
|
int Settings::getLowerLimit() { return lowerLimit; }
|
||||||
|
|
||||||
int Settings::getUpperLimit() { return upperLimit; }
|
int Settings::getUpperLimit() { return upperLimit; }
|
||||||
|
|
||||||
|
int Settings::getInterval() { return interval; }
|
||||||
|
|
||||||
QString Settings::getLowAlert() { return lowAlertFile; }
|
QString Settings::getLowAlert() { return lowAlertFile; }
|
||||||
|
|
||||||
QString Settings::getHighAlert() { return highAlertFile; }
|
QString Settings::getHighAlert() { return highAlertFile; }
|
||||||
|
@ -53,3 +63,5 @@ QString Settings::getHighAlert() { return highAlertFile; }
|
||||||
void Settings::setLowerLimit(int newLimit) { lowerLimit = newLimit; }
|
void Settings::setLowerLimit(int newLimit) { lowerLimit = newLimit; }
|
||||||
|
|
||||||
void Settings::setUpperLimit(int newLimit) { upperLimit = newLimit; }
|
void Settings::setUpperLimit(int newLimit) { upperLimit = newLimit; }
|
||||||
|
|
||||||
|
void Settings::setInterval(int newInterval) { interval = newInterval; }
|
||||||
|
|
|
@ -26,6 +26,7 @@ class Settings : public QObject
|
||||||
Q_OBJECT
|
Q_OBJECT
|
||||||
Q_PROPERTY(int lowerLimit READ getLowerLimit WRITE setLowerLimit NOTIFY lowerLimitChanged)
|
Q_PROPERTY(int lowerLimit READ getLowerLimit WRITE setLowerLimit NOTIFY lowerLimitChanged)
|
||||||
Q_PROPERTY(int upperLimit READ getUpperLimit WRITE setUpperLimit NOTIFY upperLimitChanged)
|
Q_PROPERTY(int upperLimit READ getUpperLimit WRITE setUpperLimit NOTIFY upperLimitChanged)
|
||||||
|
Q_PROPERTY(int interval READ getInterval WRITE setInterval NOTIFY intervalChanged)
|
||||||
Q_PROPERTY(QString lowAlertFile READ getLowAlert NOTIFY lowAlertChanged)
|
Q_PROPERTY(QString lowAlertFile READ getLowAlert NOTIFY lowAlertChanged)
|
||||||
Q_PROPERTY(QString highAlertFile READ getHighAlert NOTIFY highAlertChanged)
|
Q_PROPERTY(QString highAlertFile READ getHighAlert NOTIFY highAlertChanged)
|
||||||
|
|
||||||
|
@ -36,10 +37,12 @@ public:
|
||||||
// QML-exposed stuff
|
// QML-exposed stuff
|
||||||
int getLowerLimit();
|
int getLowerLimit();
|
||||||
int getUpperLimit();
|
int getUpperLimit();
|
||||||
|
int getInterval();
|
||||||
QString getLowAlert();
|
QString getLowAlert();
|
||||||
QString getHighAlert();
|
QString getHighAlert();
|
||||||
void setLowerLimit(int newLimit);
|
void setLowerLimit(int newLimit);
|
||||||
void setUpperLimit(int newLimit);
|
void setUpperLimit(int newLimit);
|
||||||
|
void setInterval(int newInterval);
|
||||||
|
|
||||||
private:
|
private:
|
||||||
QSettings mySettings;
|
QSettings mySettings;
|
||||||
|
@ -47,12 +50,14 @@ private:
|
||||||
// Default values
|
// Default values
|
||||||
int lowerLimit = 25;
|
int lowerLimit = 25;
|
||||||
int upperLimit = 75;
|
int upperLimit = 75;
|
||||||
|
int interval = 60;
|
||||||
QString lowAlertFile = "/usr/share/sounds/jolla-ambient/stereo/general_warning.wav";
|
QString lowAlertFile = "/usr/share/sounds/jolla-ambient/stereo/general_warning.wav";
|
||||||
QString highAlertFile = "/usr/share/sounds/jolla-ambient/stereo/positive_confirmation.wav";
|
QString highAlertFile = "/usr/share/sounds/jolla-ambient/stereo/positive_confirmation.wav";
|
||||||
|
|
||||||
signals:
|
signals:
|
||||||
int lowerLimitChanged();
|
int lowerLimitChanged();
|
||||||
int upperLimitChanged();
|
int upperLimitChanged();
|
||||||
|
int intervalChanged();
|
||||||
QString lowAlertChanged();
|
QString lowAlertChanged();
|
||||||
QString highAlertChanged();
|
QString highAlertChanged();
|
||||||
};
|
};
|
||||||
|
|
Loading…
Reference in a new issue