Sensors now work over broadcast pipe
Added Polynomal actor Added Item adding dialog Added Factor Actor
This commit is contained in:
		
							parent
							
								
									f6aaebafc6
								
							
						
					
					
						commit
						772d21a982
					
				
					 63 changed files with 1450 additions and 225 deletions
				
			
		| 
						 | 
				
			
			@ -1,5 +1,6 @@
 | 
			
		|||
#include "actorsettingsdialog.h"
 | 
			
		||||
#include "ui_actorsettingsdialog.h"
 | 
			
		||||
#include "itemsettingsdialog.h"
 | 
			
		||||
#include <QDebug>
 | 
			
		||||
#include <QSpinBox>
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			@ -14,25 +15,25 @@ ActorSettingsDialog::ActorSettingsDialog(AlarmTime* alarm, QWidget *parent):
 | 
			
		|||
    ui->vertlayout->addWidget(widget);
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
ActorSettingsDialog::ActorSettingsDialog(SensorActor* actor, SensorStore* sensors, QWidget *parent) :
 | 
			
		||||
ActorSettingsDialog::ActorSettingsDialog(SensorActor* actor, QWidget *parent) :
 | 
			
		||||
QDialog(parent),
 | 
			
		||||
actor_(actor),
 | 
			
		||||
ui(new Ui::ActorSettingsDialog)
 | 
			
		||||
{
 | 
			
		||||
    init();
 | 
			
		||||
 | 
			
		||||
    widget = new SensorActorWidget(actor, sensors, this);
 | 
			
		||||
    widget = new SensorActorWidget(actor, &globalSensors, this);
 | 
			
		||||
    ui->vertlayout->addWidget(widget);
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
ActorSettingsDialog::ActorSettingsDialog(Regulator* actor, SensorStore* sensors, QWidget *parent) :
 | 
			
		||||
ActorSettingsDialog::ActorSettingsDialog(Regulator* actor, QWidget *parent) :
 | 
			
		||||
    QDialog(parent),
 | 
			
		||||
    actor_(actor),
 | 
			
		||||
    ui(new Ui::ActorSettingsDialog)
 | 
			
		||||
{
 | 
			
		||||
    init();
 | 
			
		||||
 | 
			
		||||
    widget = new RegulatorWdiget(actor, sensors, this);
 | 
			
		||||
    widget = new RegulatorWdiget(actor, &globalSensors, this);
 | 
			
		||||
    ui->vertlayout->addWidget(widget);
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			@ -47,6 +48,26 @@ ui(new Ui::ActorSettingsDialog)
 | 
			
		|||
    ui->vertlayout->addWidget(widget);
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
ActorSettingsDialog::ActorSettingsDialog(PolynomalActor* actor, QWidget *parent) :
 | 
			
		||||
QDialog(parent),
 | 
			
		||||
actor_(actor),
 | 
			
		||||
ui(new Ui::ActorSettingsDialog)
 | 
			
		||||
{
 | 
			
		||||
    init();
 | 
			
		||||
 | 
			
		||||
    widget = new PolynomalActorWidget(actor, &globalSensors, this);
 | 
			
		||||
    ui->vertlayout->addWidget(widget);
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
ActorSettingsDialog::ActorSettingsDialog(MultiFactorActor* actor, QWidget *parent) :
 | 
			
		||||
QDialog(parent),
 | 
			
		||||
actor_(actor),
 | 
			
		||||
ui(new Ui::ActorSettingsDialog)
 | 
			
		||||
{
 | 
			
		||||
    init();
 | 
			
		||||
    widget = new FactorActorWidget(actor, this);
 | 
			
		||||
    ui->vertlayout->addWidget(widget);
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
ActorSettingsDialog::ActorSettingsDialog(Actor* actor, QWidget *parent) :
 | 
			
		||||
QDialog(parent),
 | 
			
		||||
| 
						 | 
				
			
			@ -61,6 +82,7 @@ void ActorSettingsDialog::init()
 | 
			
		|||
    ui->setupUi(this);
 | 
			
		||||
    connect(ui->comboBox_action, SIGNAL(currentIndexChanged(int)), this, SLOT(changeAction(int)));
 | 
			
		||||
    connect(ui->spinBox,  SIGNAL(valueChanged(int)), this, SLOT(valueChanged(int)));
 | 
			
		||||
    connect(ui->pushButton_editItem, &QPushButton::clicked, this, &ActorSettingsDialog::editAsItem);
 | 
			
		||||
    ui->spinBox->hide();
 | 
			
		||||
 | 
			
		||||
    ui->spinBox->setValue(actor_->getTriggerValue());
 | 
			
		||||
| 
						 | 
				
			
			@ -74,6 +96,12 @@ ActorSettingsDialog::~ActorSettingsDialog()
 | 
			
		|||
    delete ui;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
void ActorSettingsDialog::editAsItem()
 | 
			
		||||
{
 | 
			
		||||
    ItemSettingsDialog itemSettingsDiag(actor_, this);
 | 
			
		||||
    itemSettingsDiag.exec();
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
void ActorSettingsDialog::valueChanged(int value)
 | 
			
		||||
{
 | 
			
		||||
    actor_->setTriggerValue(value);
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -7,6 +7,8 @@
 | 
			
		|||
#include "actorwidgets/sensoractorwidget.h"
 | 
			
		||||
#include "actorwidgets/timeractorwidget.h"
 | 
			
		||||
#include "actorwidgets/regulatorwdiget.h"
 | 
			
		||||
#include "actorwidgets/polynomalactorwidget.h"
 | 
			
		||||
#include "actorwidgets/factoractorwidget.h"
 | 
			
		||||
 | 
			
		||||
namespace Ui {
 | 
			
		||||
class ActorSettingsDialog;
 | 
			
		||||
| 
						 | 
				
			
			@ -24,9 +26,11 @@ private:
 | 
			
		|||
 | 
			
		||||
public:
 | 
			
		||||
    ActorSettingsDialog(AlarmTime* actor, QWidget *parent = nullptr);
 | 
			
		||||
    ActorSettingsDialog(SensorActor* actor, SensorStore* sensors = nullptr, QWidget *parent = nullptr);
 | 
			
		||||
    ActorSettingsDialog(Regulator* actor, SensorStore* sensors = nullptr, QWidget *parent = nullptr);
 | 
			
		||||
    ActorSettingsDialog(TimerActor* actor, QWidget *parent);
 | 
			
		||||
    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();
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			@ -35,6 +39,7 @@ public:
 | 
			
		|||
private slots:
 | 
			
		||||
    void changeAction(int index);
 | 
			
		||||
    void valueChanged(int value);
 | 
			
		||||
    void editAsItem();
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
private:
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -63,6 +63,13 @@
 | 
			
		|||
       </item>
 | 
			
		||||
      </layout>
 | 
			
		||||
     </item>
 | 
			
		||||
     <item>
 | 
			
		||||
      <widget class="QPushButton" name="pushButton_editItem">
 | 
			
		||||
       <property name="text">
 | 
			
		||||
        <string>Edit as item</string>
 | 
			
		||||
       </property>
 | 
			
		||||
      </widget>
 | 
			
		||||
     </item>
 | 
			
		||||
    </layout>
 | 
			
		||||
   </item>
 | 
			
		||||
   <item>
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -20,7 +20,7 @@ public:
 | 
			
		|||
 | 
			
		||||
private slots:
 | 
			
		||||
    void toggleRepeating(int state);
 | 
			
		||||
        void setRepeatingType();
 | 
			
		||||
    void setRepeatingType();
 | 
			
		||||
 | 
			
		||||
private:
 | 
			
		||||
    Ui::AlarmWidget *ui;
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
							
								
								
									
										85
									
								
								src/ui/actorwidgets/factoractorwidget.cpp
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										85
									
								
								src/ui/actorwidgets/factoractorwidget.cpp
									
										
									
									
									
										Normal file
									
								
							| 
						 | 
				
			
			@ -0,0 +1,85 @@
 | 
			
		|||
#include "factoractorwidget.h"
 | 
			
		||||
#include "ui_factoractorwidget.h"
 | 
			
		||||
#include "../actorsettingsdialog.h"
 | 
			
		||||
 | 
			
		||||
FactorActorWidget::FactorActorWidget(MultiFactorActor* actor, QWidget *parent) :
 | 
			
		||||
    QWidget(parent),
 | 
			
		||||
    actor_(actor),
 | 
			
		||||
    ui(new Ui::FactorActorWidget)
 | 
			
		||||
{
 | 
			
		||||
    ui->setupUi(this);
 | 
			
		||||
    ui->comboBox->setCurrentText(actor_->getFactorDirection() ? "True" : "False");
 | 
			
		||||
    ui->spinBox->setValue(actor_->getPreCancleTime());
 | 
			
		||||
    if(actor_->getFactorActor()) ui->label_FactorActor->setText(actor_->getFactorActor()->getName());
 | 
			
		||||
    connect(ui->pushButton, &QPushButton::clicked, this, &FactorActorWidget::createFactorActor);
 | 
			
		||||
    connect(ui->comboBox_Direcion, &QComboBox::currentTextChanged, this, &FactorActorWidget::setDirection);
 | 
			
		||||
    connect(ui->spinBox,  qOverload<int>(&QSpinBox::valueChanged), this, &FactorActorWidget::setPreCancleTime);
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
FactorActorWidget::~FactorActorWidget()
 | 
			
		||||
{
 | 
			
		||||
    delete ui;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
void FactorActorWidget::createFactorActor()
 | 
			
		||||
{
 | 
			
		||||
    ActorSettingsDialog* dialog = nullptr;
 | 
			
		||||
    Actor* actor = nullptr;
 | 
			
		||||
 | 
			
		||||
    if(ui->comboBox->currentText() == "Alarm")
 | 
			
		||||
    {
 | 
			
		||||
        AlarmTime* alarm = new AlarmTime;
 | 
			
		||||
        actor = alarm;
 | 
			
		||||
        dialog = new ActorSettingsDialog(alarm, this);
 | 
			
		||||
    }
 | 
			
		||||
    else if(ui->comboBox->currentText() == "Sensor")
 | 
			
		||||
    {
 | 
			
		||||
        SensorActor* sensorActor = new SensorActor();
 | 
			
		||||
        actor = sensorActor;
 | 
			
		||||
        dialog = new ActorSettingsDialog(sensorActor, this);
 | 
			
		||||
    }
 | 
			
		||||
    else if(ui->comboBox->currentText() == "Timer" )
 | 
			
		||||
    {
 | 
			
		||||
        TimerActor* timerActor = new TimerActor();
 | 
			
		||||
        actor = timerActor;
 | 
			
		||||
        dialog = new ActorSettingsDialog(timerActor, this);
 | 
			
		||||
    }
 | 
			
		||||
    else if(ui->comboBox->currentText() == "Regulator")
 | 
			
		||||
    {
 | 
			
		||||
        Regulator* regulator = new Regulator();
 | 
			
		||||
        actor = regulator;
 | 
			
		||||
        dialog = new ActorSettingsDialog(regulator, this);
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    else if(ui->comboBox->currentText() == "Polynomal")
 | 
			
		||||
    {
 | 
			
		||||
        PolynomalActor* polynomalActor = new PolynomalActor();
 | 
			
		||||
        actor = polynomalActor;
 | 
			
		||||
        dialog = new ActorSettingsDialog(polynomalActor, this);
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
    if(dialog != nullptr)
 | 
			
		||||
    {
 | 
			
		||||
        dialog->setParent(this);
 | 
			
		||||
        dialog->show();
 | 
			
		||||
        if(dialog->exec() == QDialog::Accepted)
 | 
			
		||||
        {
 | 
			
		||||
            actor_->setFactorActor(actor);
 | 
			
		||||
            ui->label_FactorActor->setText(actor->getName());
 | 
			
		||||
        }
 | 
			
		||||
        else delete actor;
 | 
			
		||||
        delete dialog;
 | 
			
		||||
    }
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
void FactorActorWidget::setDirection(const QString& type)
 | 
			
		||||
{
 | 
			
		||||
    if(type == "True") actor_->setFactorDirection(true);
 | 
			
		||||
    else actor_->setFactorDirection(false);
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
void FactorActorWidget::setPreCancleTime(int time)
 | 
			
		||||
{
 | 
			
		||||
    actor_->setPreCancleTime(time);
 | 
			
		||||
}
 | 
			
		||||
							
								
								
									
										30
									
								
								src/ui/actorwidgets/factoractorwidget.h
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										30
									
								
								src/ui/actorwidgets/factoractorwidget.h
									
										
									
									
									
										Normal file
									
								
							| 
						 | 
				
			
			@ -0,0 +1,30 @@
 | 
			
		|||
#ifndef FACTORACTORWIDGET_H
 | 
			
		||||
#define FACTORACTORWIDGET_H
 | 
			
		||||
 | 
			
		||||
#include <QWidget>
 | 
			
		||||
#include "../../actors/factoractor.h"
 | 
			
		||||
 | 
			
		||||
namespace Ui {
 | 
			
		||||
class FactorActorWidget;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
class FactorActorWidget : public QWidget
 | 
			
		||||
{
 | 
			
		||||
    Q_OBJECT
 | 
			
		||||
 | 
			
		||||
    MultiFactorActor* actor_;
 | 
			
		||||
 | 
			
		||||
public:
 | 
			
		||||
    explicit FactorActorWidget(MultiFactorActor* actor, QWidget *parent = nullptr);
 | 
			
		||||
    ~FactorActorWidget();
 | 
			
		||||
 | 
			
		||||
private slots:
 | 
			
		||||
    void createFactorActor();
 | 
			
		||||
    void setDirection(const QString& direction);
 | 
			
		||||
    void setPreCancleTime(int time);
 | 
			
		||||
 | 
			
		||||
private:
 | 
			
		||||
    Ui::FactorActorWidget *ui;
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
#endif // FACTORACTORWIDGET_H
 | 
			
		||||
							
								
								
									
										136
									
								
								src/ui/actorwidgets/factoractorwidget.ui
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										136
									
								
								src/ui/actorwidgets/factoractorwidget.ui
									
										
									
									
									
										Normal file
									
								
							| 
						 | 
				
			
			@ -0,0 +1,136 @@
 | 
			
		|||
<?xml version="1.0" encoding="UTF-8"?>
 | 
			
		||||
<ui version="4.0">
 | 
			
		||||
 <class>FactorActorWidget</class>
 | 
			
		||||
 <widget class="QWidget" name="FactorActorWidget">
 | 
			
		||||
  <property name="geometry">
 | 
			
		||||
   <rect>
 | 
			
		||||
    <x>0</x>
 | 
			
		||||
    <y>0</y>
 | 
			
		||||
    <width>395</width>
 | 
			
		||||
    <height>169</height>
 | 
			
		||||
   </rect>
 | 
			
		||||
  </property>
 | 
			
		||||
  <property name="windowTitle">
 | 
			
		||||
   <string>Form</string>
 | 
			
		||||
  </property>
 | 
			
		||||
  <layout class="QVBoxLayout" name="verticalLayout">
 | 
			
		||||
   <item>
 | 
			
		||||
    <layout class="QGridLayout" name="gridLayout">
 | 
			
		||||
     <item row="1" column="0">
 | 
			
		||||
      <widget class="QComboBox" name="comboBox">
 | 
			
		||||
       <item>
 | 
			
		||||
        <property name="text">
 | 
			
		||||
         <string>Sensor</string>
 | 
			
		||||
        </property>
 | 
			
		||||
       </item>
 | 
			
		||||
       <item>
 | 
			
		||||
        <property name="text">
 | 
			
		||||
         <string>Polynomal</string>
 | 
			
		||||
        </property>
 | 
			
		||||
       </item>
 | 
			
		||||
       <item>
 | 
			
		||||
        <property name="text">
 | 
			
		||||
         <string>Alarm</string>
 | 
			
		||||
        </property>
 | 
			
		||||
       </item>
 | 
			
		||||
       <item>
 | 
			
		||||
        <property name="text">
 | 
			
		||||
         <string>Timer</string>
 | 
			
		||||
        </property>
 | 
			
		||||
       </item>
 | 
			
		||||
       <item>
 | 
			
		||||
        <property name="text">
 | 
			
		||||
         <string>Regulator</string>
 | 
			
		||||
        </property>
 | 
			
		||||
       </item>
 | 
			
		||||
      </widget>
 | 
			
		||||
     </item>
 | 
			
		||||
     <item row="0" column="2">
 | 
			
		||||
      <widget class="QLabel" name="label_FactorActor">
 | 
			
		||||
       <property name="text">
 | 
			
		||||
        <string>None</string>
 | 
			
		||||
       </property>
 | 
			
		||||
      </widget>
 | 
			
		||||
     </item>
 | 
			
		||||
     <item row="1" column="2">
 | 
			
		||||
      <widget class="QPushButton" name="pushButton">
 | 
			
		||||
       <property name="sizePolicy">
 | 
			
		||||
        <sizepolicy hsizetype="Fixed" vsizetype="Fixed">
 | 
			
		||||
         <horstretch>0</horstretch>
 | 
			
		||||
         <verstretch>0</verstretch>
 | 
			
		||||
        </sizepolicy>
 | 
			
		||||
       </property>
 | 
			
		||||
       <property name="text">
 | 
			
		||||
        <string>Create Factor</string>
 | 
			
		||||
       </property>
 | 
			
		||||
      </widget>
 | 
			
		||||
     </item>
 | 
			
		||||
     <item row="2" column="0">
 | 
			
		||||
      <widget class="QLabel" name="label_2">
 | 
			
		||||
       <property name="text">
 | 
			
		||||
        <string>Factor Direciton:</string>
 | 
			
		||||
       </property>
 | 
			
		||||
      </widget>
 | 
			
		||||
     </item>
 | 
			
		||||
     <item row="2" column="2">
 | 
			
		||||
      <widget class="QComboBox" name="comboBox_Direcion">
 | 
			
		||||
       <item>
 | 
			
		||||
        <property name="text">
 | 
			
		||||
         <string>True</string>
 | 
			
		||||
        </property>
 | 
			
		||||
       </item>
 | 
			
		||||
       <item>
 | 
			
		||||
        <property name="text">
 | 
			
		||||
         <string>False</string>
 | 
			
		||||
        </property>
 | 
			
		||||
       </item>
 | 
			
		||||
      </widget>
 | 
			
		||||
     </item>
 | 
			
		||||
     <item row="0" column="0">
 | 
			
		||||
      <widget class="QLabel" name="label">
 | 
			
		||||
       <property name="text">
 | 
			
		||||
        <string>Current Factor:</string>
 | 
			
		||||
       </property>
 | 
			
		||||
      </widget>
 | 
			
		||||
     </item>
 | 
			
		||||
    </layout>
 | 
			
		||||
   </item>
 | 
			
		||||
   <item>
 | 
			
		||||
    <layout class="QHBoxLayout" name="horizontalLayout_2">
 | 
			
		||||
     <item>
 | 
			
		||||
      <widget class="QLabel" name="label_3">
 | 
			
		||||
       <property name="text">
 | 
			
		||||
        <string>Factor time tollerance</string>
 | 
			
		||||
       </property>
 | 
			
		||||
      </widget>
 | 
			
		||||
     </item>
 | 
			
		||||
     <item>
 | 
			
		||||
      <widget class="QSpinBox" name="spinBox">
 | 
			
		||||
       <property name="maximum">
 | 
			
		||||
        <number>10000</number>
 | 
			
		||||
       </property>
 | 
			
		||||
       <property name="value">
 | 
			
		||||
        <number>10</number>
 | 
			
		||||
       </property>
 | 
			
		||||
      </widget>
 | 
			
		||||
     </item>
 | 
			
		||||
     <item>
 | 
			
		||||
      <widget class="QLabel" name="label_4">
 | 
			
		||||
       <property name="sizePolicy">
 | 
			
		||||
        <sizepolicy hsizetype="Fixed" vsizetype="Preferred">
 | 
			
		||||
         <horstretch>0</horstretch>
 | 
			
		||||
         <verstretch>0</verstretch>
 | 
			
		||||
        </sizepolicy>
 | 
			
		||||
       </property>
 | 
			
		||||
       <property name="text">
 | 
			
		||||
        <string>Min</string>
 | 
			
		||||
       </property>
 | 
			
		||||
      </widget>
 | 
			
		||||
     </item>
 | 
			
		||||
    </layout>
 | 
			
		||||
   </item>
 | 
			
		||||
  </layout>
 | 
			
		||||
 </widget>
 | 
			
		||||
 <resources/>
 | 
			
		||||
 <connections/>
 | 
			
		||||
</ui>
 | 
			
		||||
							
								
								
									
										48
									
								
								src/ui/actorwidgets/polynomalactorwidget.cpp
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										48
									
								
								src/ui/actorwidgets/polynomalactorwidget.cpp
									
										
									
									
									
										Normal file
									
								
							| 
						 | 
				
			
			@ -0,0 +1,48 @@
 | 
			
		|||
#include "polynomalactorwidget.h"
 | 
			
		||||
#include "ui_polynomalactorwidget.h"
 | 
			
		||||
 | 
			
		||||
PolynomalActorWidget::PolynomalActorWidget(PolynomalActor* actor, SensorStore* sensors, QWidget *parent):
 | 
			
		||||
    QWidget(parent),
 | 
			
		||||
    sensors_(sensors),
 | 
			
		||||
    actor_(actor),
 | 
			
		||||
    ui(new Ui::PolynomalActorWidget)
 | 
			
		||||
{
 | 
			
		||||
    ui->setupUi(this);
 | 
			
		||||
    if(sensors)ui->listView->sensorsChanged(*(sensors->getSensors()));
 | 
			
		||||
    else
 | 
			
		||||
    {
 | 
			
		||||
        ui->listView->hide();
 | 
			
		||||
        ui->label->hide();
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    double pow3, pow2, pow1, pow0;
 | 
			
		||||
 | 
			
		||||
    actor_->getCoeffiancts(pow3, pow2, pow1, pow0);
 | 
			
		||||
 | 
			
		||||
    ui->doubleSpinBox_pow0->setValue(pow0);
 | 
			
		||||
    ui->doubleSpinBox_pow1->setValue(pow1);
 | 
			
		||||
    ui->doubleSpinBox_pow2->setValue(pow2);
 | 
			
		||||
    ui->doubleSpinBox_pow3->setValue(pow3);
 | 
			
		||||
 | 
			
		||||
    connect(ui->doubleSpinBox_pow3, &QDoubleSpinBox::editingFinished, this, &PolynomalActorWidget::setPow);
 | 
			
		||||
    connect(ui->doubleSpinBox_pow2, &QDoubleSpinBox::editingFinished, this, &PolynomalActorWidget::setPow);
 | 
			
		||||
    connect(ui->doubleSpinBox_pow1, &QDoubleSpinBox::editingFinished, this, &PolynomalActorWidget::setPow);
 | 
			
		||||
    connect(ui->doubleSpinBox_pow0, &QDoubleSpinBox::editingFinished, this, &PolynomalActorWidget::setPow);
 | 
			
		||||
    connect(ui->listView, &SensorListWidget::clicked, this, &PolynomalActorWidget::setSensor);
 | 
			
		||||
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
PolynomalActorWidget::~PolynomalActorWidget()
 | 
			
		||||
{
 | 
			
		||||
    delete ui;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
void PolynomalActorWidget::setPow()
 | 
			
		||||
{
 | 
			
		||||
    actor_->setCoeffiancts(ui->doubleSpinBox_pow3->value(), ui->doubleSpinBox_pow2->value(), ui->doubleSpinBox_pow1->value(), ui->doubleSpinBox_pow0->value());
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
void PolynomalActorWidget::setSensor(const QModelIndex &index)
 | 
			
		||||
{
 | 
			
		||||
    actor_->setSensor(sensors_->getSensors()->at(index.row()));
 | 
			
		||||
}
 | 
			
		||||
							
								
								
									
										30
									
								
								src/ui/actorwidgets/polynomalactorwidget.h
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										30
									
								
								src/ui/actorwidgets/polynomalactorwidget.h
									
										
									
									
									
										Normal file
									
								
							| 
						 | 
				
			
			@ -0,0 +1,30 @@
 | 
			
		|||
#ifndef POLYNOMALACTORWIDGET_H
 | 
			
		||||
#define POLYNOMALACTORWIDGET_H
 | 
			
		||||
 | 
			
		||||
#include <QWidget>
 | 
			
		||||
#include "../../actors/polynomalactor.h"
 | 
			
		||||
 | 
			
		||||
namespace Ui {
 | 
			
		||||
class PolynomalActorWidget;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
class PolynomalActorWidget : public QWidget
 | 
			
		||||
{
 | 
			
		||||
    Q_OBJECT
 | 
			
		||||
    SensorStore* sensors_;
 | 
			
		||||
    PolynomalActor* actor_;
 | 
			
		||||
 | 
			
		||||
public:
 | 
			
		||||
    explicit PolynomalActorWidget(PolynomalActor* regulator, SensorStore* sensors = nullptr, QWidget *parent = nullptr);
 | 
			
		||||
    ~PolynomalActorWidget();
 | 
			
		||||
 | 
			
		||||
private slots:
 | 
			
		||||
 | 
			
		||||
    void setPow();
 | 
			
		||||
    void setSensor(const QModelIndex &index);
 | 
			
		||||
 | 
			
		||||
private:
 | 
			
		||||
    Ui::PolynomalActorWidget *ui;
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
#endif // POLYNOMALACTORWIDGET_H
 | 
			
		||||
							
								
								
									
										140
									
								
								src/ui/actorwidgets/polynomalactorwidget.ui
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										140
									
								
								src/ui/actorwidgets/polynomalactorwidget.ui
									
										
									
									
									
										Normal file
									
								
							| 
						 | 
				
			
			@ -0,0 +1,140 @@
 | 
			
		|||
<?xml version="1.0" encoding="UTF-8"?>
 | 
			
		||||
<ui version="4.0">
 | 
			
		||||
 <class>PolynomalActorWidget</class>
 | 
			
		||||
 <widget class="QWidget" name="PolynomalActorWidget">
 | 
			
		||||
  <property name="geometry">
 | 
			
		||||
   <rect>
 | 
			
		||||
    <x>0</x>
 | 
			
		||||
    <y>0</y>
 | 
			
		||||
    <width>420</width>
 | 
			
		||||
    <height>306</height>
 | 
			
		||||
   </rect>
 | 
			
		||||
  </property>
 | 
			
		||||
  <property name="windowTitle">
 | 
			
		||||
   <string>Form</string>
 | 
			
		||||
  </property>
 | 
			
		||||
  <layout class="QVBoxLayout" name="verticalLayout">
 | 
			
		||||
   <item>
 | 
			
		||||
    <widget class="QLabel" name="label_4">
 | 
			
		||||
     <property name="sizePolicy">
 | 
			
		||||
      <sizepolicy hsizetype="Preferred" vsizetype="Fixed">
 | 
			
		||||
       <horstretch>0</horstretch>
 | 
			
		||||
       <verstretch>0</verstretch>
 | 
			
		||||
      </sizepolicy>
 | 
			
		||||
     </property>
 | 
			
		||||
     <property name="text">
 | 
			
		||||
      <string>Select Sensor</string>
 | 
			
		||||
     </property>
 | 
			
		||||
    </widget>
 | 
			
		||||
   </item>
 | 
			
		||||
   <item>
 | 
			
		||||
    <widget class="SensorListWidget" name="listView">
 | 
			
		||||
     <property name="sizePolicy">
 | 
			
		||||
      <sizepolicy hsizetype="Expanding" vsizetype="Fixed">
 | 
			
		||||
       <horstretch>0</horstretch>
 | 
			
		||||
       <verstretch>0</verstretch>
 | 
			
		||||
      </sizepolicy>
 | 
			
		||||
     </property>
 | 
			
		||||
    </widget>
 | 
			
		||||
   </item>
 | 
			
		||||
   <item>
 | 
			
		||||
    <layout class="QHBoxLayout" name="horizontalLayout">
 | 
			
		||||
     <item>
 | 
			
		||||
      <widget class="QDoubleSpinBox" name="doubleSpinBox_pow3">
 | 
			
		||||
       <property name="minimum">
 | 
			
		||||
        <double>-500.000000000000000</double>
 | 
			
		||||
       </property>
 | 
			
		||||
       <property name="maximum">
 | 
			
		||||
        <double>500.000000000000000</double>
 | 
			
		||||
       </property>
 | 
			
		||||
       <property name="value">
 | 
			
		||||
        <double>0.000000000000000</double>
 | 
			
		||||
       </property>
 | 
			
		||||
      </widget>
 | 
			
		||||
     </item>
 | 
			
		||||
     <item>
 | 
			
		||||
      <widget class="QLabel" name="label">
 | 
			
		||||
       <property name="sizePolicy">
 | 
			
		||||
        <sizepolicy hsizetype="Fixed" vsizetype="Fixed">
 | 
			
		||||
         <horstretch>0</horstretch>
 | 
			
		||||
         <verstretch>0</verstretch>
 | 
			
		||||
        </sizepolicy>
 | 
			
		||||
       </property>
 | 
			
		||||
       <property name="text">
 | 
			
		||||
        <string>x³+</string>
 | 
			
		||||
       </property>
 | 
			
		||||
      </widget>
 | 
			
		||||
     </item>
 | 
			
		||||
     <item>
 | 
			
		||||
      <widget class="QDoubleSpinBox" name="doubleSpinBox_pow2">
 | 
			
		||||
       <property name="minimum">
 | 
			
		||||
        <double>-500.000000000000000</double>
 | 
			
		||||
       </property>
 | 
			
		||||
       <property name="maximum">
 | 
			
		||||
        <double>500.000000000000000</double>
 | 
			
		||||
       </property>
 | 
			
		||||
      </widget>
 | 
			
		||||
     </item>
 | 
			
		||||
     <item>
 | 
			
		||||
      <widget class="QLabel" name="label_2">
 | 
			
		||||
       <property name="sizePolicy">
 | 
			
		||||
        <sizepolicy hsizetype="Fixed" vsizetype="Fixed">
 | 
			
		||||
         <horstretch>0</horstretch>
 | 
			
		||||
         <verstretch>0</verstretch>
 | 
			
		||||
        </sizepolicy>
 | 
			
		||||
       </property>
 | 
			
		||||
       <property name="text">
 | 
			
		||||
        <string>x²+</string>
 | 
			
		||||
       </property>
 | 
			
		||||
      </widget>
 | 
			
		||||
     </item>
 | 
			
		||||
     <item>
 | 
			
		||||
      <widget class="QDoubleSpinBox" name="doubleSpinBox_pow1">
 | 
			
		||||
       <property name="minimum">
 | 
			
		||||
        <double>-500.000000000000000</double>
 | 
			
		||||
       </property>
 | 
			
		||||
       <property name="maximum">
 | 
			
		||||
        <double>500.000000000000000</double>
 | 
			
		||||
       </property>
 | 
			
		||||
       <property name="value">
 | 
			
		||||
        <double>1.000000000000000</double>
 | 
			
		||||
       </property>
 | 
			
		||||
      </widget>
 | 
			
		||||
     </item>
 | 
			
		||||
     <item>
 | 
			
		||||
      <widget class="QLabel" name="label_3">
 | 
			
		||||
       <property name="sizePolicy">
 | 
			
		||||
        <sizepolicy hsizetype="Fixed" vsizetype="Fixed">
 | 
			
		||||
         <horstretch>0</horstretch>
 | 
			
		||||
         <verstretch>0</verstretch>
 | 
			
		||||
        </sizepolicy>
 | 
			
		||||
       </property>
 | 
			
		||||
       <property name="text">
 | 
			
		||||
        <string>x+</string>
 | 
			
		||||
       </property>
 | 
			
		||||
      </widget>
 | 
			
		||||
     </item>
 | 
			
		||||
     <item>
 | 
			
		||||
      <widget class="QDoubleSpinBox" name="doubleSpinBox_pow0">
 | 
			
		||||
       <property name="minimum">
 | 
			
		||||
        <double>-500.000000000000000</double>
 | 
			
		||||
       </property>
 | 
			
		||||
       <property name="maximum">
 | 
			
		||||
        <double>500.000000000000000</double>
 | 
			
		||||
       </property>
 | 
			
		||||
      </widget>
 | 
			
		||||
     </item>
 | 
			
		||||
    </layout>
 | 
			
		||||
   </item>
 | 
			
		||||
  </layout>
 | 
			
		||||
 </widget>
 | 
			
		||||
 <customwidgets>
 | 
			
		||||
  <customwidget>
 | 
			
		||||
   <class>SensorListWidget</class>
 | 
			
		||||
   <extends>QListView</extends>
 | 
			
		||||
   <header location="global">../src/ui/sensorlistwidget.h</header>
 | 
			
		||||
  </customwidget>
 | 
			
		||||
 </customwidgets>
 | 
			
		||||
 <resources/>
 | 
			
		||||
 <connections/>
 | 
			
		||||
</ui>
 | 
			
		||||
							
								
								
									
										45
									
								
								src/ui/itemcreationdialog.cpp
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										45
									
								
								src/ui/itemcreationdialog.cpp
									
										
									
									
									
										Normal file
									
								
							| 
						 | 
				
			
			@ -0,0 +1,45 @@
 | 
			
		|||
#include "itemcreationdialog.h"
 | 
			
		||||
#include "ui_itemcreationdialog.h"
 | 
			
		||||
 | 
			
		||||
#include "itemsettingswidgets/messageitemsettingswidget.h"
 | 
			
		||||
 | 
			
		||||
ItemCreationDialog::ItemCreationDialog(QWidget *parent) :
 | 
			
		||||
    QDialog(parent),
 | 
			
		||||
    ui(new Ui::ItemCreationDialog)
 | 
			
		||||
{
 | 
			
		||||
    ui->setupUi(this);
 | 
			
		||||
    std::shared_ptr<MessageItem> messageItem(new MessageItem);
 | 
			
		||||
    item = messageItem;
 | 
			
		||||
    widget = new MessageItemSettingsWidget(messageItem, this);
 | 
			
		||||
    ui->verticalLayout->addWidget(widget);
 | 
			
		||||
    connect(ui->comboBox, &QComboBox::currentTextChanged, this, &ItemCreationDialog::itemTypeChanged);
 | 
			
		||||
    connect(ui->lineEdit, &QLineEdit::textChanged, this, &ItemCreationDialog::itemNameChanged);
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
ItemCreationDialog::~ItemCreationDialog()
 | 
			
		||||
{
 | 
			
		||||
    delete ui;
 | 
			
		||||
    delete widget;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
void ItemCreationDialog::itemTypeChanged(const QString& type)
 | 
			
		||||
{
 | 
			
		||||
    ui->verticalLayout->removeWidget(widget);
 | 
			
		||||
    delete widget;
 | 
			
		||||
    if(type == "Message")
 | 
			
		||||
    {
 | 
			
		||||
        std::shared_ptr<MessageItem> messageItem(new MessageItem);
 | 
			
		||||
        item = messageItem;
 | 
			
		||||
        widget = new MessageItemSettingsWidget(messageItem, this);
 | 
			
		||||
        ui->verticalLayout_2->addWidget(widget);
 | 
			
		||||
    }
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
void ItemCreationDialog::itemNameChanged(const QString& name)
 | 
			
		||||
{
 | 
			
		||||
    if(item)
 | 
			
		||||
    {
 | 
			
		||||
        item->setName(name);
 | 
			
		||||
    }
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
							
								
								
									
										33
									
								
								src/ui/itemcreationdialog.h
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										33
									
								
								src/ui/itemcreationdialog.h
									
										
									
									
									
										Normal file
									
								
							| 
						 | 
				
			
			@ -0,0 +1,33 @@
 | 
			
		|||
#ifndef ITEMCREATIONDIALOG_H
 | 
			
		||||
#define ITEMCREATIONDIALOG_H
 | 
			
		||||
 | 
			
		||||
#include <QDialog>
 | 
			
		||||
#include <memory>
 | 
			
		||||
#include "../items/item.h"
 | 
			
		||||
 | 
			
		||||
namespace Ui {
 | 
			
		||||
class ItemCreationDialog;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
class ItemCreationDialog : public QDialog
 | 
			
		||||
{
 | 
			
		||||
    Q_OBJECT
 | 
			
		||||
 | 
			
		||||
    QWidget* widget;
 | 
			
		||||
 | 
			
		||||
public:
 | 
			
		||||
    explicit ItemCreationDialog(QWidget *parent = nullptr);
 | 
			
		||||
    ~ItemCreationDialog();
 | 
			
		||||
 | 
			
		||||
    std::shared_ptr<Item> item;
 | 
			
		||||
 | 
			
		||||
private slots:
 | 
			
		||||
 | 
			
		||||
    void itemTypeChanged(const QString& type);
 | 
			
		||||
    void itemNameChanged(const QString& name);
 | 
			
		||||
 | 
			
		||||
private:
 | 
			
		||||
    Ui::ItemCreationDialog *ui;
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
#endif // ITEMCREATIONDIALOG_H
 | 
			
		||||
							
								
								
									
										111
									
								
								src/ui/itemcreationdialog.ui
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										111
									
								
								src/ui/itemcreationdialog.ui
									
										
									
									
									
										Normal file
									
								
							| 
						 | 
				
			
			@ -0,0 +1,111 @@
 | 
			
		|||
<?xml version="1.0" encoding="UTF-8"?>
 | 
			
		||||
<ui version="4.0">
 | 
			
		||||
 <class>ItemCreationDialog</class>
 | 
			
		||||
 <widget class="QDialog" name="ItemCreationDialog">
 | 
			
		||||
  <property name="geometry">
 | 
			
		||||
   <rect>
 | 
			
		||||
    <x>0</x>
 | 
			
		||||
    <y>0</y>
 | 
			
		||||
    <width>400</width>
 | 
			
		||||
    <height>140</height>
 | 
			
		||||
   </rect>
 | 
			
		||||
  </property>
 | 
			
		||||
  <property name="windowTitle">
 | 
			
		||||
   <string>Create Item</string>
 | 
			
		||||
  </property>
 | 
			
		||||
  <property name="windowIcon">
 | 
			
		||||
   <iconset resource="../../resources.qrc">
 | 
			
		||||
    <normaloff>:/images/UVOSicon.bmp</normaloff>:/images/UVOSicon.bmp</iconset>
 | 
			
		||||
  </property>
 | 
			
		||||
  <layout class="QVBoxLayout" name="verticalLayout_2">
 | 
			
		||||
   <item>
 | 
			
		||||
    <layout class="QHBoxLayout" name="horizontalLayout">
 | 
			
		||||
     <item>
 | 
			
		||||
      <widget class="QLabel" name="label">
 | 
			
		||||
       <property name="text">
 | 
			
		||||
        <string>Type</string>
 | 
			
		||||
       </property>
 | 
			
		||||
      </widget>
 | 
			
		||||
     </item>
 | 
			
		||||
     <item>
 | 
			
		||||
      <widget class="QComboBox" name="comboBox">
 | 
			
		||||
       <item>
 | 
			
		||||
        <property name="text">
 | 
			
		||||
         <string>Message</string>
 | 
			
		||||
        </property>
 | 
			
		||||
       </item>
 | 
			
		||||
      </widget>
 | 
			
		||||
     </item>
 | 
			
		||||
    </layout>
 | 
			
		||||
   </item>
 | 
			
		||||
   <item>
 | 
			
		||||
    <layout class="QHBoxLayout" name="horizontalLayout_2">
 | 
			
		||||
     <item>
 | 
			
		||||
      <widget class="QLabel" name="label_2">
 | 
			
		||||
       <property name="text">
 | 
			
		||||
        <string>Name</string>
 | 
			
		||||
       </property>
 | 
			
		||||
      </widget>
 | 
			
		||||
     </item>
 | 
			
		||||
     <item>
 | 
			
		||||
      <widget class="QLineEdit" name="lineEdit">
 | 
			
		||||
       <property name="text">
 | 
			
		||||
        <string>Item</string>
 | 
			
		||||
       </property>
 | 
			
		||||
      </widget>
 | 
			
		||||
     </item>
 | 
			
		||||
    </layout>
 | 
			
		||||
   </item>
 | 
			
		||||
   <item>
 | 
			
		||||
    <layout class="QVBoxLayout" name="verticalLayout"/>
 | 
			
		||||
   </item>
 | 
			
		||||
   <item>
 | 
			
		||||
    <widget class="QDialogButtonBox" name="buttonBox">
 | 
			
		||||
     <property name="orientation">
 | 
			
		||||
      <enum>Qt::Horizontal</enum>
 | 
			
		||||
     </property>
 | 
			
		||||
     <property name="standardButtons">
 | 
			
		||||
      <set>QDialogButtonBox::Cancel|QDialogButtonBox::Ok</set>
 | 
			
		||||
     </property>
 | 
			
		||||
    </widget>
 | 
			
		||||
   </item>
 | 
			
		||||
  </layout>
 | 
			
		||||
 </widget>
 | 
			
		||||
 <resources>
 | 
			
		||||
  <include location="../../resources.qrc"/>
 | 
			
		||||
 </resources>
 | 
			
		||||
 <connections>
 | 
			
		||||
  <connection>
 | 
			
		||||
   <sender>buttonBox</sender>
 | 
			
		||||
   <signal>accepted()</signal>
 | 
			
		||||
   <receiver>ItemCreationDialog</receiver>
 | 
			
		||||
   <slot>accept()</slot>
 | 
			
		||||
   <hints>
 | 
			
		||||
    <hint type="sourcelabel">
 | 
			
		||||
     <x>248</x>
 | 
			
		||||
     <y>254</y>
 | 
			
		||||
    </hint>
 | 
			
		||||
    <hint type="destinationlabel">
 | 
			
		||||
     <x>157</x>
 | 
			
		||||
     <y>274</y>
 | 
			
		||||
    </hint>
 | 
			
		||||
   </hints>
 | 
			
		||||
  </connection>
 | 
			
		||||
  <connection>
 | 
			
		||||
   <sender>buttonBox</sender>
 | 
			
		||||
   <signal>rejected()</signal>
 | 
			
		||||
   <receiver>ItemCreationDialog</receiver>
 | 
			
		||||
   <slot>reject()</slot>
 | 
			
		||||
   <hints>
 | 
			
		||||
    <hint type="sourcelabel">
 | 
			
		||||
     <x>316</x>
 | 
			
		||||
     <y>260</y>
 | 
			
		||||
    </hint>
 | 
			
		||||
    <hint type="destinationlabel">
 | 
			
		||||
     <x>286</x>
 | 
			
		||||
     <y>274</y>
 | 
			
		||||
    </hint>
 | 
			
		||||
   </hints>
 | 
			
		||||
  </connection>
 | 
			
		||||
 </connections>
 | 
			
		||||
</ui>
 | 
			
		||||
| 
						 | 
				
			
			@ -1,6 +1,7 @@
 | 
			
		|||
#include "itemscrollbox.h"
 | 
			
		||||
#include "ui_relayscrollbox.h"
 | 
			
		||||
#include "../items/auxitem.h"
 | 
			
		||||
#include "../items/messageitem.h"
 | 
			
		||||
 | 
			
		||||
ItemScrollBox::ItemScrollBox(QWidget *parent) :
 | 
			
		||||
    QWidget(parent),
 | 
			
		||||
| 
						 | 
				
			
			@ -24,11 +25,17 @@ void ItemScrollBox::addItem(std::weak_ptr<Item> item)
 | 
			
		|||
        {
 | 
			
		||||
            widgets_.push_back(new ItemWidget(item, true));
 | 
			
		||||
        }
 | 
			
		||||
        else if(dynamic_cast<MessageItem*>(workItem.get()))
 | 
			
		||||
        {
 | 
			
		||||
            widgets_.push_back(new ItemWidget(item, false, true));
 | 
			
		||||
        }
 | 
			
		||||
        else
 | 
			
		||||
        {
 | 
			
		||||
            widgets_.push_back(new ItemWidget(item));
 | 
			
		||||
        }
 | 
			
		||||
        ui->relayWidgetVbox->addWidget(widgets_.back());
 | 
			
		||||
        connect(widgets_.back(), &ItemWidget::deleteRequest, this, &ItemScrollBox::deleteRequest);
 | 
			
		||||
        connect(widgets_.back(), &ItemWidget::deleteRequest, this, &ItemScrollBox::removeItem);
 | 
			
		||||
    }
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -21,6 +21,10 @@ class ItemScrollBox : public QWidget
 | 
			
		|||
private:
 | 
			
		||||
    std::vector< ItemWidget* > widgets_;
 | 
			
		||||
 | 
			
		||||
signals:
 | 
			
		||||
    void deleteRequest(const ItemData& item);
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
public:
 | 
			
		||||
    explicit ItemScrollBox(QWidget *parent = nullptr);
 | 
			
		||||
    ~ItemScrollBox();
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -5,6 +5,7 @@
 | 
			
		|||
#include "../actors/sensoractor.h"
 | 
			
		||||
#include "../actors/timeractor.h"
 | 
			
		||||
#include "../actors/regulator.h"
 | 
			
		||||
#include "../actors/factoractor.h"
 | 
			
		||||
 | 
			
		||||
#include<memory>
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			@ -31,21 +32,17 @@ ItemSettingsDialog::ItemSettingsDialog(Item* item, QWidget *parent) :
 | 
			
		|||
        ui->label_address_lable->hide();
 | 
			
		||||
        ui->label_id_lable->hide();
 | 
			
		||||
    }
 | 
			
		||||
    ui->checkBox_auto->setChecked(item_->actorsActive());
 | 
			
		||||
 | 
			
		||||
    connect(ui->checkBox_auto, &QCheckBox::toggled, item_, &Relay::setActorsActive);
 | 
			
		||||
    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);
 | 
			
		||||
 | 
			
		||||
     ui->tableWidget->setHorizontalHeaderItem(0, new QTableWidgetItem("Actor"));
 | 
			
		||||
     ui->tableWidget->setHorizontalHeaderItem(1, new QTableWidgetItem("Action"));
 | 
			
		||||
     ui->tableWidget->setHorizontalHeaderItem(2, new QTableWidgetItem("Acts on"));
 | 
			
		||||
     ui->tableWidget->setHorizontalHeaderItem(3, new QTableWidgetItem("Enabled"));
 | 
			
		||||
     ui->tableWidget->setHorizontalHeaderItem(2, new QTableWidgetItem("Enabled"));
 | 
			
		||||
     ui->tableWidget->horizontalHeader()->setSectionResizeMode(0, QHeaderView::Stretch);
 | 
			
		||||
     ui->tableWidget->horizontalHeader()->resizeSection(1, 60);
 | 
			
		||||
     ui->tableWidget->horizontalHeader()->resizeSection(2, 60);
 | 
			
		||||
     ui->tableWidget->horizontalHeader()->resizeSection(3, 75);
 | 
			
		||||
     ui->tableWidget->horizontalHeader()->resizeSection(2, 75);
 | 
			
		||||
    loadActorList();
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			@ -63,8 +60,7 @@ void ItemSettingsDialog::loadActorList()
 | 
			
		|||
    {
 | 
			
		||||
        ui->tableWidget->setItem(i, 0, new QTableWidgetItem(item_->getActors()[i]->getName()));
 | 
			
		||||
        ui->tableWidget->setItem(i, 1, new QTableWidgetItem(item_->getActors()[i]->actionName()));
 | 
			
		||||
        ui->tableWidget->setItem(i, 2, new QTableWidgetItem("Item"));
 | 
			
		||||
        ui->tableWidget->setItem(i, 3, new QTableWidgetItem(item_->getActors()[i]->isActive() ? "Y" : "N"));
 | 
			
		||||
        ui->tableWidget->setItem(i, 2, new QTableWidgetItem(item_->getActors()[i]->isActive() ? "Y" : "N"));
 | 
			
		||||
    }
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			@ -79,11 +75,11 @@ void ItemSettingsDialog::addActor()
 | 
			
		|||
        actor = alarm;
 | 
			
		||||
        dialog = new ActorSettingsDialog(alarm, this);
 | 
			
		||||
    }
 | 
			
		||||
    else if(ui->comboBox->currentText() == "Sensor" &&  item_->getSensorStore() != nullptr)
 | 
			
		||||
    else if(ui->comboBox->currentText() == "Sensor")
 | 
			
		||||
    {
 | 
			
		||||
        SensorActor* sensorActor = new SensorActor();
 | 
			
		||||
        actor = sensorActor;
 | 
			
		||||
        dialog = new ActorSettingsDialog(sensorActor, item_->getSensorStore(), this);
 | 
			
		||||
        dialog = new ActorSettingsDialog(sensorActor, this);
 | 
			
		||||
    }
 | 
			
		||||
    else if(ui->comboBox->currentText() == "Timer" )
 | 
			
		||||
    {
 | 
			
		||||
| 
						 | 
				
			
			@ -91,11 +87,25 @@ void ItemSettingsDialog::addActor()
 | 
			
		|||
        actor = timerActor;
 | 
			
		||||
        dialog = new ActorSettingsDialog(timerActor, this);
 | 
			
		||||
    }
 | 
			
		||||
    else if(ui->comboBox->currentText() == "Regulator" &&  item_->getSensorStore() != nullptr)
 | 
			
		||||
    else if(ui->comboBox->currentText() == "Regulator")
 | 
			
		||||
    {
 | 
			
		||||
        Regulator* regulator = new Regulator();
 | 
			
		||||
        actor = regulator;
 | 
			
		||||
        dialog = new ActorSettingsDialog(regulator, item_->getSensorStore(), this);
 | 
			
		||||
        dialog = new ActorSettingsDialog(regulator, this);
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    else if(ui->comboBox->currentText() == "Polynomal")
 | 
			
		||||
    {
 | 
			
		||||
        PolynomalActor* polynomalActor = new PolynomalActor();
 | 
			
		||||
        actor = polynomalActor;
 | 
			
		||||
        dialog = new ActorSettingsDialog(polynomalActor, this);
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    else if(ui->comboBox->currentText() == "Multi Factor")
 | 
			
		||||
    {
 | 
			
		||||
        MultiFactorActor* polynomalActor = new MultiFactorActor();
 | 
			
		||||
        actor = polynomalActor;
 | 
			
		||||
        dialog = new ActorSettingsDialog(polynomalActor, this);
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			@ -133,13 +143,17 @@ void ItemSettingsDialog::editActor()
 | 
			
		|||
        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);
 | 
			
		||||
 | 
			
		||||
        ActorSettingsDialog* dialog;
 | 
			
		||||
 | 
			
		||||
        if(alarmTime) dialog = new ActorSettingsDialog(alarmTime, this);
 | 
			
		||||
        else if(regulator)  dialog = new ActorSettingsDialog(regulator, nullptr, this);
 | 
			
		||||
        else if(sensorActor) dialog = new ActorSettingsDialog(sensorActor, nullptr, this);
 | 
			
		||||
        else if(regulator)  dialog = new ActorSettingsDialog(regulator, this);
 | 
			
		||||
        else if(sensorActor) dialog = new ActorSettingsDialog(sensorActor, this);
 | 
			
		||||
        else if(timerActor) dialog = new ActorSettingsDialog(timerActor, this);
 | 
			
		||||
        else if(polynomalActor) dialog = new ActorSettingsDialog(polynomalActor, this);
 | 
			
		||||
        else if(factorActor) dialog = new ActorSettingsDialog(factorActor, this);
 | 
			
		||||
        else dialog = new ActorSettingsDialog(actor, this);
 | 
			
		||||
        dialog->setParent(this);
 | 
			
		||||
        dialog->show();
 | 
			
		||||
| 
						 | 
				
			
			@ -149,7 +163,7 @@ void ItemSettingsDialog::editActor()
 | 
			
		|||
        {
 | 
			
		||||
            ui->tableWidget->item(i, 0)->setText(item_->getActors()[i]->getName());
 | 
			
		||||
            ui->tableWidget->item(i, 1)->setText(item_->getActors()[i]->actionName());
 | 
			
		||||
            ui->tableWidget->item(i, 3)->setText(item_->getActors()[i]->isActive() ? "Y" : "N");
 | 
			
		||||
            ui->tableWidget->item(i, 2)->setText(item_->getActors()[i]->isActive() ? "Y" : "N");
 | 
			
		||||
        }
 | 
			
		||||
    }
 | 
			
		||||
}
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -94,13 +94,6 @@
 | 
			
		|||
     </item>
 | 
			
		||||
    </layout>
 | 
			
		||||
   </item>
 | 
			
		||||
   <item>
 | 
			
		||||
    <widget class="QCheckBox" name="checkBox_auto">
 | 
			
		||||
     <property name="text">
 | 
			
		||||
      <string>Actors enabled</string>
 | 
			
		||||
     </property>
 | 
			
		||||
    </widget>
 | 
			
		||||
   </item>
 | 
			
		||||
   <item>
 | 
			
		||||
    <widget class="QTableWidget" name="tableWidget">
 | 
			
		||||
     <property name="frameShape">
 | 
			
		||||
| 
						 | 
				
			
			@ -143,7 +136,7 @@
 | 
			
		|||
      <number>0</number>
 | 
			
		||||
     </property>
 | 
			
		||||
     <property name="columnCount">
 | 
			
		||||
      <number>4</number>
 | 
			
		||||
      <number>3</number>
 | 
			
		||||
     </property>
 | 
			
		||||
     <attribute name="horizontalHeaderVisible">
 | 
			
		||||
      <bool>false</bool>
 | 
			
		||||
| 
						 | 
				
			
			@ -163,7 +156,6 @@
 | 
			
		|||
     <column/>
 | 
			
		||||
     <column/>
 | 
			
		||||
     <column/>
 | 
			
		||||
     <column/>
 | 
			
		||||
    </widget>
 | 
			
		||||
   </item>
 | 
			
		||||
   <item>
 | 
			
		||||
| 
						 | 
				
			
			@ -214,7 +206,7 @@
 | 
			
		|||
       </item>
 | 
			
		||||
       <item>
 | 
			
		||||
        <property name="text">
 | 
			
		||||
         <string>Linear</string>
 | 
			
		||||
         <string>Polynomal</string>
 | 
			
		||||
        </property>
 | 
			
		||||
       </item>
 | 
			
		||||
       <item>
 | 
			
		||||
| 
						 | 
				
			
			@ -232,6 +224,11 @@
 | 
			
		|||
         <string>Timer</string>
 | 
			
		||||
        </property>
 | 
			
		||||
       </item>
 | 
			
		||||
       <item>
 | 
			
		||||
        <property name="text">
 | 
			
		||||
         <string>Multi Factor</string>
 | 
			
		||||
        </property>
 | 
			
		||||
       </item>
 | 
			
		||||
      </widget>
 | 
			
		||||
     </item>
 | 
			
		||||
     <item>
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -5,7 +5,7 @@
 | 
			
		|||
#include <QDebug>
 | 
			
		||||
#include <QSlider>
 | 
			
		||||
 | 
			
		||||
ItemWidget::ItemWidget(std::weak_ptr<Item> item, bool analog, QWidget *parent) :
 | 
			
		||||
ItemWidget::ItemWidget(std::weak_ptr<Item> item, bool analog, bool nameOnly, QWidget *parent) :
 | 
			
		||||
    QWidget(parent),
 | 
			
		||||
    item_(item),
 | 
			
		||||
    ui(new Ui::ItemWidget)
 | 
			
		||||
| 
						 | 
				
			
			@ -17,10 +17,12 @@ ItemWidget::ItemWidget(std::weak_ptr<Item> item, bool analog, QWidget *parent) :
 | 
			
		|||
        ui->horizontalSpacer->changeSize(0,0);
 | 
			
		||||
        ui->checkBox->hide();
 | 
			
		||||
    }
 | 
			
		||||
    else
 | 
			
		||||
    else if(nameOnly)
 | 
			
		||||
    {
 | 
			
		||||
        ui->checkBox->hide();
 | 
			
		||||
        ui->slider->hide();
 | 
			
		||||
    }
 | 
			
		||||
    else ui->slider->hide();
 | 
			
		||||
 | 
			
		||||
    if(auto workingRelay = item_.lock())
 | 
			
		||||
    {
 | 
			
		||||
| 
						 | 
				
			
			@ -32,11 +34,20 @@ ItemWidget::ItemWidget(std::weak_ptr<Item> item, bool analog, QWidget *parent) :
 | 
			
		|||
        else connect(ui->checkBox, &QCheckBox::toggled, this, &ItemWidget::moveToState);
 | 
			
		||||
        connect(ui->pushButton, &QPushButton::clicked, this, &ItemWidget::showSettingsDialog);
 | 
			
		||||
        connect(workingRelay.get(), &Relay::valueChanged, this, &ItemWidget::stateChanged);
 | 
			
		||||
        connect(ui->pushButton_Remove, &QPushButton::clicked, this, &ItemWidget::deleteItem);
 | 
			
		||||
 | 
			
		||||
    }
 | 
			
		||||
    else disable();
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
void ItemWidget::deleteItem()
 | 
			
		||||
{
 | 
			
		||||
    if(auto workingItem = item_.lock())
 | 
			
		||||
    {
 | 
			
		||||
        deleteRequest(*workingItem);
 | 
			
		||||
    }
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
void ItemWidget::moveToValue(int value)
 | 
			
		||||
{
 | 
			
		||||
    if(auto workingItem = item_.lock()) workingItem->setValue(value);
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -18,13 +18,18 @@ private:
 | 
			
		|||
 | 
			
		||||
    void disable();
 | 
			
		||||
 | 
			
		||||
signals:
 | 
			
		||||
 | 
			
		||||
    void deleteRequest(const ItemData& item);
 | 
			
		||||
 | 
			
		||||
private slots:
 | 
			
		||||
    void showSettingsDialog();
 | 
			
		||||
    void moveToState(bool state);
 | 
			
		||||
    void moveToValue(int value);
 | 
			
		||||
    void deleteItem();
 | 
			
		||||
 | 
			
		||||
public:
 | 
			
		||||
    explicit ItemWidget(std::weak_ptr<Item> item, bool analog = false, QWidget *parent = nullptr);
 | 
			
		||||
    explicit ItemWidget(std::weak_ptr<Item> item, bool analog = false,  bool nameOnly = false, QWidget *parent = nullptr);
 | 
			
		||||
    std::weak_ptr<Item> getItem();
 | 
			
		||||
    bool controles(const ItemData& relay);
 | 
			
		||||
    ~ItemWidget();
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -67,6 +67,25 @@
 | 
			
		|||
     </property>
 | 
			
		||||
    </widget>
 | 
			
		||||
   </item>
 | 
			
		||||
   <item>
 | 
			
		||||
    <widget class="QPushButton" name="pushButton_Remove">
 | 
			
		||||
     <property name="sizePolicy">
 | 
			
		||||
      <sizepolicy hsizetype="Fixed" vsizetype="Fixed">
 | 
			
		||||
       <horstretch>0</horstretch>
 | 
			
		||||
       <verstretch>0</verstretch>
 | 
			
		||||
      </sizepolicy>
 | 
			
		||||
     </property>
 | 
			
		||||
     <property name="maximumSize">
 | 
			
		||||
      <size>
 | 
			
		||||
       <width>30</width>
 | 
			
		||||
       <height>16777215</height>
 | 
			
		||||
      </size>
 | 
			
		||||
     </property>
 | 
			
		||||
     <property name="text">
 | 
			
		||||
      <string>X</string>
 | 
			
		||||
     </property>
 | 
			
		||||
    </widget>
 | 
			
		||||
   </item>
 | 
			
		||||
  </layout>
 | 
			
		||||
 </widget>
 | 
			
		||||
 <resources/>
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -1,42 +1,47 @@
 | 
			
		|||
#include "mainwindow.h"
 | 
			
		||||
#include "ui_mainwindow.h"
 | 
			
		||||
#include "itemscrollbox.h"
 | 
			
		||||
 | 
			
		||||
#include "itemsettingsdialog.h"
 | 
			
		||||
#include "itemcreationdialog.h"
 | 
			
		||||
#include "../mainobject.h"
 | 
			
		||||
 | 
			
		||||
MainWindow::MainWindow(Microcontroller *micro, PowerItem* powerItem, ItemStore* itemStore, SensorStore *sensorStore, bool master, QWidget *parent) :
 | 
			
		||||
MainWindow::MainWindow(MainObject * const mainObject, QWidget *parent) :
 | 
			
		||||
    QMainWindow(parent),
 | 
			
		||||
    ui(new Ui::MainWindow),
 | 
			
		||||
    colorChooser(this),
 | 
			
		||||
    _micro(micro),
 | 
			
		||||
    _powerItem(powerItem)
 | 
			
		||||
    _micro(&mainObject->micro),
 | 
			
		||||
    _powerItem(&mainObject->powerItem)
 | 
			
		||||
{
 | 
			
		||||
    ui->setupUi(this);
 | 
			
		||||
 | 
			
		||||
    if(!master) connect(ui->pushButton_broadcast, &QPushButton::clicked, this, &MainWindow::sigBrodcast);
 | 
			
		||||
    if(!mainObject->master) connect(ui->pushButton_broadcast, &QPushButton::clicked, this, &MainWindow::sigBrodcast);
 | 
			
		||||
    else ui->pushButton_broadcast->hide();
 | 
			
		||||
 | 
			
		||||
    connect(ui->pushButton_power, SIGNAL(clicked()), this, SLOT(showPowerItemDialog()));
 | 
			
		||||
 | 
			
		||||
    //Relays
 | 
			
		||||
    connect(ui->pushButton_refesh, SIGNAL(clicked()), _micro, SLOT(requestState()));
 | 
			
		||||
    connect(itemStore, &ItemStore::itemAdded, ui->relayList, &ItemScrollBox::addItem);
 | 
			
		||||
    connect(itemStore, &ItemStore::itemDeleted, ui->relayList, &ItemScrollBox::removeItem);
 | 
			
		||||
    if(mainObject->master)connect(ui->pushButton_refesh, &QPushButton::clicked, _micro, &Microcontroller::requestState);
 | 
			
		||||
    else connect(ui->pushButton_refesh, &QPushButton::clicked, &mainObject->broadCast, &BroadCast::requestJson);
 | 
			
		||||
    connect(&mainObject->items, &ItemStore::itemAdded, ui->relayList, &ItemScrollBox::addItem);
 | 
			
		||||
    connect(&mainObject->items, &ItemStore::itemDeleted, ui->relayList, &ItemScrollBox::removeItem);
 | 
			
		||||
 | 
			
		||||
    for(size_t i = 0; i < itemStore->getItems()->size(); ++i)
 | 
			
		||||
    for(size_t i = 0; i < mainObject->items.getItems()->size(); ++i)
 | 
			
		||||
    {
 | 
			
		||||
        ui->relayList->addItem(itemStore->getItems()->at(i));
 | 
			
		||||
        ui->relayList->addItem(mainObject->items.getItems()->at(i));
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    //Sensors
 | 
			
		||||
 | 
			
		||||
    ui->sensorListView->sensorsChanged(*(sensorStore->getSensors()));
 | 
			
		||||
    connect(sensorStore, &SensorStore::stateChenged, ui->sensorListView, &SensorListWidget::sensorsChanged);
 | 
			
		||||
    ui->sensorListView->setShowHidden(false);
 | 
			
		||||
    ui->sensorListView->sensorsChanged(*globalSensors.getSensors());
 | 
			
		||||
    connect(&globalSensors, &SensorStore::stateChenged, ui->sensorListView, &SensorListWidget::sensorsChanged);
 | 
			
		||||
 | 
			
		||||
    //RGB Leds
 | 
			
		||||
    connect(&colorChooser, SIGNAL(colorSelected(const QColor)), this, SLOT(slotChangedRgb(const QColor)));
 | 
			
		||||
    connect(ui->button_quit, SIGNAL(clicked()), this, SLOT(close()));
 | 
			
		||||
    connect(ui->button_color, SIGNAL(clicked()), &colorChooser, SLOT(show()));
 | 
			
		||||
 | 
			
		||||
    connect(ui->pushButton_addItem, &QPushButton::clicked, this, &MainWindow::showItemCreationDialog);
 | 
			
		||||
    connect(ui->relayList, &ItemScrollBox::deleteRequest, &mainObject->items, &ItemStore::removeItem);
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
MainWindow::~MainWindow()
 | 
			
		||||
| 
						 | 
				
			
			@ -56,6 +61,16 @@ void MainWindow::slotChangedRgb(const QColor color)
 | 
			
		|||
    _micro->changeRgbColor(color);
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
void MainWindow::showItemCreationDialog()
 | 
			
		||||
{
 | 
			
		||||
    ItemCreationDialog diag(this);
 | 
			
		||||
    diag.show();
 | 
			
		||||
    if(diag.exec())
 | 
			
		||||
    {
 | 
			
		||||
        createdItem(diag.item);
 | 
			
		||||
    }
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
void MainWindow::changeHeaderLableText(QString string)
 | 
			
		||||
{
 | 
			
		||||
    if(string.size() > 28)
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -14,6 +14,8 @@
 | 
			
		|||
#include "../broadcast.h"
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
class MainObject;
 | 
			
		||||
 | 
			
		||||
namespace Ui
 | 
			
		||||
{
 | 
			
		||||
class MainWindow;
 | 
			
		||||
| 
						 | 
				
			
			@ -24,7 +26,7 @@ class MainWindow : public QMainWindow
 | 
			
		|||
    Q_OBJECT
 | 
			
		||||
 | 
			
		||||
public:
 | 
			
		||||
    explicit MainWindow(Microcontroller *micro, PowerItem* powerItem, ItemStore* itemStore, SensorStore *sensorStore, bool master, QWidget *parent = nullptr);
 | 
			
		||||
    explicit MainWindow(MainObject * const mainObject, QWidget *parent = nullptr);
 | 
			
		||||
    ~MainWindow();
 | 
			
		||||
 | 
			
		||||
private:
 | 
			
		||||
| 
						 | 
				
			
			@ -39,12 +41,14 @@ private:
 | 
			
		|||
signals:
 | 
			
		||||
 | 
			
		||||
    void sigBrodcast();
 | 
			
		||||
    void createdItem(std::shared_ptr<Item> item);
 | 
			
		||||
 | 
			
		||||
private slots:
 | 
			
		||||
 | 
			
		||||
    //RGB
 | 
			
		||||
    void slotChangedRgb(const QColor color);
 | 
			
		||||
    void showPowerItemDialog();
 | 
			
		||||
    void showItemCreationDialog();
 | 
			
		||||
 | 
			
		||||
public slots:
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -44,7 +44,7 @@
 | 
			
		|||
   </property>
 | 
			
		||||
   <layout class="QHBoxLayout" name="horizontalLayout_10" stretch="0,1">
 | 
			
		||||
    <item>
 | 
			
		||||
     <layout class="QVBoxLayout" name="verticalLayout" stretch="0,1,0">
 | 
			
		||||
     <layout class="QVBoxLayout" name="verticalLayout" stretch="0,0,0">
 | 
			
		||||
      <item>
 | 
			
		||||
       <widget class="QLabel" name="label_serialRecive">
 | 
			
		||||
        <property name="sizePolicy">
 | 
			
		||||
| 
						 | 
				
			
			@ -81,15 +81,9 @@
 | 
			
		|||
           <property name="selectionMode">
 | 
			
		||||
            <enum>QAbstractItemView::NoSelection</enum>
 | 
			
		||||
           </property>
 | 
			
		||||
           <property name="showGrid">
 | 
			
		||||
           <property name="showGrid" stdset="0">
 | 
			
		||||
            <bool>false</bool>
 | 
			
		||||
           </property>
 | 
			
		||||
           <property name="gridStyle">
 | 
			
		||||
            <enum>Qt::NoPen</enum>
 | 
			
		||||
           </property>
 | 
			
		||||
           <attribute name="verticalHeaderVisible">
 | 
			
		||||
            <bool>false</bool>
 | 
			
		||||
           </attribute>
 | 
			
		||||
          </widget>
 | 
			
		||||
         </item>
 | 
			
		||||
        </layout>
 | 
			
		||||
| 
						 | 
				
			
			@ -190,7 +184,14 @@
 | 
			
		|||
        <item>
 | 
			
		||||
         <widget class="QPushButton" name="pushButton_broadcast">
 | 
			
		||||
          <property name="text">
 | 
			
		||||
           <string>Broadcast</string>
 | 
			
		||||
           <string>Save</string>
 | 
			
		||||
          </property>
 | 
			
		||||
         </widget>
 | 
			
		||||
        </item>
 | 
			
		||||
        <item>
 | 
			
		||||
         <widget class="QPushButton" name="pushButton_addItem">
 | 
			
		||||
          <property name="text">
 | 
			
		||||
           <string>Add Item</string>
 | 
			
		||||
          </property>
 | 
			
		||||
         </widget>
 | 
			
		||||
        </item>
 | 
			
		||||
| 
						 | 
				
			
			@ -219,17 +220,17 @@
 | 
			
		|||
 </widget>
 | 
			
		||||
 <layoutdefault spacing="6" margin="11"/>
 | 
			
		||||
 <customwidgets>
 | 
			
		||||
  <customwidget>
 | 
			
		||||
   <class>SensorListWidget</class>
 | 
			
		||||
   <extends>QListView</extends>
 | 
			
		||||
   <header location="global">../src/ui/sensorlistwidget.h</header>
 | 
			
		||||
  </customwidget>
 | 
			
		||||
  <customwidget>
 | 
			
		||||
   <class>ItemScrollBox</class>
 | 
			
		||||
   <extends>QWidget</extends>
 | 
			
		||||
   <header location="global">../src/ui/itemscrollbox.h</header>
 | 
			
		||||
   <container>1</container>
 | 
			
		||||
  </customwidget>
 | 
			
		||||
  <customwidget>
 | 
			
		||||
   <class>SensorListWidget</class>
 | 
			
		||||
   <extends>QTableWidget</extends>
 | 
			
		||||
   <header location="global">../src/ui/sensorlistwidget.h</header>
 | 
			
		||||
  </customwidget>
 | 
			
		||||
 </customwidgets>
 | 
			
		||||
 <resources>
 | 
			
		||||
  <include location="../../resources.qrc"/>
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -3,7 +3,7 @@
 | 
			
		|||
#include <QDebug>
 | 
			
		||||
#include <QHeaderView>
 | 
			
		||||
 | 
			
		||||
SensorListWidget::SensorListWidget(QWidget *parent): QTableWidget(parent)
 | 
			
		||||
SensorListWidget::SensorListWidget(const bool showHidden, QWidget *parent): QTableWidget(parent), showHidden_(showHidden)
 | 
			
		||||
{
 | 
			
		||||
    setColumnCount(2);
 | 
			
		||||
    setSelectionBehavior(QAbstractItemView::SelectRows);
 | 
			
		||||
| 
						 | 
				
			
			@ -13,7 +13,7 @@ SensorListWidget::SensorListWidget(QWidget *parent): QTableWidget(parent)
 | 
			
		|||
    setHorizontalHeaderItem(1, new QTableWidgetItem("Value"));
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
SensorListWidget::SensorListWidget(SensorStore& sensorStore, QWidget* parent): QTableWidget (parent)
 | 
			
		||||
SensorListWidget::SensorListWidget(SensorStore& sensorStore, const bool showHidden, QWidget* parent): QTableWidget (parent), showHidden_(showHidden)
 | 
			
		||||
{
 | 
			
		||||
      sensorsChanged(*(sensorStore.getSensors()));
 | 
			
		||||
}
 | 
			
		||||
| 
						 | 
				
			
			@ -23,25 +23,47 @@ void SensorListWidget::sensorsChanged(std::vector<Sensor> sensors)
 | 
			
		|||
    clear();
 | 
			
		||||
    setHorizontalHeaderItem(0, new QTableWidgetItem("Sensor"));
 | 
			
		||||
    setHorizontalHeaderItem(1, new QTableWidgetItem("Value"));
 | 
			
		||||
    setRowCount(sensors.size());
 | 
			
		||||
    size_t nonHiddenCount = sensors.size();
 | 
			
		||||
    if(!showHidden_)
 | 
			
		||||
    {
 | 
			
		||||
        nonHiddenCount = 0;
 | 
			
		||||
        for(size_t i = 0; i < sensors.size(); ++i)
 | 
			
		||||
        {
 | 
			
		||||
            if(!sensors[i].hidden) nonHiddenCount++;
 | 
			
		||||
        }
 | 
			
		||||
    }
 | 
			
		||||
    size_t listLen = 0;
 | 
			
		||||
    for(size_t i = 0; i < sensors.size(); ++i) if(showHidden_ || !sensors[i].hidden) ++listLen;
 | 
			
		||||
    setRowCount(static_cast<int>(listLen));
 | 
			
		||||
    size_t row = 0;
 | 
			
		||||
    for(size_t i = 0; i < sensors.size(); ++i)
 | 
			
		||||
    {
 | 
			
		||||
        QString itemString;
 | 
			
		||||
        itemString.append(QString::number(sensors[i].field));
 | 
			
		||||
        itemString.append(' ');
 | 
			
		||||
        if(showHidden_ || !sensors[i].hidden)
 | 
			
		||||
        {
 | 
			
		||||
            QString itemString;
 | 
			
		||||
            itemString.append(QString::number(sensors[i].field));
 | 
			
		||||
            itemString.append(' ');
 | 
			
		||||
 | 
			
		||||
        if(sensors[i].type == Sensor::TYPE_DOOR)
 | 
			
		||||
        {
 | 
			
		||||
            if(sensors[i].field) itemString.append("\"Open\"");
 | 
			
		||||
            else itemString.append("\"Closed\"");
 | 
			
		||||
            if(sensors[i].type == Sensor::TYPE_DOOR)
 | 
			
		||||
            {
 | 
			
		||||
                if(static_cast<bool>(sensors[i].field)) itemString.append("\"Open\"");
 | 
			
		||||
                else itemString.append("\"Closed\"");
 | 
			
		||||
            }
 | 
			
		||||
            else if(sensors[i].type == Sensor::TYPE_AUDIO_OUTPUT)
 | 
			
		||||
            {
 | 
			
		||||
                if(static_cast<bool>(sensors[i].field)) itemString.append("\"Playing\"");
 | 
			
		||||
                else itemString.append("\"Silent\"");
 | 
			
		||||
            }
 | 
			
		||||
 | 
			
		||||
            setItem(static_cast<int>(row), 0, new QTableWidgetItem(sensors[i].name + (sensors[i].hidden ? "(H)" : "")));
 | 
			
		||||
            setItem(static_cast<int>(row), 1, new QTableWidgetItem(itemString));
 | 
			
		||||
            ++row;
 | 
			
		||||
        }
 | 
			
		||||
        else if(sensors[i].type == Sensor::TYPE_AUDIO_OUTPUT)
 | 
			
		||||
        {
 | 
			
		||||
            if(sensors[i].field) itemString.append("\"Playing\"");
 | 
			
		||||
            else itemString.append("\"Silent\"");
 | 
			
		||||
        }
 | 
			
		||||
        setItem(i, 0, new QTableWidgetItem(sensors[i].name));
 | 
			
		||||
        setItem(i, 1, new QTableWidgetItem(itemString));
 | 
			
		||||
    }
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
void SensorListWidget::setShowHidden(const bool showHidden)
 | 
			
		||||
{
 | 
			
		||||
    showHidden_=showHidden;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -6,11 +6,15 @@
 | 
			
		|||
class SensorListWidget : public QTableWidget
 | 
			
		||||
{
 | 
			
		||||
    Q_OBJECT
 | 
			
		||||
 | 
			
		||||
    bool showHidden_;
 | 
			
		||||
 | 
			
		||||
public:
 | 
			
		||||
 | 
			
		||||
    SensorListWidget(QWidget *parent = nullptr);
 | 
			
		||||
    SensorListWidget(SensorStore& sensorStore, QWidget* parent = nullptr);
 | 
			
		||||
    SensorListWidget(const bool showHidden = true, QWidget *parent = nullptr);
 | 
			
		||||
    SensorListWidget(SensorStore& sensorStore, const bool showHidden = true, QWidget* parent = nullptr);
 | 
			
		||||
    virtual ~SensorListWidget(){}
 | 
			
		||||
    void setShowHidden(const bool showHidden);
 | 
			
		||||
 | 
			
		||||
public slots:
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue