/** * @RDE_HEADER@ * MeteoDataManagement - Static Meteo Data Edit Dialog * $Id$ * $HeadURL$ * $Author$ * Created by hjl, SLSE, 2016-10-17 */ #pragma once #include "esc_order_model.h" #include #include #include #include #include #include #include namespace Ui { class FiringExplosion; } namespace SituationMap { class ForeignGuiInterface; } namespace EffectShowClient { class SafetyConfirmationWidget; /** * @brief Input mask for operating conditions. */ class FiringExplosion : public LtsWidgets::LtsDialog , protected EffectShowClient::Interface::Ftc::OrderModifyReplyHandler , protected EffectShowClient::Interface::Ftc::ManuallyExplosionReplyHandler { Q_OBJECT public: explicit FiringExplosion(QWidget *parent = nullptr); ~FiringExplosion(); bool init(const std::shared_ptr &dtc, const std::shared_ptr &ftc, LtsSession::LtsSession *session, bool freeForm = false); private: void retranslate() override; void onOrderModifyReply(const Core::FunctionReplyObject &replyObject) override { m_requestHelper->requestReply(replyObject); } void onManuallyExplosionReply(const Core::FunctionReplyObject &replyObject) override { m_requestHelper->requestReply(replyObject); } private Q_SLOTS: void onFiringExplosionEntityChanged(const EffectShowClient::FiringExplosionEntity &data, DataModification modType); void onOperatingConditionEntityChanged(const EffectShowClient::OperatingConditionEntity &data, DataModification modType); void onApply(); void onFire(); void onAbort(); void onInterrupt(); void onCarriedOut(); void onSafetyConfirmationDisplay(); void onFiringClearanceCountDown(); private: enum class EffectShowStatus_e : unsigned int { Apply, Fire, Abort, Interrupt, CarriedOut }; bool statusChangedForManuallyEffectShow(EffectShowStatus_e status); bool statusChangedForOrderedEffectShow(EffectShowStatus_e status); private: QTimer *m_timer; std::shared_ptr m_dtc; std::shared_ptr m_ftc; LtsSession::LtsSession *m_session; SafetyConfirmationWidget *m_safetyConfirmationWidget; Ui::FiringExplosion *m_ui; NGL::INGLLogger &m_logger; LtsUtils::RequestHelper *m_requestHelper; EffectShowClient::FiringExplosionEntity m_oldEntity; EffectShowClient::SafetyConfirmation_e m_safetyConfirmation; int m_idOrder; int m_idEffectShow; int m_shotsAvail; bool m_isClearance; qint64 m_firingClearanceCountDown; // [ms] qint64 m_endOfFiringClearanceCountDown; // [ms] }; } //namespace EffectShowClient