Files
qt5-legatus-legacy/Lts/Plugins/AlarmManagement/Gui/ConfigAlarm/alm_dialog.h
T
2026-08-13 18:33:10 +02:00

86 lines
2.1 KiB
C++
Executable File

/**
* @RDE_HEADER@
* Alarm Configuration
* $Id$
* $HeadURL$
* $Author$
* Created by Mike Wille, SLSE, 2017-01-11
*/
#pragma once
#include <LtsWidgets/lts_dialog.h>
#include <Services/AlarmManagement/alm_ftc.h>
#include <Services/AlarmManagement/alm_dtc.h>
#include <ParticipantManagement/ppm_dtc.h>
#include <LtsUtilsGuiDds/request_helper.h>
#include <AlarmManagement/logger.h>
class QCheckBox;
namespace Ui
{
class AlarmDialog;
}
namespace AlarmManagement
{
class ConfigAlarmModel;
class AlarmHistoryModel;
class AlarmDialog final : public LtsWidgets::LtsDialog
, protected AlarmManagement::Interface::Ftc::ConfigureAlarmsReplyHandler
{
Q_OBJECT
public:
struct AlarmAction
{
int eventTypeId = 0;
bool setMarker = false;
bool messageWindow = false;
};
struct AlarmCheckBox
{
QCheckBox *checkboxMarker = nullptr;
QCheckBox *checkboxWindow = nullptr;
QString name;
ProjectDataManagement::EventType eventTypeId = ProjectDataManagement::EventType::Unknown;
};
explicit AlarmDialog(QWidget *parent = nullptr);
~AlarmDialog();
bool init(const std::shared_ptr<AlarmManagement::Interface::Ftc> &ftc,
const std::shared_ptr<AlarmManagement::Interface::Dtc> &dtc,
const std::shared_ptr<ParticipantManagement::Interface::Dtc> &ppmDtc,
AlarmHistoryModel *alarmHistoryModel);
void retranslate() override;
bool apply() override;
protected:
void onConfigureAlarmsReply(const Core::FunctionReplyObject &replyObject) override final { m_requestHelper->requestReply(replyObject); }
private slots:
void onAlarmConfigChanged(const AlarmManagement::AlarmConfig &data, DataModification modType);
private:
std::vector<AlarmManagement::AlarmAction> getCheckedValues() const;
ConfigAlarmModel *m_configAlarmModel;
std::shared_ptr<AlarmManagement::Interface::Dtc> m_dtc;
std::shared_ptr<AlarmManagement::Interface::Ftc> m_ftc;
Ui::AlarmDialog *m_ui;
QVector<AlarmCheckBox> m_checkBoxes;
LtsUtils::RequestHelper *m_requestHelper;
int m_operatorId;
LOGGER_T m_logger;
};
} // namespace AlarmManagement