/** * @RDE_HEADER@ * HMI Plugin for ParticipantManagement - TlnInfoDialog * $Id$ * $HeadURL$ * $Author$ * Created by Christian Ehrlicher, SLSE, 2016-02-29 */ #pragma once //Lts #include #include #include //Asb #include //ParticipantManagement #include #include //DDS #include #include #include #include #include #include //SituationMap #include //AES #include // TargetManagement #include #include #include //Qt namespace Ui { class ParticipantInfoDialog; } namespace LtsUtils { class RequestHelper; } namespace ParticipantManagement { class ParticipantInfoLtdGearComponent; // -------------------------------------------------------- // ParticipantInfoDialog // -------------------------------------------------------- class ParticipantInfoDialog final : public LtsWidgets::LtsDialog , protected FilterManagement::SymbolAppearanceSettings::SettingsChangedCallback , protected TargetManagement::Interface::Ftc::ConfigureTargetReplyHandler , protected ParticipantManagement::Interface::Ftc::CreateModifyUasReplyHandler , protected ParticipantManagement::Interface::Ftc::ModifyUasStateReplyHandler { Q_OBJECT public: explicit ParticipantInfoDialog(int participantId, const QString &menuGroup, QWidget *parent = nullptr); ~ParticipantInfoDialog(); bool init(LtsSession::LtsSession *session, const std::shared_ptr &dtc, const std::shared_ptr &ftc, const std::shared_ptr &pdmDtc, const std::shared_ptr &sitMapGuiIfc, const std::shared_ptr &asbInterface, const std::shared_ptr &ppmGuiIfc); void onConfigureTargetReply(const Core::FunctionReplyObject &replyObject) override final { m_requestHelper->requestReply(replyObject); } void onCreateModifyUasReply(const Core::FunctionReplyObject &replyObject) override final { m_requestHelper->requestReply(replyObject); }; void onModifyUasStateReply(const Core::FunctionReplyObject &replyObject) override final { m_requestHelper->requestReply(replyObject); }; signals: void entityInfoChanged(const QString &text); private: void retranslate() override; bool setUiValues(); static void setBackgroundColor(QWidget *w, Qt::GlobalColor color, bool bSetColor); void updateIcon(const Participant &participant); void updateIcon(const QColor &color, const QString &sidc); void setSanitationLabelColor(SanitationResult proceduresDone); void setKindVisible(bool bVisible); void setBottomSpacerVisibility(bool isOneListActive); void setStatusVisible(bool bVisible); void setHistoryVisible(bool bVisible); void setEquipNrVisible(bool bVisible); void setBiteVisible(bool bVisible); void setMessageVisible(bool bVisible); void onSymbolAppearanceSettingsChanged(FilterManagement::SymbolAppearanceSettings::Part part) override; QString approachingAngle(const QPointF ¢erPoint, double direction, double distance, int mseId) const; // Target (Qatar?) bool initTargetConfig(bool bShow); // Target (L400) bool initTargetConfigL400(bool bShow); bool loadGuiElementPLugin(const LtsPluginManager::PluginInstance &pi); private Q_SLOTS: void onDynamicParticipantDataChanged(const DynamicParticipantData &data, DataModification modType = DataModification::eModified); void onPositionChanged(const ParticipantPosition &position); void onUasChanged(const UAS &uas); void onUnlockUAS(); void onUnitPositionChanged(const UnitPosition &position); void onUpdatePosition(int participantId, const Core::GeoPosition &position, qint64 sampleTime); void onParticipantChanged(const Participant &participant, DataModification modType = DataModification::eModified); void onTypeChanged(const Type &type, DataModification modType); void updateCurrentIcon(); void onOpenSetStatusDialog(); void onOpenSetInjuryDialog(); void onOpenSetSanitationDialog(); void onOpenHistory(); void onOpenBite(); void onOpenMessage(); void onFindOnMap(); void onMovementTrack(); void onParticipantMountedOn(); void onMountedParticipants(); void onPartitionTimeChanged(qint64 newPartitionTime); void onGearRanges(); void showSpecialSensorData(int specialSensorData); void onContextMenuRequested(const QPoint &position); void onRestockDefaults(int gearId,int gearTypeId); void onRestockNow(int gearId,int gearTypeId); // Target (Qatar?) void onTargetConfig(); void onTargetConfigChanged(const TargetManagement::TargetConfig &data, DataModification modType); void onTargetModeChangeed(); void onTargetWeaponChanged(); // Target (L400) void onOpenTargetConfigurationL400(); private: Participant m_participant; int m_uasId; // Needed to release uas again. qint64 m_lastPositionMSec; TypeClass m_typeClass; std::vector m_gearList; std::vector m_sanMatStock; int m_roomId; QString m_menuGroup; LtsSession::LtsSession *m_session; std::shared_ptr m_dtc; std::shared_ptr m_ftc; std::shared_ptr m_pdmDtc; std::shared_ptr m_tgtDtc; std::shared_ptr m_tgtFtc; std::shared_ptr m_aesDtc; std::shared_ptr m_sitMapGuiIfc; std::shared_ptr m_asbiIfc; std::shared_ptr m_ppmGuiIfc; std::shared_ptr m_ismDtc; std::shared_ptr m_symbolAppearanceSettings; std::shared_ptr m_fltParticipantIfc; AdvancedSymbology::SymbolResultWatcherLabel *m_symbolWatcher; LtsUtils::RequestHelper *m_requestHelper; ParticipantInfoLtdGearComponent *m_ltdGearComponent { nullptr }; Ui::ParticipantInfoDialog *m_ui; QPair m_oldSpacerSize; bool m_isTarget; bool m_showPvSan{false}; bool m_showVulnerabilityKindProject{false}; LOGGER_T m_logger; }; } // namespace ParticipantInfo