/** * @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 FiringSmoke; } namespace SituationMap { class ForeignGuiInterface; } namespace EffectShowClient { class SmokeState; class SafetyConfirmationWidget; /** * @brief Input mask for operating conditions. */ class FiringSmoke : public LtsWidgets::LtsDialog , protected EffectShowClient::Interface::Ftc::OrderModifyReplyHandler , protected EffectShowClient::Interface::Ftc::ManuallySmokeReplyHandler { Q_OBJECT public: explicit FiringSmoke(QWidget *parent = nullptr); ~FiringSmoke(); 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 onManuallySmokeReply(const Core::FunctionReplyObject &replyObject) override { m_requestHelper->requestReply(replyObject); } private Q_SLOTS: void onFiringSmokeEntityChanged(const EffectShowClient::FiringSmokeEntity &data, DataModification modType); void onOperatingConditionEntityChanged(const EffectShowClient::OperatingConditionEntity &data, DataModification modType); void onMeteoDataChanged(const EffectShowClient::MeteoNearVehicle &data, DataModification modType); void onMeteoTimerTimeout(); void onApply(); void onAbort(); void onCarriedOut(); void onSafetyConfirmationDisplay(); void onFiringClearanceCountDown(); private: enum class EffectShowStatus_e : unsigned int { Apply, Abort, CarriedOut }; bool statusChangedForManuallyEffectShow(EffectShowStatus_e status); bool statusChangedForOrderedEffectShow(EffectShowStatus_e status); private: QTimer *m_timer; QTimer *m_meteoTimer; std::shared_ptr m_dtc; std::shared_ptr m_ftc; LtsSession::LtsSession *m_session; EffectShowClient::SmokeState *m_smokeState; SafetyConfirmationWidget *m_safetyConfirmationWidget; Ui::FiringSmoke *m_ui; LtsUtils::RequestHelper *m_requestHelper; EffectShowClient::FiringSmokeEntity m_oldEntity; EffectShowClient::SafetyConfirmation_e m_safetyConfirmation; int m_idOrder; qint64 m_firingClearanceCountDown; // [ms] qint64 m_endOfFiringClearanceCountDown; // [ms] NGL::INGLLogger &m_logger; }; } //namespace EffectShowClient