Added system item support, support for RGBControlers with multiple item backends, and item settings widgets

This commit is contained in:
Carl Klemm 2020-05-05 22:29:43 +02:00
parent a761eb4317
commit 5fb9ca7cc0
56 changed files with 635 additions and 210 deletions

View file

@ -1,7 +1,7 @@
#include "alarmwidget.h"
#include "ui_alarmwidget.h"
AlarmWidget::AlarmWidget(AlarmTime* alarm, QWidget *parent) :
AlarmWidget::AlarmWidget(std::shared_ptr<AlarmTime> alarm, QWidget *parent) :
QWidget(parent),
alarm_(alarm),
ui(new Ui::AlarmWidget)
@ -35,7 +35,7 @@ AlarmWidget::AlarmWidget(AlarmTime* alarm, QWidget *parent) :
else if(alarm_->getRepeat() == AlarmTime::REPEAT_MONTHLY)ui->radioButton_3->setChecked(true);
else if(alarm_->getRepeat() == AlarmTime::REPEAT_YEARLY) ui->radioButton_4->setChecked(true);
connect(ui->dateTimeEdit, &QDateTimeEdit::dateTimeChanged, alarm, &AlarmTime::changeTime);
connect(ui->dateTimeEdit, &QDateTimeEdit::dateTimeChanged, alarm.get(), &AlarmTime::changeTime);
}
AlarmWidget::~AlarmWidget()

View file

@ -2,6 +2,7 @@
#define ALARMWIDGET_H
#include <QWidget>
#include <memory>
#include "../../actors/alarmtime.h"
namespace Ui {
@ -12,10 +13,10 @@ class AlarmWidget : public QWidget
{
Q_OBJECT
AlarmTime* alarm_;
std::shared_ptr<AlarmTime> alarm_;
public:
explicit AlarmWidget(AlarmTime* alarm, QWidget *parent = nullptr);
explicit AlarmWidget(std::shared_ptr<AlarmTime> alarm, QWidget *parent = nullptr);
~AlarmWidget();
private slots:

View file

@ -2,7 +2,7 @@
#include "ui_factoractorwidget.h"
#include "../actorsettingsdialog.h"
FactorActorWidget::FactorActorWidget(MultiFactorActor* actor, QWidget *parent) :
FactorActorWidget::FactorActorWidget(std::shared_ptr<MultiFactorActor> actor, QWidget *parent) :
QWidget(parent),
actor_(actor),
ui(new Ui::FactorActorWidget)
@ -24,36 +24,36 @@ FactorActorWidget::~FactorActorWidget()
void FactorActorWidget::createFactorActor()
{
ActorSettingsDialog* dialog = nullptr;
Actor* actor = nullptr;
std::shared_ptr<Actor> actor = nullptr;
if(ui->comboBox->currentText() == "Alarm")
{
AlarmTime* alarm = new AlarmTime;
std::shared_ptr<AlarmTime> alarm = std::shared_ptr<AlarmTime>(new AlarmTime);
actor = alarm;
dialog = new ActorSettingsDialog(alarm, this);
}
else if(ui->comboBox->currentText() == "Sensor")
{
SensorActor* sensorActor = new SensorActor();
std::shared_ptr<SensorActor> sensorActor = std::shared_ptr<SensorActor>(new SensorActor());
actor = sensorActor;
dialog = new ActorSettingsDialog(sensorActor, this);
}
else if(ui->comboBox->currentText() == "Timer" )
{
TimerActor* timerActor = new TimerActor();
std::shared_ptr<TimerActor> timerActor = std::shared_ptr<TimerActor>(new TimerActor());
actor = timerActor;
dialog = new ActorSettingsDialog(timerActor, this);
}
else if(ui->comboBox->currentText() == "Regulator")
{
Regulator* regulator = new Regulator();
std::shared_ptr<Regulator> regulator = std::shared_ptr<Regulator>(new Regulator());
actor = regulator;
dialog = new ActorSettingsDialog(regulator, this);
}
else if(ui->comboBox->currentText() == "Polynomal")
{
PolynomalActor* polynomalActor = new PolynomalActor();
std::shared_ptr<PolynomalActor> polynomalActor = std::shared_ptr<PolynomalActor>(new PolynomalActor());
actor = polynomalActor;
dialog = new ActorSettingsDialog(polynomalActor, this);
}
@ -68,7 +68,6 @@ void FactorActorWidget::createFactorActor()
actor_->setFactorActor(actor);
ui->label_FactorActor->setText(actor->getName());
}
else delete actor;
delete dialog;
}
}

View file

