/** * @RDE_HEADER@ * ParticipantManagement - ParticipantTargetConfigurationDialog (L400) * $Id$ * $HeadURL$ * $Author$ * Created by Norbert Thoden, SLSE, 2022-05-10 */ #pragma once //Lts #include //ParticipantManagement #include #include #include #include #include #include #include #include "participant_shootback_area_model.h" #include namespace Ui { class ParticipantTargetConfigurationDialog; } namespace ParticipantManagement { // -------------------------------------------------------- // ParticipantTargetConfigurationDialog // -------------------------------------------------------- class ParticipantTargetConfigurationDialog final : public LtsWidgets::LtsDialog , protected ParticipantManagement::Interface::Ftc::InitParticipantReplyHandler , protected ParticipantManagement::Interface::Ftc::ModifyStateReplyHandler , protected ParticipantManagement::Interface::Ftc::ModifyTargetInformationReplyHandler { Q_OBJECT public: explicit ParticipantTargetConfigurationDialog(QWidget *parent = nullptr); ~ParticipantTargetConfigurationDialog(); bool init(int participantId, const std::shared_ptr &dtc, const std::shared_ptr &ftc, const std::shared_ptr &sitMapGuiIfc); private Q_SLOTS: void onDynamicParticipantDataChanged(const ParticipantManagement::DynamicParticipantData &dynData, DataModification modType); void onTargetInformationChanged(const TargetInformation &data, DataModification modType); void onStatusChanged(); void onGuiChanged(); // -> update m_targetInformation void onDataChanged(); // -> update GUI void onAddBtnClicked(); void onEditBtnClicked(); void onRemoveBtnClicked(); void onShowOnMapChanged(int); // sitMap-related slots: void onPolygonData(const QPolygonF &poly); private: void retranslate() override; bool apply() override final; void onInitParticipantReply(const Core::FunctionReplyObject &reply) override final { m_requestHelper->requestReply(reply); } void onModifyStateReply(const Core::FunctionReplyObject &reply) override final { m_requestHelper->requestReply(reply); } void onModifyTargetInformationReply(const Core::FunctionReplyObject &reply) override final { m_requestHelper->requestReply(reply); } void fillStatusComboBox(); void fillPrewarningEffectComboBox(); void fillTakeDownEffectComboBox(); void setupConnections(); void onSelectionChanged(); void showPreviewObject(); int m_participantId{-1}; TargetInformation m_targetInformation; AreaModel m_areaModel; std::shared_ptr m_dtc; std::shared_ptr m_ftc; LtsUtils::RequestHelper *m_requestHelper{nullptr}; std::shared_ptr m_sitMapGuiIfc; bool m_rubberbandEditMode{false}; QPolygonF m_previewPolygon; Ui::ParticipantTargetConfigurationDialog *m_ui{nullptr}; LOGGER_T m_logger; }; class EditNameDelegate : public QItemDelegate { Q_OBJECT public: explicit EditNameDelegate(QWidget *parent = nullptr); QWidget *createEditor(QWidget *parent, const QStyleOptionViewItem &option, const QModelIndex &index) const override ; void setEditorData(QWidget *editor, const QModelIndex &index) const override; void setModelData(QWidget *editor, QAbstractItemModel *model, const QModelIndex &index) const override; private: LOGGER_T &m_logger; ///< Interface to the Logging-Facility }; } // namespace ParticipantManagement