Browse Source

thermostat: settings: don't use another QSettings instance

master
Richard Genoud 4 years ago
parent
commit
f076cdb88f
2 changed files with 16 additions and 16 deletions
  1. +1
    -1
      soft/thermostat/inc/settings.h
  2. +15
    -15
      soft/thermostat/src/settings.cpp

+ 1
- 1
soft/thermostat/inc/settings.h View File

@ -41,7 +41,7 @@ public:
struct Brocker m_broker;
private:
Settings(void);
explicit Settings(QObject *parent = Q_NULLPTR);
~Settings(void);
static Settings *_singleton;


+ 15
- 15
soft/thermostat/src/settings.cpp View File

@ -7,42 +7,42 @@
*/
#include <QTranslator>
#include <QSettings>
#include <QString>
#include "settings.h"
Settings *Settings::_singleton = NULL;
Settings::Settings(void)
Settings::Settings(QObject *parent) : QSettings(parent)
{
QSettings s;
struct Room room;
struct Heater heater;
int nb_rooms;
nb_rooms = s.beginReadArray("rooms");
nb_rooms = this->beginReadArray("rooms");
if (nb_rooms > MAX_NB_ZONES) {
// TODO;
nb_rooms = MAX_NB_ZONES;
}
for (int i = 0; i < nb_rooms; ++i) {
s.setArrayIndex(i);
room.name = s.value("name", "").toString();
room.sensor_topic = s.value("sensor_topic", "").toString();
room.availability_topic = s.value("availability_topic", "").toString();
int size = s.beginReadArray("heaters");
this->setArrayIndex(i);
room.name = this->value("name", "").toString();
room.sensor_topic = this->value("sensor_topic", "").toString();
room.availability_topic = this->value("availability_topic", "").toString();
int size = this->beginReadArray("heaters");
for (int j = 0; j < size; ++j) {
s.setArrayIndex(j);
heater.ctrl_topic = s.value("control_topic", "").toString();
this->setArrayIndex(j);
heater.ctrl_topic = this->value("control_topic", "").toString();
room.heaters << heater;
}
s.endArray();
this->endArray();
m_rooms << room;
}
s.endArray();
m_broker.address = s.value("broker/address", "localhost").toString();
m_broker.port = s.value("broker/port", 1883).toInt();
this->endArray();
m_broker.address = this->value("broker/address", "localhost").toString();
m_broker.port = this->value("broker/port", 1883).toInt();
}
int Settings::nbZones(void)
@ -57,7 +57,7 @@ Settings::~Settings(void)
Settings *Settings::getInstance(void)
{
if (!_singleton) {
_singleton = new Settings;
_singleton = new Settings();
}
return _singleton;


Loading…
Cancel
Save