FemaLocalSoftware/sensordialog.cpp
lopata29435_NSK bb95803fbd fix(1)
2025-01-10 01:42:34 +07:00

153 lines
5.0 KiB
C++

#include "sensordialog.h"
#include "ui_sensordialog.h"
#include "savesensorservice.h"
#include "sensorlogervice.h"
#include <QCloseEvent>
#include <QPainterPath>
SensorDialog::SensorDialog(QWidget *parent, SensorWidget *sensor, HttpClient *httpClient)
: QDialog(parent)
, ui(new Ui::SensorDialog)
, sensorWidget(sensor)
, _httpClient(httpClient)
{
ui->setupUi(this);
ui->isAlarm->addItems({"Да", "Нет"});
ui->isAlarm->setCurrentText(sensorWidget->getSensor().isAlarmEnabled ? "Да" : "Нет");
ui->isBooled->addItems({"Да", "Нет"});
ui->isBooled->setCurrentText(sensorWidget->getSensor().isBooled ? "Да" : "Нет");
ui->isVisible->addItems({"Да", "Нет"});
ui->isVisible->setCurrentText(sensorWidget->getSensor().isHide ? "Да" : "Нет");
ui->saveButton->setCursor(Qt::PointingHandCursor);
ui->cancelButton->setCursor(Qt::PointingHandCursor);
ui->nameHeader->setText(sensorWidget->getSensor().id);
ui->name->setText(sensorWidget->getSensor().name);
ui->unitName->setText(sensorWidget->getSensor().unitName);
ui->alarmLow->setText(QString::number(sensorWidget->getSensor().alarmLowerBound));
ui->alarmUp->setText(QString::number(sensorWidget->getSensor().alarmUpperBound));
ui->alarmCooldown->setText(QString::number(sensorWidget->getSensor().alarmCooldown));
SensorLogService *sensorLogService = new SensorLogService(httpClient);
sensorLogs = sensorLogService->getSensorLog(sensorWidget->getSensor().id);
sensorC = sensorWidget->getSensor();
sensorLogsC = sensorLogs;
ui->logError->setText(sensorLogs.getLogError());
ui->logManual->setText(sensorLogs.getLogManual());
ui->alarmSleepage->setText(QString::number(sensorLogs.getAlarmSleepage()));
ui->logHugeError->setText(sensorLogs.getLogHugeError());
connect(ui->cancelButton, &QPushButton::clicked, this, [this]() {
isSavingSuccess = false;
close();
});
connect(ui->saveButton, &QPushButton::clicked, this, &SensorDialog::onSaveButtonClicked);
connect(ui->isAlarm, &QComboBox::currentTextChanged, this, &SensorDialog::onIsAlarmChanged);
connect(ui->isBooled, &QComboBox::currentTextChanged, this, &SensorDialog::onIsBooledChanged);
connect(ui->isVisible, &QComboBox::currentTextChanged, this, &SensorDialog::onIsVisibleChanged);
connect(ui->name, &QLineEdit::textChanged, this, &SensorDialog::onNameChanged);
connect(ui->unitName, &QLineEdit::textChanged, this, &SensorDialog::onUnitNameChanged);
connect(ui->alarmLow, &QLineEdit::textChanged, this, &SensorDialog::onAlarmLowChanged);
connect(ui->alarmUp, &QLineEdit::textChanged, this, &SensorDialog::onAlarmUpChanged);
connect(ui->alarmCooldown, &QLineEdit::textChanged, this, &SensorDialog::onAlarmCooldownChanged);
connect(ui->logError, &QTextEdit::textChanged, this, &SensorDialog::onLogErrorChanged);
connect(ui->logManual, &QTextEdit::textChanged, this, &SensorDialog::onLogManualChanged);
connect(ui->alarmSleepage, &QLineEdit::textChanged, this, &SensorDialog::onAlarmSleepageChanged);
connect(ui->logHugeError, &QTextEdit::textChanged, this, &SensorDialog::onLogHugeErrorChanged);
}
void SensorDialog::onIsAlarmChanged(const QString &value)
{
sensorC.isAlarmEnabled = (value == "Да");
}
void SensorDialog::onIsBooledChanged(const QString &value)
{
sensorC.isBooled = (value == "Да");
}
void SensorDialog::onIsVisibleChanged(const QString &value)
{
sensorC.isHide = (value == "Да");
}
void SensorDialog::onNameChanged(const QString &value)
{
sensorC.name = value;
}
void SensorDialog::onUnitNameChanged(const QString &value)
{
sensorC.unitName = value;
}
void SensorDialog::onAlarmLowChanged(const QString &value)
{
sensorC.alarmLowerBound = value.toDouble();
}
void SensorDialog::onAlarmUpChanged(const QString &value)
{
sensorC.alarmUpperBound = value.toDouble();
}
void SensorDialog::onAlarmCooldownChanged(const QString &value)
{
sensorC.alarmCooldown = value.toDouble();
}
void SensorDialog::onLogErrorChanged()
{
sensorLogsC.setLogError(ui->logError->toPlainText());
}
void SensorDialog::onLogManualChanged()
{
sensorLogsC.setLogManual(ui->logManual->toPlainText());
}
void SensorDialog::onAlarmSleepageChanged(const QString &value)
{
sensorLogsC.setAlarmSleepage(value.toInt());
}
void SensorDialog::onLogHugeErrorChanged()
{
sensorLogsC.setLogHugeError(ui->logHugeError->toPlainText());
}
void SensorDialog::onSaveButtonClicked()
{
sensorWidget->setSensor(sensorC);
SaveSensorService *saveSensorService = new SaveSensorService(_httpClient);
if (saveSensorService->saveSensorLog(sensorC, sensorLogsC)) {
isSavingSuccess = true;
emit resultReady(SaveSuccess);
accept();
} else {
isSavingSuccess = false;
emit resultReady(SaveError);
reject();
}
}
void SensorDialog::closeEvent(QCloseEvent *event)
{
if (!isSavingSuccess) {
emit resultReady(NoSave);
}
event->accept();
}
SensorDialog::~SensorDialog()
{
delete ui;
}