/** * @RDE_HEADER@ * HMI Plugin for AlarmManagement (Interface for access from other Plugins) * $Id$ * $HeadURL$ * $Author$ * Created by Steve Kemayou, SLSE, 2023-05-26 */ #pragma once #include #include #include #include #include #include namespace AlarmManagement { class EmergencyCallModel : public LtsWidgets::LtsAbstractTableModel { Q_OBJECT public: enum Columns { ID, SAMPLE_TIME, INCOMING_TIME, NAME, ISSI, POSITION, EXPIRED, OPERATION_ID, DELETED_TIMESTAMP, COMMENT }; explicit EmergencyCallModel(QObject *parent = nullptr); QVariant data(const QModelIndex &index, int role) const override final; bool initModel(const std::shared_ptr &dtc, const std::shared_ptr &opmDtc); private slots: void onAlarmEmergencyCallChanged(const AlarmManagement::AlmEmergencyCall &data, const DataModification modType); private: std::shared_ptr m_dtc; std::shared_ptr m_opmDtc; LOGGER_T m_logger; friend class EmergencyCallProxyModel; }; ///************************** /// EmergencyCallProxyModel ///************************** /*! * \brief The EmergencyCallProxyModel class */ class EmergencyCallProxyModel : public LtsWidgets::LtsColumnFilterProxyModel { Q_OBJECT public: using LtsWidgets::LtsColumnFilterProxyModel::LtsColumnFilterProxyModel; bool showExpired() const { return m_showExpired; } bool exerciseStopped()const {return m_hideByExerciseStopped;} void setSourceModel(QAbstractItemModel *sourceModel) override; void hideByExerciseStopped(bool show); public slots: void setShowExpired(bool show); protected: bool filterAcceptsRow(int source_row, const QModelIndex &source_parent) const override final; private: bool checkFilter(int source_row) const; private: bool m_showExpired{false}; bool m_hideByExerciseStopped{false}; EmergencyCallModel *m_sourceModel{nullptr}; }; }