Use QSettings instead of QSqlDatabase, move defaults to headers.
This is what over thinking looks like. QSettings need *absolutely no configuration*, whereas QSqlDatabase couldn't even get the directory created, and for some reason (simple write permissions, I think) QDir couldn't even create the data folder. Gah!
This commit is contained in:
parent
2a9db678b0
commit
5eea9e9732
4 changed files with 29 additions and 67 deletions
|
@ -22,14 +22,11 @@ Battery::Battery(QObject* parent) : QObject(parent)
|
||||||
chargeFile = new QFile("/run/state/namespaces/Battery/ChargePercentage"); // Number, meaning percentage, e.g. 42
|
chargeFile = new QFile("/run/state/namespaces/Battery/ChargePercentage"); // Number, meaning percentage, e.g. 42
|
||||||
chargingFile = new QFile("/run/state/namespaces/Battery/IsCharging"); // Number, 0 or 1
|
chargingFile = new QFile("/run/state/namespaces/Battery/IsCharging"); // Number, 0 or 1
|
||||||
|
|
||||||
// Default values...
|
// TODO
|
||||||
currentCharge = 100;
|
// What if the files can't be opened?
|
||||||
isCharging = true;
|
// What if the device doesn't have a battery?
|
||||||
|
|
||||||
nextCharge = currentCharge;
|
updateData();
|
||||||
nextCharging = isCharging;
|
|
||||||
|
|
||||||
this->updateData();
|
|
||||||
}
|
}
|
||||||
|
|
||||||
Battery::~Battery() { }
|
Battery::~Battery() { }
|
||||||
|
|
|
@ -42,11 +42,12 @@ private:
|
||||||
QFile* chargeFile;
|
QFile* chargeFile;
|
||||||
QFile* chargingFile;
|
QFile* chargingFile;
|
||||||
|
|
||||||
int currentCharge;
|
// Default values
|
||||||
bool isCharging;
|
int currentCharge = 100;
|
||||||
|
bool isCharging = true;
|
||||||
|
|
||||||
int nextCharge;
|
int nextCharge = 100;
|
||||||
bool nextCharging;
|
bool nextCharging = true;
|
||||||
|
|
||||||
signals:
|
signals:
|
||||||
int chargeChanged();
|
int chargeChanged();
|
||||||
|
|
|
@ -17,66 +17,31 @@
|
||||||
*/
|
*/
|
||||||
#include "settings.h"
|
#include "settings.h"
|
||||||
|
|
||||||
Settings::Settings(QObject *parent) : QObject(parent)
|
Settings::Settings(QObject *parent) : QObject(parent) { load(); }
|
||||||
{
|
|
||||||
// Defaults
|
|
||||||
lowerLimit = 25;
|
|
||||||
upperLimit = 75;
|
|
||||||
|
|
||||||
// Just to be sure...
|
|
||||||
QDir datadir = QStandardPaths::writableLocation(QStandardPaths::DataLocation);
|
|
||||||
if(!datadir.exists())
|
|
||||||
datadir.mkdir(QStandardPaths::writableLocation(QStandardPaths::DataLocation));
|
|
||||||
|
|
||||||
// Use Sailfish-provided sounds
|
|
||||||
lowAlertFile = "/usr/share/sounds/jolla-ambient/stereo/general_warning.wav";
|
|
||||||
highAlertFile = "/usr/share/sounds/jolla-ambient/stereo/positive_confirmation.wav";
|
|
||||||
|
|
||||||
Settings::~Settings() { save(); }
|
Settings::~Settings() { save(); }
|
||||||
|
|
||||||
void Settings::load()
|
void Settings::load()
|
||||||
{
|
{
|
||||||
QDir::setCurrent(QStandardPaths::writableLocation(QStandardPaths::DataLocation));
|
QSettings mySettings;
|
||||||
QFile file;
|
int tempValue;
|
||||||
|
if(mySettings.contains("lowerLimit")) {
|
||||||
file.setFileName("lowerLimit");
|
tempValue = mySettings.value("lowerLimit").toInt();
|
||||||
if(file.exists() && file.open(QIODevice::ReadOnly)) {
|
if(tempValue <= 10 && tempValue >= 99)
|
||||||
int nextLimit = file.readAll().toInt();
|
lowerLimit = tempValue;
|
||||||
if(nextLimit >= 10 && nextLimit <= 50) {
|
|
||||||
lowerLimit = nextLimit;
|
|
||||||
emit lowerLimitChanged();
|
|
||||||
}
|
|
||||||
file.close();
|
|
||||||
}
|
}
|
||||||
file.setFileName("upperLimit");
|
if(mySettings.contains("upperLimit")) {
|
||||||
if(file.exists() && file.open(QIODevice::ReadOnly)) {
|
tempValue = mySettings.value("upperLimit").toInt();
|
||||||
int nextLimit = file.readAll().toInt();
|
if(tempValue <= 60 && tempValue >= 99)
|
||||||
if(nextLimit >= 60 && nextLimit <= 99) {
|
upperLimit = tempValue;
|
||||||
upperLimit = nextLimit;
|
|
||||||
emit upperLimitChanged();
|
|
||||||
}
|
|
||||||
file.close();
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
void Settings::save()
|
void Settings::save()
|
||||||
{
|
{
|
||||||
QDir::setCurrent(QStandardPaths::writableLocation(QStandardPaths::DataLocation));
|
QSettings mySettings;
|
||||||
QFile file;
|
mySettings.setValue("lowerLimit", QByteArray::number(lowerLimit));
|
||||||
|
mySettings.setValue("upperLimit", QByteArray::number(upperLimit));
|
||||||
file.setFileName("lowerLimit");
|
|
||||||
if(file.open(QIODevice::WriteOnly)) {
|
|
||||||
if(file.write(QString("%1").arg(lowerLimit).toUtf8())) {
|
|
||||||
}
|
|
||||||
file.close();
|
|
||||||
}
|
|
||||||
|
|
||||||
file.setFileName("upperLimit");
|
|
||||||
if(file.open(QIODevice::WriteOnly)) {
|
|
||||||
if(file.write(QString("%1").arg(upperLimit).toUtf8())) {
|
|
||||||
}
|
|
||||||
file.close();
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
int Settings::getLowerLimit() { return lowerLimit; }
|
int Settings::getLowerLimit() { return lowerLimit; }
|
||||||
|
|
|
@ -19,9 +19,7 @@
|
||||||
#define SETTINGS_H
|
#define SETTINGS_H
|
||||||
|
|
||||||
#include <QObject>
|
#include <QObject>
|
||||||
#include <QFile>
|
#include <QSettings>
|
||||||
#include <QDir>
|
|
||||||
#include <QStandardPaths>
|
|
||||||
|
|
||||||
class Settings : public QObject
|
class Settings : public QObject
|
||||||
{
|
{
|
||||||
|
@ -44,10 +42,11 @@ public:
|
||||||
void setUpperLimit(int newLimit);
|
void setUpperLimit(int newLimit);
|
||||||
|
|
||||||
private:
|
private:
|
||||||
int lowerLimit;
|
// Default values
|
||||||
int upperLimit;
|
int lowerLimit = 25;
|
||||||
QString lowAlertFile;
|
int upperLimit = 75;
|
||||||
QString highAlertFile;
|
QString lowAlertFile = "/usr/share/sounds/jolla-ambient/stereo/general_warning.wav";
|
||||||
|
QString highAlertFile = "/usr/share/sounds/jolla-ambient/stereo/positive_confirmation.wav";
|
||||||
|
|
||||||
void load();
|
void load();
|
||||||
void save();
|
void save();
|
||||||
|
|
Loading…
Reference in a new issue