@ -12,10 +12,10 @@ class FactorActorWidget : public QWidget
{
Q_OBJECT
MultiFactorActor* actor_;
std::shared_ptr<MultiFactorActor> actor_;
public:
explicit FactorActorWidget(MultiFactorActor* actor, QWidget *parent = nullptr);
explicit FactorActorWidget(std::shared_ptr<MultiFactorActor> actor, QWidget *parent = nullptr);
~FactorActorWidget();
private slots:

View file

@ -1,7 +1,7 @@
#include "polynomalactorwidget.h"
#include "ui_polynomalactorwidget.h"
PolynomalActorWidget::PolynomalActorWidget(PolynomalActor* actor, SensorStore* sensors, QWidget *parent):
PolynomalActorWidget::PolynomalActorWidget(std::shared_ptr<PolynomalActor> actor, SensorStore* sensors, QWidget *parent):
QWidget(parent),
sensors_(sensors),
actor_(actor),

View file

@ -12,10 +12,10 @@ class PolynomalActorWidget : public QWidget
{
Q_OBJECT
SensorStore* sensors_;
PolynomalActor* actor_;
std::shared_ptr<PolynomalActor> actor_;
public:
explicit PolynomalActorWidget(PolynomalActor* regulator, SensorStore* sensors = nullptr, QWidget *parent = nullptr);
explicit PolynomalActorWidget(std::shared_ptr<PolynomalActor> regulator, SensorStore* sensors = nullptr, QWidget *parent = nullptr);
~PolynomalActorWidget();
private slots:

View file

@ -9,7 +9,7 @@ RegulatorWdiget::~RegulatorWdiget()
RegulatorWdiget::RegulatorWdiget(Regulator* regulator, SensorStore* sensors, QWidget *parent) :
RegulatorWdiget::RegulatorWdiget(std::shared_ptr<Regulator> regulator, SensorStore* sensors, QWidget *parent) :
QWidget(parent),
regulator_(regulator),
sensors_(sensors),

View file

@ -12,11 +12,11 @@ class RegulatorWdiget : public QWidget
{
Q_OBJECT
Regulator* regulator_;
std::shared_ptr<Regulator> regulator_;
SensorStore* sensors_;
public:
explicit RegulatorWdiget(Regulator* regulator, SensorStore* sensors = nullptr, QWidget *parent = nullptr);
explicit RegulatorWdiget(std::shared_ptr<Regulator> regulator, SensorStore* sensors = nullptr, QWidget *parent = nullptr);
~RegulatorWdiget();
private slots:

View file

@ -3,7 +3,7 @@
#include <QDebug>
SensorActorWidget::SensorActorWidget(SensorActor* sensorActor, SensorStore* sensors, QWidget *parent) :
SensorActorWidget::SensorActorWidget(std::shared_ptr<SensorActor> sensorActor, SensorStore* sensors, QWidget *parent) :
QWidget(parent),
sensorActor_(sensorActor),
sensors_(sensors),

View file

@ -13,11 +13,11 @@ class SensorActorWidget : public QWidget
{
Q_OBJECT
SensorActor* sensorActor_;
std::shared_ptr<SensorActor> sensorActor_;
SensorStore* sensors_;
public:
explicit SensorActorWidget(SensorActor* sensorActor, SensorStore* sensors = nullptr, QWidget *parent = nullptr);
explicit SensorActorWidget(std::shared_ptr<SensorActor> sensorActor, SensorStore* sensors = nullptr, QWidget *parent = nullptr);
~SensorActorWidget();
private slots:

View file

@ -3,7 +3,7 @@
#include <QSpinBox>
TimerActorWidget::TimerActorWidget(TimerActor* actor, QWidget *parent) :
TimerActorWidget::TimerActorWidget(std::shared_ptr<TimerActor> actor, QWidget *parent) :
QWidget(parent),
ui(new Ui::TimerActorWidget)
{
@ -11,7 +11,7 @@ TimerActorWidget::TimerActorWidget(TimerActor* actor, QWidget *parent) :
ui->spinBox->setValue(actor->getTimeout());
connect(ui->spinBox, SIGNAL(valueChanged(int)), actor, SLOT(setTimeout(int)));
connect(ui->spinBox, SIGNAL(valueChanged(int)), actor.get(), SLOT(setTimeout(int)));
}
TimerActorWidget::~TimerActorWidget()

View file

@ -13,7 +13,7 @@ class TimerActorWidget : public QWidget
Q_OBJECT
public:
explicit TimerActorWidget(TimerActor* actor, QWidget *parent = nullptr);
explicit TimerActorWidget(std::shared_ptr<TimerActor> actor, QWidget *parent = nullptr);
~TimerActorWidget();
private: