Added system item support, support for RGBControlers with multiple item backends, and item settings widgets
This commit is contained in:
@ -4,7 +4,7 @@
|
||||
#include <QDebug>
|
||||
#include <QSpinBox>
|
||||
|
||||
ActorSettingsDialog::ActorSettingsDialog(AlarmTime* alarm, QWidget *parent):
|
||||
ActorSettingsDialog::ActorSettingsDialog(std::shared_ptr<AlarmTime> alarm, QWidget *parent):
|
||||
QDialog(parent),
|
||||
actor_(alarm),
|
||||
ui(new Ui::ActorSettingsDialog)
|
||||
@ -15,7 +15,7 @@ ActorSettingsDialog::ActorSettingsDialog(AlarmTime* alarm, QWidget *parent):
|
||||
ui->vertlayout->addWidget(widget);
|
||||
}
|
||||
|
||||
ActorSettingsDialog::ActorSettingsDialog(SensorActor* actor, QWidget *parent) :
|
||||
ActorSettingsDialog::ActorSettingsDialog(std::shared_ptr<SensorActor> actor, QWidget *parent) :
|
||||
QDialog(parent),
|
||||
actor_(actor),
|
||||
ui(new Ui::ActorSettingsDialog)
|
||||
@ -26,7 +26,7 @@ ui(new Ui::ActorSettingsDialog)
|
||||
ui->vertlayout->addWidget(widget);
|
||||
}
|
||||
|
||||
ActorSettingsDialog::ActorSettingsDialog(Regulator* actor, QWidget *parent) :
|
||||
ActorSettingsDialog::ActorSettingsDialog(std::shared_ptr<Regulator> actor, QWidget *parent) :
|
||||
QDialog(parent),
|
||||
actor_(actor),
|
||||
ui(new Ui::ActorSettingsDialog)
|
||||
@ -37,7 +37,7 @@ ActorSettingsDialog::ActorSettingsDialog(Regulator* actor, QWidget *parent) :
|
||||
ui->vertlayout->addWidget(widget);
|
||||
}
|
||||
|
||||
ActorSettingsDialog::ActorSettingsDialog(TimerActor* actor, QWidget *parent) :
|
||||
ActorSettingsDialog::ActorSettingsDialog(std::shared_ptr<TimerActor> actor, QWidget *parent) :
|
||||
QDialog(parent),
|
||||
actor_(actor),
|
||||
ui(new Ui::ActorSettingsDialog)
|
||||
@ -48,7 +48,7 @@ ui(new Ui::ActorSettingsDialog)
|
||||
ui->vertlayout->addWidget(widget);
|
||||
}
|
||||
|
||||
ActorSettingsDialog::ActorSettingsDialog(PolynomalActor* actor, QWidget *parent) :
|
||||
ActorSettingsDialog::ActorSettingsDialog(std::shared_ptr<PolynomalActor> actor, QWidget *parent) :
|
||||
QDialog(parent),
|
||||
actor_(actor),
|
||||
ui(new Ui::ActorSettingsDialog)
|
||||
@ -59,7 +59,7 @@ ui(new Ui::ActorSettingsDialog)
|
||||
ui->vertlayout->addWidget(widget);
|
||||
}
|
||||
|
||||
ActorSettingsDialog::ActorSettingsDialog(MultiFactorActor* actor, QWidget *parent) :
|
||||
ActorSettingsDialog::ActorSettingsDialog(std::shared_ptr<MultiFactorActor> actor, QWidget *parent) :
|
||||
QDialog(parent),
|
||||
actor_(actor),
|
||||
ui(new Ui::ActorSettingsDialog)
|
||||
@ -69,7 +69,7 @@ ui(new Ui::ActorSettingsDialog)
|
||||
ui->vertlayout->addWidget(widget);
|
||||
}
|
||||
|
||||
ActorSettingsDialog::ActorSettingsDialog(Actor* actor, QWidget *parent) :
|
||||
ActorSettingsDialog::ActorSettingsDialog(std::shared_ptr<Actor> actor, QWidget *parent) :
|
||||
QDialog(parent),
|
||||
actor_(actor),
|
||||
ui(new Ui::ActorSettingsDialog)
|
||||
|
@ -19,19 +19,19 @@ class ActorSettingsDialog : public QDialog
|
||||
Q_OBJECT
|
||||
|
||||
private:
|
||||
Actor* actor_;
|
||||
std::shared_ptr<Actor> actor_;
|
||||
QWidget* widget;
|
||||
|
||||
void init();
|
||||
|
||||
public:
|
||||
ActorSettingsDialog(AlarmTime* actor, QWidget *parent = nullptr);
|
||||
ActorSettingsDialog(SensorActor* actor, QWidget *parent = nullptr);
|
||||
ActorSettingsDialog(Regulator* actor, QWidget *parent = nullptr);
|
||||
ActorSettingsDialog(TimerActor* actor, QWidget *parent = nullptr);
|
||||
ActorSettingsDialog(PolynomalActor* actor, QWidget *parent = nullptr);
|
||||
ActorSettingsDialog(MultiFactorActor* actor, QWidget *parent = nullptr);
|
||||
ActorSettingsDialog(Actor* actor, QWidget *parent);
|
||||
ActorSettingsDialog(std::shared_ptr<AlarmTime> actor, QWidget *parent = nullptr);
|
||||
ActorSettingsDialog(std::shared_ptr<SensorActor> actor, QWidget *parent = nullptr);
|
||||
ActorSettingsDialog(std::shared_ptr<Regulator> actor, QWidget *parent = nullptr);
|
||||
ActorSettingsDialog(std::shared_ptr<TimerActor> actor, QWidget *parent = nullptr);
|
||||
ActorSettingsDialog(std::shared_ptr<PolynomalActor> actor, QWidget *parent = nullptr);
|
||||
ActorSettingsDialog(std::shared_ptr<MultiFactorActor> actor, QWidget *parent = nullptr);
|
||||
ActorSettingsDialog(std::shared_ptr<Actor> actor, QWidget *parent);
|
||||
~ActorSettingsDialog();
|
||||
|
||||
void hideCancle(const bool hide);
|
||||
|
@ -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()
|
||||
|
@ -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:
|
||||
|
@ -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;
|
||||
}
|
||||
}
|
||||
|
@ -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:
|
||||
|
@ -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),
|
||||
|
@ -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:
|
||||
|
@ -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),
|
||||
|
@ -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:
|
||||
|
@ -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),
|
||||
|
@ -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:
|
||||
|
@ -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()
|
||||
|
@ -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:
|
||||
|
@ -2,6 +2,7 @@
|
||||
#include "ui_itemcreationdialog.h"
|
||||
|
||||
#include "itemsettingswidgets/messageitemsettingswidget.h"
|
||||
#include "itemsettingswidgets/systemitemsettingswidget.h"
|
||||
|
||||
ItemCreationDialog::ItemCreationDialog(QWidget *parent) :
|
||||
QDialog(parent),
|
||||
@ -31,7 +32,14 @@ void ItemCreationDialog::itemTypeChanged(const QString& type)
|
||||
std::shared_ptr<MessageItem> messageItem(new MessageItem);
|
||||
item = messageItem;
|
||||
widget = new MessageItemSettingsWidget(messageItem, this);
|
||||
ui->verticalLayout_2->addWidget(widget);
|
||||
ui->verticalLayout->addWidget(widget);
|
||||
}
|
||||
if(type == "System")
|
||||
{
|
||||
std::shared_ptr<SystemItem> systemItem(new SystemItem);
|
||||
item = systemItem;
|
||||
widget = new SystemItemSettingsWidget(systemItem, this);
|
||||
ui->verticalLayout->addWidget(widget);
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -34,6 +34,11 @@
|
||||
<string>Message</string>
|
||||
</property>
|
||||
</item>
|
||||
<item>
|
||||
<property name="text">
|
||||
<string>System</string>
|
||||
</property>
|
||||
</item>
|
||||
</widget>
|
||||
</item>
|
||||
</layout>
|
||||
|
@ -6,10 +6,14 @@
|
||||
#include "../actors/timeractor.h"
|
||||
#include "../actors/regulator.h"
|
||||
#include "../actors/factoractor.h"
|
||||
|
||||
#include "../items/messageitem.h"
|
||||
#include "../items/systemitem.h"
|
||||
#include "./itemsettingswidgets/messageitemsettingswidget.h"
|
||||
#include "./itemsettingswidgets/systemitemsettingswidget.h"
|
||||
#include "./itemsettingswidgets/relayitemsettingswidget.h"
|
||||
#include<memory>
|
||||
|
||||
ItemSettingsDialog::ItemSettingsDialog(Item* item, QWidget *parent) :
|
||||
ItemSettingsDialog::ItemSettingsDialog(std::shared_ptr<Item> item, QWidget *parent) :
|
||||
QDialog(parent),
|
||||
item_(item),
|
||||
ui(new Ui::ItemSettingsDialog)
|
||||
@ -19,23 +23,32 @@ ItemSettingsDialog::ItemSettingsDialog(Item* item, QWidget *parent) :
|
||||
setModal(false);
|
||||
|
||||
ui->label_name->setText(item_->getName());
|
||||
ui->checkBox_Override->setChecked(item_->getOverride());
|
||||
|
||||
if(Relay* relay = dynamic_cast<Relay*>(item_))
|
||||
|
||||
if(std::shared_ptr<Relay> relay = std::dynamic_pointer_cast<Relay>(item_))
|
||||
{
|
||||
ui->label_address->setText(QString::number(relay->getAddress(), 2));
|
||||
ui->label_id->setText(QString::number(relay->getId(), 10));
|
||||
itemSpecificWidget_ = new RelayItemSettingsWidget(relay);
|
||||
}
|
||||
else
|
||||
else if(std::shared_ptr<MessageItem> msgItem = std::dynamic_pointer_cast<MessageItem>(item_))
|
||||
{
|
||||
ui->label_address->hide();
|
||||
ui->label_id->hide();
|
||||
ui->label_address_lable->hide();
|
||||
ui->label_id_lable->hide();
|
||||
itemSpecificWidget_ = new MessageItemSettingsWidget(msgItem);
|
||||
}
|
||||
else if(std::shared_ptr<SystemItem> sysItem = std::dynamic_pointer_cast<SystemItem>(item_))
|
||||
{
|
||||
itemSpecificWidget_ = new SystemItemSettingsWidget(sysItem);
|
||||
}
|
||||
|
||||
if(itemSpecificWidget_)
|
||||
{
|
||||
ui->verticalLayout_2->addWidget(itemSpecificWidget_);
|
||||
}
|
||||
|
||||
connect(ui->pushButton_add, &QPushButton::clicked, this, &ItemSettingsDialog::addActor);
|
||||
connect(ui->pushButton_remove, &QPushButton::clicked, this, &ItemSettingsDialog::removeActor);
|
||||
connect(ui->pushButton_edit, &QPushButton::clicked, this, &ItemSettingsDialog::editActor);
|
||||
connect(ui->checkBox_Override, &QPushButton::clicked, this, &ItemSettingsDialog::changeOverride);
|
||||
|
||||
|
||||
ui->tableWidget->setHorizontalHeaderItem(0, new QTableWidgetItem("Actor"));
|
||||
ui->tableWidget->setHorizontalHeaderItem(1, new QTableWidgetItem("Action"));
|
||||
@ -48,9 +61,15 @@ ItemSettingsDialog::ItemSettingsDialog(Item* item, QWidget *parent) :
|
||||
|
||||
ItemSettingsDialog::~ItemSettingsDialog()
|
||||
{
|
||||
if(itemSpecificWidget_) delete itemSpecificWidget_;
|
||||
delete ui;
|
||||
}
|
||||
|
||||
void ItemSettingsDialog::changeOverride()
|
||||
{
|
||||
item_->setOverride(ui->checkBox_Override->isChecked());
|
||||
}
|
||||
|
||||
void ItemSettingsDialog::loadActorList()
|
||||
{
|
||||
//ui->listWidget->clear();
|
||||
@ -67,43 +86,43 @@ void ItemSettingsDialog::loadActorList()
|
||||
void ItemSettingsDialog::addActor()
|
||||
{
|
||||
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);
|
||||
}
|
||||
|
||||
else if(ui->comboBox->currentText() == "Multi Factor")
|
||||
{
|
||||
MultiFactorActor* polynomalActor = new MultiFactorActor();
|
||||
std::shared_ptr<MultiFactorActor> polynomalActor = std::shared_ptr<MultiFactorActor>(new MultiFactorActor);
|
||||
actor = polynomalActor;
|
||||
dialog = new ActorSettingsDialog(polynomalActor, this);
|
||||
}
|
||||
@ -118,7 +137,6 @@ void ItemSettingsDialog::addActor()
|
||||
item_->addActor(actor);
|
||||
loadActorList();
|
||||
}
|
||||
else delete actor;
|
||||
delete dialog;
|
||||
}
|
||||
|
||||
@ -137,14 +155,14 @@ void ItemSettingsDialog::editActor()
|
||||
{
|
||||
if(item_->getActors().size() > ui->tableWidget->currentRow())
|
||||
{
|
||||
Actor* actor = item_->getActors()[ui->tableWidget->currentRow()];
|
||||
std::shared_ptr<Actor> actor = item_->getActors()[ui->tableWidget->currentRow()];
|
||||
|
||||
AlarmTime* alarmTime = dynamic_cast<AlarmTime*>(actor);
|
||||
Regulator* regulator = dynamic_cast<Regulator*>(actor);
|
||||
SensorActor* sensorActor = dynamic_cast<SensorActor*>(actor);
|
||||
TimerActor* timerActor = dynamic_cast<TimerActor*>(actor);
|
||||
PolynomalActor* polynomalActor = dynamic_cast<PolynomalActor*>(actor);
|
||||
MultiFactorActor* factorActor = dynamic_cast<MultiFactorActor*>(actor);
|
||||
std::shared_ptr<AlarmTime> alarmTime = std::dynamic_pointer_cast<AlarmTime>(actor);
|
||||
std::shared_ptr<Regulator> regulator = std::dynamic_pointer_cast<Regulator>(actor);
|
||||
std::shared_ptr<SensorActor> sensorActor = std::dynamic_pointer_cast<SensorActor>(actor);
|
||||
std::shared_ptr<TimerActor> timerActor = std::dynamic_pointer_cast<TimerActor>(actor);
|
||||
std::shared_ptr<PolynomalActor> polynomalActor = std::dynamic_pointer_cast<PolynomalActor>(actor);
|
||||
std::shared_ptr<MultiFactorActor> factorActor = std::dynamic_pointer_cast<MultiFactorActor>(actor);
|
||||
|
||||
ActorSettingsDialog* dialog;
|
||||
|
||||
|
@ -3,6 +3,7 @@
|
||||
|
||||
#include <QDialog>
|
||||
#include <QSettings>
|
||||
#include <memory>
|
||||
#include "../items/relay.h"
|
||||
|
||||
namespace Ui {
|
||||
@ -12,13 +13,14 @@ class ItemSettingsDialog;
|
||||
class ItemSettingsDialog : public QDialog
|
||||
{
|
||||
Q_OBJECT
|
||||
Item* item_;
|
||||
std::shared_ptr<Item> item_;
|
||||
QWidget* itemSpecificWidget_ = nullptr;
|
||||
|
||||
private:
|
||||
void loadActorList();
|
||||
|
||||
public:
|
||||
explicit ItemSettingsDialog(Item* item, QWidget *parent = nullptr);
|
||||
explicit ItemSettingsDialog(std::shared_ptr<Item> item, QWidget *parent = nullptr);
|
||||
~ItemSettingsDialog();
|
||||
|
||||
private slots:
|
||||
@ -26,6 +28,7 @@ private slots:
|
||||
void removeActor();
|
||||
void addActor();
|
||||
void editActor();
|
||||
void changeOverride();
|
||||
|
||||
private:
|
||||
Ui::ItemSettingsDialog *ui;
|
||||
|
@ -30,23 +30,16 @@
|
||||
<number>10</number>
|
||||
</property>
|
||||
<item row="1" column="0">
|
||||
<widget class="QLabel" name="label_id_lable">
|
||||
<widget class="QLabel" name="label">
|
||||
<property name="text">
|
||||
<string>ID:</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="1" column="1">
|
||||
<widget class="QLabel" name="label_id">
|
||||
<property name="text">
|
||||
<string>TextLabel</string>
|
||||
<string>Name:</string>
|
||||
</property>
|
||||
<property name="alignment">
|
||||
<set>Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter</set>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="2" column="1">
|
||||
<item row="1" column="1">
|
||||
<widget class="QLabel" name="label_name">
|
||||
<property name="sizePolicy">
|
||||
<sizepolicy hsizetype="Preferred" vsizetype="Preferred">
|
||||
@ -65,35 +58,18 @@
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="3" column="0">
|
||||
<widget class="QLabel" name="label_address_lable">
|
||||
<property name="text">
|
||||
<string>Address</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="3" column="1">
|
||||
<widget class="QLabel" name="label_address">
|
||||
<property name="text">
|
||||
<string>TextLabel</string>
|
||||
</property>
|
||||
<property name="alignment">
|
||||
<set>Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter</set>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="2" column="0">
|
||||
<widget class="QLabel" name="label">
|
||||
<property name="text">
|
||||
<string>Name:</string>
|
||||
</property>
|
||||
<property name="alignment">
|
||||
<set>Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter</set>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
</layout>
|
||||
</item>
|
||||
<item>
|
||||
<layout class="QVBoxLayout" name="verticalLayout_2"/>
|
||||
</item>
|
||||
<item>
|
||||
<widget class="QCheckBox" name="checkBox_Override">
|
||||
<property name="text">
|
||||
<string>Override</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item>
|
||||
<widget class="QTableWidget" name="tableWidget">
|
||||
<property name="frameShape">
|
||||
|
21
src/ui/itemsettingswidgets/relayitemsettingswidget.cpp
Normal file
21
src/ui/itemsettingswidgets/relayitemsettingswidget.cpp
Normal file
@ -0,0 +1,21 @@
|
||||
#include "relayitemsettingswidget.h"
|
||||
#include "ui_relayitemsettingswidget.h"
|
||||
|
||||
|
||||
RelayItemSettingsWidget::RelayItemSettingsWidget(std::weak_ptr<Relay> relay, QWidget *parent) :
|
||||
QWidget(parent),
|
||||
ui(new Ui::RelayItemSettingsWidget)
|
||||
{
|
||||
ui->setupUi(this);
|
||||
auto relayPtr = relay.lock();
|
||||
if(relayPtr)
|
||||
{
|
||||
ui->label_ID->setText(QString::number(relayPtr->getId()));
|
||||
ui->label_Addr->setText(QString::number(relayPtr->getAddress(),2));
|
||||
}
|
||||
}
|
||||
|
||||
RelayItemSettingsWidget::~RelayItemSettingsWidget()
|
||||
{
|
||||
delete ui;
|
||||
}
|
24
src/ui/itemsettingswidgets/relayitemsettingswidget.h
Normal file
24
src/ui/itemsettingswidgets/relayitemsettingswidget.h
Normal file
@ -0,0 +1,24 @@
|
||||
#ifndef RELAYITEMSETTINGSWIDGET_H
|
||||
#define RELAYITEMSETTINGSWIDGET_H
|
||||
|
||||
#include <QWidget>
|
||||
#include <memory>
|
||||
#include "../../items/relay.h"
|
||||
|
||||
namespace Ui {
|
||||
class RelayItemSettingsWidget;
|
||||
}
|
||||
|
||||
class RelayItemSettingsWidget : public QWidget
|
||||
{
|
||||
Q_OBJECT
|
||||
|
||||
public:
|
||||
explicit RelayItemSettingsWidget(std::weak_ptr<Relay> relay, QWidget *parent = nullptr);
|
||||
~RelayItemSettingsWidget();
|
||||
|
||||
private:
|
||||
Ui::RelayItemSettingsWidget *ui;
|
||||
};
|
||||
|
||||
#endif // RELAYITEMSETTINGSWIDGET_H
|
85
src/ui/itemsettingswidgets/relayitemsettingswidget.ui
Normal file
85
src/ui/itemsettingswidgets/relayitemsettingswidget.ui
Normal file
@ -0,0 +1,85 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<ui version="4.0">
|
||||
<class>RelayItemSettingsWidget</class>
|
||||
<widget class="QWidget" name="RelayItemSettingsWidget">
|
||||
<property name="geometry">
|
||||
<rect>
|
||||
<x>0</x>
|
||||
<y>0</y>
|
||||
<width>400</width>
|
||||
<height>58</height>
|
||||
</rect>
|
||||
</property>
|
||||
<property name="sizePolicy">
|
||||
<sizepolicy hsizetype="Preferred" vsizetype="Fixed">
|
||||
<horstretch>0</horstretch>
|
||||
<verstretch>0</verstretch>
|
||||
</sizepolicy>
|
||||
</property>
|
||||
<property name="windowTitle">
|
||||
<string>Form</string>
|
||||
</property>
|
||||
<layout class="QFormLayout" name="formLayout">
|
||||
<item row="0" column="0">
|
||||
<widget class="QLabel" name="label_2">
|
||||
<property name="sizePolicy">
|
||||
<sizepolicy hsizetype="Expanding" vsizetype="Fixed">
|
||||
<horstretch>0</horstretch>
|
||||
<verstretch>0</verstretch>
|
||||
</sizepolicy>
|
||||
</property>
|
||||
<property name="text">
|
||||
<string>ID:</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="2" column="0">
|
||||
<widget class="QLabel" name="label_3">
|
||||
<property name="sizePolicy">
|
||||
<sizepolicy hsizetype="Expanding" vsizetype="Fixed">
|
||||
<horstretch>0</horstretch>
|
||||
<verstretch>0</verstretch>
|
||||
</sizepolicy>
|
||||
</property>
|
||||
<property name="text">
|
||||
<string>Address:</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="2" column="1">
|
||||
<widget class="QLabel" name="label_Addr">
|
||||
<property name="sizePolicy">
|
||||
<sizepolicy hsizetype="Expanding" vsizetype="Preferred">
|
||||
<horstretch>0</horstretch>
|
||||
<verstretch>0</verstretch>
|
||||
</sizepolicy>
|
||||
</property>
|
||||
<property name="text">
|
||||
<string>TextLabel</string>
|
||||
</property>
|
||||
<property name="alignment">
|
||||
<set>Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter</set>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="0" column="1">
|
||||
<widget class="QLabel" name="label_ID">
|
||||
<property name="sizePolicy">
|
||||
<sizepolicy hsizetype="Expanding" vsizetype="Preferred">
|
||||
<horstretch>0</horstretch>
|
||||
<verstretch>0</verstretch>
|
||||
</sizepolicy>
|
||||
</property>
|
||||
<property name="text">
|
||||
<string>TextLabel</string>
|
||||
</property>
|
||||
<property name="alignment">
|
||||
<set>Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter</set>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
</layout>
|
||||
</widget>
|
||||
<resources/>
|
||||
<connections/>
|
||||
</ui>
|
40
src/ui/itemsettingswidgets/systemitemsettingswidget.cpp
Normal file
40
src/ui/itemsettingswidgets/systemitemsettingswidget.cpp
Normal file
@ -0,0 +1,40 @@
|
||||
#include "systemitemsettingswidget.h"
|
||||
#include "ui_systemitemsettingswidget.h"
|
||||
|
||||
SystemItemSettingsWidget::SystemItemSettingsWidget(std::weak_ptr<SystemItem> item, QWidget *parent) :
|
||||
QWidget(parent),
|
||||
item_(item),
|
||||
ui(new Ui::SystemItemSettingsWidget)
|
||||
{
|
||||
ui->setupUi(this);
|
||||
if(auto itemPtr = item_.lock())
|
||||
{
|
||||
ui->lineEdit_on->setText(itemPtr->getOnCommand());
|
||||
ui->lineEdit_off->setText(itemPtr->getOffCommand());
|
||||
}
|
||||
else setDisabled(true);
|
||||
|
||||
connect(ui->lineEdit_on, &QLineEdit::textChanged, this, &SystemItemSettingsWidget::setOn);
|
||||
connect(ui->lineEdit_off, &QLineEdit::textChanged, this, &SystemItemSettingsWidget::setOff);
|
||||
}
|
||||
|
||||
void SystemItemSettingsWidget::setOn(const QString& in)
|
||||
{
|
||||
if(auto itemPtr = item_.lock())
|
||||
{
|
||||
itemPtr->setOnCommand(in);
|
||||
}
|
||||
}
|
||||
|
||||
void SystemItemSettingsWidget::setOff(const QString& in)
|
||||
{
|
||||
if(auto itemPtr = item_.lock())
|
||||
{
|
||||
itemPtr->setOffCommand(in);
|
||||
}
|
||||
}
|
||||
|
||||
SystemItemSettingsWidget::~SystemItemSettingsWidget()
|
||||
{
|
||||
delete ui;
|
||||
}
|
30
src/ui/itemsettingswidgets/systemitemsettingswidget.h
Normal file
30
src/ui/itemsettingswidgets/systemitemsettingswidget.h
Normal file
@ -0,0 +1,30 @@
|
||||
#ifndef SYSTEMITEMSETTINGSWIDGET_H
|
||||
#define SYSTEMITEMSETTINGSWIDGET_H
|
||||
|
||||
#include <QWidget>
|
||||
#include <memory>
|
||||
#include "../../items/systemitem.h"
|
||||
|
||||
namespace Ui {
|
||||
class SystemItemSettingsWidget;
|
||||
}
|
||||
|
||||
class SystemItemSettingsWidget : public QWidget
|
||||
{
|
||||
Q_OBJECT
|
||||
std::weak_ptr<SystemItem> item_;
|
||||
|
||||
private slots:
|
||||
|
||||
void setOn(const QString &in);
|
||||
void setOff(const QString &in);
|
||||
|
||||
public:
|
||||
explicit SystemItemSettingsWidget(std::weak_ptr<SystemItem> item, QWidget *parent = nullptr);
|
||||
~SystemItemSettingsWidget();
|
||||
|
||||
private:
|
||||
Ui::SystemItemSettingsWidget *ui;
|
||||
};
|
||||
|
||||
#endif // SYSTEMITEMSETTINGSWIDGET_H
|
47
src/ui/itemsettingswidgets/systemitemsettingswidget.ui
Normal file
47
src/ui/itemsettingswidgets/systemitemsettingswidget.ui
Normal file
@ -0,0 +1,47 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<ui version="4.0">
|
||||
<class>SystemItemSettingsWidget</class>
|
||||
<widget class="QWidget" name="SystemItemSettingsWidget">
|
||||
<property name="geometry">
|
||||
<rect>
|
||||
<x>0</x>
|
||||
<y>0</y>
|
||||
<width>400</width>
|
||||
<height>92</height>
|
||||
</rect>
|
||||
</property>
|
||||
<property name="sizePolicy">
|
||||
<sizepolicy hsizetype="Preferred" vsizetype="Fixed">
|
||||
<horstretch>0</horstretch>
|
||||
<verstretch>0</verstretch>
|
||||
</sizepolicy>
|
||||
</property>
|
||||
<property name="windowTitle">
|
||||
<string>Form</string>
|
||||
</property>
|
||||
<layout class="QFormLayout" name="formLayout">
|
||||
<item row="0" column="0">
|
||||
<widget class="QLabel" name="label">
|
||||
<property name="text">
|
||||
<string>On command</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="0" column="1">
|
||||
<widget class="QLineEdit" name="lineEdit_on"/>
|
||||
</item>
|
||||
<item row="1" column="1">
|
||||
<widget class="QLineEdit" name="lineEdit_off"/>
|
||||
</item>
|
||||
<item row="1" column="0">
|
||||
<widget class="QLabel" name="label_2">
|
||||
<property name="text">
|
||||
<string>Off command</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
</layout>
|
||||
</widget>
|
||||
<resources/>
|
||||
<connections/>
|
||||
</ui>
|
@ -64,6 +64,8 @@ void ItemWidget::disable()
|
||||
{
|
||||
ui->checkBox->setEnabled(false);
|
||||
ui->label->setEnabled(false);
|
||||
ui->slider->setEnabled(false);
|
||||
ui->pushButton_Remove->setEnabled(false);
|
||||
}
|
||||
|
||||
bool ItemWidget::controles(const ItemData& relay)
|
||||
@ -80,7 +82,7 @@ void ItemWidget::showSettingsDialog()
|
||||
{
|
||||
if(auto workingRelay = item_.lock())
|
||||
{
|
||||
ItemSettingsDialog dialog(workingRelay.get(), this);
|
||||
ItemSettingsDialog dialog(workingRelay, this);
|
||||
dialog.exec();
|
||||
}
|
||||
else disable();
|
||||
|
@ -10,7 +10,7 @@ MainWindow::MainWindow(MainObject * const mainObject, QWidget *parent) :
|
||||
ui(new Ui::MainWindow),
|
||||
colorChooser(this),
|
||||
_micro(&mainObject->micro),
|
||||
_powerItem(&mainObject->powerItem)
|
||||
_powerItem(mainObject->powerItem)
|
||||
{
|
||||
ui->setupUi(this);
|
||||
|
||||
@ -21,7 +21,11 @@ MainWindow::MainWindow(MainObject * const mainObject, QWidget *parent) :
|
||||
|
||||
//Relays
|
||||
if(mainObject->master)connect(ui->pushButton_refesh, &QPushButton::clicked, _micro, &Microcontroller::requestState);
|
||||
else connect(ui->pushButton_refesh, &QPushButton::clicked, &mainObject->broadCast, &BroadCast::requestJson);
|
||||
else
|
||||
{
|
||||
connect(ui->pushButton_refesh, &QPushButton::clicked, &mainObject->broadCast, &BroadCast::requestJson);
|
||||
connect(ui->pushButton_refesh, &QPushButton::clicked, &mainObject->broadCast, &BroadCast::requestSensors);
|
||||
}
|
||||
connect(&mainObject->items, &ItemStore::itemAdded, ui->relayList, &ItemScrollBox::addItem);
|
||||
connect(&mainObject->items, &ItemStore::itemDeleted, ui->relayList, &ItemScrollBox::removeItem);
|
||||
|
||||
@ -51,7 +55,7 @@ MainWindow::~MainWindow()
|
||||
|
||||
void MainWindow::showPowerItemDialog()
|
||||
{
|
||||
ItemSettingsDialog diag(_powerItem, this);
|
||||
ItemSettingsDialog diag(std::shared_ptr<Item>(_powerItem), this);
|
||||
diag.show();
|
||||
diag.exec();
|
||||
}
|
||||
|
@ -36,7 +36,7 @@ private:
|
||||
|
||||
Microcontroller *_micro;
|
||||
|
||||
PowerItem *_powerItem;
|
||||
std::shared_ptr<PowerItem> _powerItem;
|
||||
|
||||
signals:
|
||||
|
||||
|
@ -2,13 +2,16 @@
|
||||
|
||||
#include <QDebug>
|
||||
#include <QHeaderView>
|
||||
#include <QScroller>
|
||||
|
||||
SensorListWidget::SensorListWidget(const bool showHidden, QWidget *parent): QTableWidget(parent), showHidden_(showHidden)
|
||||
{
|
||||
setColumnCount(2);
|
||||
setSelectionBehavior(QAbstractItemView::SelectRows);
|
||||
horizontalHeader()->setSectionResizeMode(0, QHeaderView::Stretch);
|
||||
|
||||
QScroller::grabGesture(this, QScroller::LeftMouseButtonGesture);
|
||||
setAutoScroll(true);
|
||||
setVerticalScrollMode(QAbstractItemView::ScrollPerPixel);
|
||||
setHorizontalHeaderItem(0, new QTableWidgetItem("Sensor"));
|
||||
setHorizontalHeaderItem(1, new QTableWidgetItem("Value"));
|
||||
}
|
||||
|
Reference in New Issue
Block a user