/** * @RDE_HEADER@ * Alarm Configuration * $Id$ * $HeadURL$ * $Author$ * Created by Mike Wille, SLSE, 2017-01-11 */ #pragma once #include #include #include #include #include #include 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 &ftc, const std::shared_ptr &dtc, const std::shared_ptr &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 getCheckedValues() const; ConfigAlarmModel *m_configAlarmModel; std::shared_ptr m_dtc; std::shared_ptr m_ftc; Ui::AlarmDialog *m_ui; QVector m_checkBoxes; LtsUtils::RequestHelper *m_requestHelper; int m_operatorId; LOGGER_T m_logger; }; } // namespace AlarmManagement