From ad75b0974bb4aa39abc6b3d3da0047ebd7a1eaf0 Mon Sep 17 00:00:00 2001 From: Carl Philipp Klemm Date: Mon, 27 Apr 2026 22:37:31 +0200 Subject: [PATCH] Remove factor actor --- CMakeLists.txt | 5 - src/actors/actor.cpp | 2 - src/actors/factoractor.cpp | 81 ------------- src/actors/factoractor.h | 59 ---------- src/ui/actorsettingsdialog.cpp | 10 -- src/ui/actorsettingsdialog.h | 2 - src/ui/actorwidgets/factoractorwidget.cpp | 84 ------------- src/ui/actorwidgets/factoractorwidget.h | 31 ----- src/ui/actorwidgets/factoractorwidget.ui | 136 ---------------------- src/ui/itemsettingsdialog.cpp | 11 +- src/ui/itemsettingsdialog.ui | 35 +++--- 11 files changed, 15 insertions(+), 441 deletions(-) delete mode 100644 src/actors/factoractor.cpp delete mode 100644 src/actors/factoractor.h delete mode 100644 src/ui/actorwidgets/factoractorwidget.cpp delete mode 100644 src/ui/actorwidgets/factoractorwidget.h delete mode 100644 src/ui/actorwidgets/factoractorwidget.ui diff --git a/CMakeLists.txt b/CMakeLists.txt index 5990efc..c8fd913 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -55,8 +55,6 @@ set(SHINTERFACE_CORE_SOURCES src/actors/actor.h src/actors/actor.cpp - src/actors/factoractor.h - src/actors/factoractor.cpp src/actors/polynomalactor.h src/actors/polynomalactor.cpp src/actors/sensoractor.h @@ -151,8 +149,6 @@ add_executable(smartvos src/ui/sensorsettingsdialog.h src/ui/sensorsettingsdialog.cpp - src/ui/actorwidgets/factoractorwidget.h - src/ui/actorwidgets/factoractorwidget.cpp src/ui/actorwidgets/polynomalactorwidget.h src/ui/actorwidgets/polynomalactorwidget.cpp src/ui/actorwidgets/sensoractorwidget.h @@ -184,7 +180,6 @@ target_sources(smartvos src/ui/itemsettingsdialog.ui src/ui/actorsettingsdialog.ui src/ui/sensorsettingsdialog.ui - src/ui/actorwidgets/factoractorwidget.ui src/ui/actorwidgets/polynomalactorwidget.ui src/ui/actorwidgets/sensoractorwidget.ui src/ui/actorwidgets/timeractorwidget.ui diff --git a/src/actors/actor.cpp b/src/actors/actor.cpp index 15a9919..b87a074 100644 --- a/src/actors/actor.cpp +++ b/src/actors/actor.cpp @@ -6,7 +6,6 @@ #include "timeractor.h" #include "regulator.h" #include "polynomalactor.h" -#include "factoractor.h" Actor::Actor(QObject *parent): Item(QRandomGenerator::global()->generate(), "", 0, parent) { @@ -111,7 +110,6 @@ std::shared_ptr Actor::createActor(const QString& type) else if(type == "Timer") actor = std::shared_ptr(new TimerActor()); else if(type == "Regulator") actor = std::shared_ptr(new Regulator()); else if(type == "Polynomal") actor = std::shared_ptr(new PolynomalActor()); - else if(type == "MultiFactor") actor = std::shared_ptr(new MultiFactorActor()); else if(type == "Actor") actor = std::shared_ptr(new Actor()); return actor; } diff --git a/src/actors/factoractor.cpp b/src/actors/factoractor.cpp deleted file mode 100644 index cadd017..0000000 --- a/src/actors/factoractor.cpp +++ /dev/null @@ -1,81 +0,0 @@ -#include "factoractor.h" - -MultiFactorActor::MultiFactorActor(Actor* factorActor, const uint preCancleMin, QObject *parent): - Actor(parent), - factorActor_(factorActor), - preCancleMin_(preCancleMin) -{ - activationTime.setMSecsSinceEpoch(0); - if(factorActor) - connect(factorActor, &Actor::sigItemUpdate, this, &MultiFactorActor::factorActorSlot); -} - -void MultiFactorActor::factorActorSlot(ItemUpdateRequest update) -{ - if(update.payload.getValue() == factorDirection) - { - activationTime = QDateTime::currentDateTime(); - } -} - -void MultiFactorActor::enactValue(uint8_t value) -{ - if(value) - { - QDateTime current = QDateTime::currentDateTime(); - if(current.addSecs(-preCancleMin_*60) > activationTime ) - { - performAction(); - } - exausted = true; - for(size_t i = 0; i < getActors().size(); ++i) if(!getActors()[i]->isExausted()) - exausted = false; - } -} - -QString MultiFactorActor::getName() const -{ - if(name_.size() > 0) return name_; - else - { - QString string; - string = "Multi Factor \"" + (factorActor_ ? factorActor_->getName() : "NULL") + "\""; - return string; - } -} - -void MultiFactorActor::setFactorActor(std::shared_ptr factorActor) -{ - factorActor_=factorActor; - connect(factorActor_.get(), &Actor::sigItemUpdate, this, &MultiFactorActor::factorActorSlot); -} - -void MultiFactorActor::store(QJsonObject &json) -{ - json["Type"] = "MultiFactor"; - Actor::store(json); - json["PreCancleMinutes"] = static_cast(preCancleMin_); - json["FactorDirection"] = factorDirection; - QJsonObject factorActorObject; - if(factorActor_) - { - factorActor_->store(factorActorObject); - } -} - -void MultiFactorActor::load(const QJsonObject &json, bool preserve) -{ - Actor::load(json, preserve); - preCancleMin_ = static_cast(json["PreCancleMinutes"].toInt(10)); - factorDirection = json["FacotorDirection"].toBool(true); - if(json["FactorActor"].isObject()) - { - factorActor_ = Actor::loadActor(json["FactorActor"].toObject()); - } - if(factorActor_) - { - connect(factorActor_.get(), &Actor::sigItemUpdate, this, &MultiFactorActor::factorActorSlot); - } -} - - diff --git a/src/actors/factoractor.h b/src/actors/factoractor.h deleted file mode 100644 index 97a6814..0000000 --- a/src/actors/factoractor.h +++ /dev/null @@ -1,59 +0,0 @@ -#ifndef REMINDERACTOR_H -#define REMINDERACTOR_H - -#include -#include "actor.h" - -class MultiFactorActor: public Actor -{ -private: - - std::shared_ptr factorActor_; - QDateTime activationTime; - uint preCancleMin_; - - bool factorDirection = true; - -private slots: - - void factorActorSlot(ItemUpdateRequest update); - -public slots: - - virtual void enactValue(uint8_t value) override; - -public: - - MultiFactorActor(Actor* FactorActor = nullptr, const uint preCancleMin = 10, QObject *parent = nullptr); - - virtual QString getName() const override; - - void setFactorActor(std::shared_ptr factorActor); - std::shared_ptr getFactorActor() - { - return factorActor_; - } - void setFactorDirection(const bool direction) - { - factorDirection = direction; - } - bool getFactorDirection() - { - return factorDirection; - } - uint getPreCancleTime() - { - return preCancleMin_; - } - void setPreCancleTime(uint minutes) - { - preCancleMin_ = minutes; - } - - virtual ~MultiFactorActor() {} - - virtual void store(QJsonObject& json) override; - virtual void load(const QJsonObject& json, bool preserve) override; -}; - -#endif // REMINDERACTOR_H diff --git a/src/ui/actorsettingsdialog.cpp b/src/ui/actorsettingsdialog.cpp index ccd17e5..e010771 100644 --- a/src/ui/actorsettingsdialog.cpp +++ b/src/ui/actorsettingsdialog.cpp @@ -59,16 +59,6 @@ ActorSettingsDialog::ActorSettingsDialog(std::shared_ptr actor, ui->vertlayout->addWidget(widget); } -ActorSettingsDialog::ActorSettingsDialog(std::shared_ptr actor, QWidget *parent) : - QDialog(parent), - actor_(actor), - ui(new Ui::ActorSettingsDialog) -{ - init(); - widget = new FactorActorWidget(actor, this); - ui->vertlayout->addWidget(widget); -} - ActorSettingsDialog::ActorSettingsDialog(std::shared_ptr actor, QWidget *parent) : QDialog(parent), actor_(actor), diff --git a/src/ui/actorsettingsdialog.h b/src/ui/actorsettingsdialog.h index 16c4d68..fc64a97 100644 --- a/src/ui/actorsettingsdialog.h +++ b/src/ui/actorsettingsdialog.h @@ -8,7 +8,6 @@ #include "actorwidgets/timeractorwidget.h" #include "actorwidgets/regulatorwdiget.h" #include "actorwidgets/polynomalactorwidget.h" -#include "actorwidgets/factoractorwidget.h" namespace Ui { @@ -31,7 +30,6 @@ public: ActorSettingsDialog(std::shared_ptr actor, QWidget *parent = nullptr); ActorSettingsDialog(std::shared_ptr actor, QWidget *parent = nullptr); ActorSettingsDialog(std::shared_ptr actor, QWidget *parent = nullptr); - ActorSettingsDialog(std::shared_ptr actor, QWidget *parent = nullptr); ActorSettingsDialog(std::shared_ptr actor, QWidget *parent); ~ActorSettingsDialog(); diff --git a/src/ui/actorwidgets/factoractorwidget.cpp b/src/ui/actorwidgets/factoractorwidget.cpp deleted file mode 100644 index deee281..0000000 --- a/src/ui/actorwidgets/factoractorwidget.cpp +++ /dev/null @@ -1,84 +0,0 @@ -#include "factoractorwidget.h" -#include "ui_factoractorwidget.h" -#include "../actorsettingsdialog.h" - -FactorActorWidget::FactorActorWidget(std::shared_ptr 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(&QSpinBox::valueChanged), this, &FactorActorWidget::setPreCancleTime); -} - -FactorActorWidget::~FactorActorWidget() -{ - delete ui; -} - -void FactorActorWidget::createFactorActor() -{ - ActorSettingsDialog* dialog = nullptr; - std::shared_ptr actor = nullptr; - - if(ui->comboBox->currentText() == "Alarm") - { - std::shared_ptr alarm = std::shared_ptr(new AlarmTime); - actor = alarm; - dialog = new ActorSettingsDialog(alarm, this); - } - else if(ui->comboBox->currentText() == "Sensor") - { - std::shared_ptr sensorActor = std::shared_ptr(new SensorActor()); - actor = sensorActor; - dialog = new ActorSettingsDialog(sensorActor, this); - } - else if(ui->comboBox->currentText() == "Timer" ) - { - std::shared_ptr timerActor = std::shared_ptr(new TimerActor()); - actor = timerActor; - dialog = new ActorSettingsDialog(timerActor, this); - } - else if(ui->comboBox->currentText() == "Regulator") - { - std::shared_ptr regulator = std::shared_ptr(new Regulator()); - actor = regulator; - dialog = new ActorSettingsDialog(regulator, this); - } - - else if(ui->comboBox->currentText() == "Polynomal") - { - std::shared_ptr polynomalActor = std::shared_ptr(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()); - } - 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); -} diff --git a/src/ui/actorwidgets/factoractorwidget.h b/src/ui/actorwidgets/factoractorwidget.h deleted file mode 100644 index 37717b2..0000000 --- a/src/ui/actorwidgets/factoractorwidget.h +++ /dev/null @@ -1,31 +0,0 @@ -#ifndef FACTORACTORWIDGET_H -#define FACTORACTORWIDGET_H - -#include -#include "../../actors/factoractor.h" - -namespace Ui -{ -class FactorActorWidget; -} - -class FactorActorWidget : public QWidget -{ - Q_OBJECT - - std::shared_ptr actor_; - -public: - explicit FactorActorWidget(std::shared_ptr 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 diff --git a/src/ui/actorwidgets/factoractorwidget.ui b/src/ui/actorwidgets/factoractorwidget.ui deleted file mode 100644 index 860f95f..0000000 --- a/src/ui/actorwidgets/factoractorwidget.ui +++ /dev/null @@ -1,136 +0,0 @@ - - - FactorActorWidget - - - - 0 - 0 - 395 - 169 - - - - Form - - - - - - - - - Sensor - - - - - Polynomal - - - - - Alarm - - - - - Timer - - - - - Regulator - - - - - - - - None - - - - - - - - 0 - 0 - - - - Create Factor - - - - - - - Factor Direciton: - - - - - - - - True - - - - - False - - - - - - - - Current Factor: - - - - - - - - - - - Factor time tollerance - - - - - - - 10000 - - - 10 - - - - - - - - 0 - 0 - - - - Min - - - - - - - - - - diff --git a/src/ui/itemsettingsdialog.cpp b/src/ui/itemsettingsdialog.cpp index adc3b06..07a2ddd 100644 --- a/src/ui/itemsettingsdialog.cpp +++ b/src/ui/itemsettingsdialog.cpp @@ -6,7 +6,6 @@ #include "../actors/sensoractor.h" #include "../actors/timeractor.h" #include "../actors/regulator.h" -#include "../actors/factoractor.h" #include "../items/messageitem.h" #include "../items/systemitem.h" #include "itemsettingswidgets/messageitemsettingswidget.h" @@ -152,12 +151,7 @@ void ItemSettingsDialog::addActor() dialog = new ActorSettingsDialog(polynomalActor, this); } - else if(ui->comboBox->currentText() == "Multi Factor") - { - std::shared_ptr polynomalActor = std::shared_ptr(new MultiFactorActor); - actor = polynomalActor; - dialog = new ActorSettingsDialog(polynomalActor, this); - } + if(dialog != nullptr) @@ -194,7 +188,6 @@ void ItemSettingsDialog::editActor() std::shared_ptr sensorActor = std::dynamic_pointer_cast(actor); std::shared_ptr timerActor = std::dynamic_pointer_cast(actor); std::shared_ptr polynomalActor = std::dynamic_pointer_cast(actor); - std::shared_ptr factorActor = std::dynamic_pointer_cast(actor); ActorSettingsDialog* dialog; @@ -208,8 +201,6 @@ void ItemSettingsDialog::editActor() 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); diff --git a/src/ui/itemsettingsdialog.ui b/src/ui/itemsettingsdialog.ui index c7f4113..5820fce 100644 --- a/src/ui/itemsettingsdialog.ui +++ b/src/ui/itemsettingsdialog.ui @@ -14,14 +14,14 @@ Item Settings - + :/images/UVOSicon.bmp:/images/UVOSicon.bmp - QFormLayout::AllNonFixedFieldsGrow + QFormLayout::FieldGrowthPolicy::AllNonFixedFieldsGrow 0 @@ -35,7 +35,7 @@ Name: - Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter + Qt::AlignmentFlag::AlignRight|Qt::AlignmentFlag::AlignTrailing|Qt::AlignmentFlag::AlignVCenter @@ -48,13 +48,13 @@ - Qt::LeftToRight + Qt::LayoutDirection::LeftToRight TextLabel - Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter + Qt::AlignmentFlag::AlignRight|Qt::AlignmentFlag::AlignTrailing|Qt::AlignmentFlag::AlignVCenter @@ -87,19 +87,19 @@ - QFrame::StyledPanel + QFrame::Shape::StyledPanel - Qt::ScrollBarAsNeeded + Qt::ScrollBarPolicy::ScrollBarAsNeeded - Qt::ScrollBarAlwaysOff + Qt::ScrollBarPolicy::ScrollBarAlwaysOff false - QAbstractItemView::NoEditTriggers + QAbstractItemView::EditTrigger::NoEditTriggers false @@ -111,13 +111,13 @@ false - QAbstractItemView::SelectRows + QAbstractItemView::SelectionBehavior::SelectRows false - Qt::SolidLine + Qt::PenStyle::SolidLine false @@ -214,11 +214,6 @@ Timer - - - Multi Factor - - @@ -239,18 +234,16 @@ - Qt::Horizontal + Qt::Orientation::Horizontal - QDialogButtonBox::Ok + QDialogButtonBox::StandardButton::Ok - - - + buttonBox