/** * @RDE_HEADER@ * HMI Plugin for ParticipantManagement - Template Model * $Id$ * $HeadURL$ * $Author$ * Created by Patric Karwat, SLSE, 2016-10.05 */ #pragma once #include #include #include #include namespace LtsSession { class LtsSessionDataDds; } namespace ParticipantManagement { // -------------------------------------------------------- // ParticipantTemplateChooserModel // -------------------------------------------------------- class ParticipantTemplateChooserModel final : public LtsWidgets::LtsAbstractTableModel , public AdvancedSymbology::TableModelSymbolRenderer { Q_OBJECT friend class AdvancedSymbology::TableModelSymbolRenderer; public: enum Columns { ColDesignatorIdentifier, ColTypeClass, ColType }; explicit ParticipantTemplateChooserModel(bool asSupportService, QObject *parent = nullptr); ~ParticipantTemplateChooserModel(); bool initModel(LtsSession::LtsSessionDataDds *session, const std::shared_ptr &dtc); QVariant data(const QModelIndex &, int) const override final; Qt::ItemFlags flags(const QModelIndex &index) const override; QMimeData *mimeData(const QModelIndexList &indexes) const override; QStringList mimeTypes() const override; Qt::DropActions supportedDragActions() const override { return Qt::CopyAction; } protected: int getId(const TemplateParticipant &data) const override { return data.templateId(); } private slots: void onTemplateChanged(const ParticipantManagement::TemplateParticipant &data, DataModification modType); private: bool isFiltered(const TemplateParticipant &data, DataModification modType) const override; bool m_asSupportService; std::shared_ptr m_dtc; LOGGER_T m_logger; }; } //namespace ParticipantManagement