Files
qt5-legatus-legacy/Lts/Plugins/AreaEffectSimulation/Gui/AesInfo/aes_info_dialog.h
T
2026-08-13 18:33:10 +02:00

137 lines
6.1 KiB
C++
Executable File

/**
*@RDE_HEADER@
* GUI Plugin for AreaEffectSimulation - Info
* $Id$
* $HeadURL$
* $Author$
* Created by hjl, SLSE, 2017-03-23
*/
#pragma once
//Lts
#include <LtsWidgets/lts_dialog.h>
#include <LtsSession/lts_session.h>
#include <LtsUtilsGuiDds/request_helper.h>
//AreaEffectSimulation
#include <AreaEffectSimulation/logger.h>
//DDS
#include <Plugins/AreaEffectSimulation/aes_data_plugin_interface.h>
#include <Plugins/ProjectDataManagement/pdm_data_plugin_interface.h>
namespace Ui {
class AesInfoDialog;
}
namespace AreaEffectSimulation
{
// --------------------------------------------------------
// AESInfoDialog
// --------------------------------------------------------
class AesInfoDialog : public LtsWidgets::LtsDialog
, protected AreaEffectSimulation::Interface::Ftc::MineResetReplyHandler
{
Q_OBJECT
public:
explicit AesInfoDialog(int aesEntityId, AreaEffectSimulation::AesType aesType, QWidget *parent = nullptr);
~AesInfoDialog();
bool init(LtsSession::LtsSession *session,
const std::shared_ptr<Interface::Dtc> &dtc,
const std::shared_ptr<Interface::Ftc> &ftc,
const std::shared_ptr<ProjectDataManagement::Interface::Dtc> &pdmDtc);
void onMineResetReply(const Core::FunctionReplyObject &replyObject) override final { m_requestHelper->requestReply(replyObject); }
private:
void retranslate() override;
void handleNContamination(const AesItemView &aesItemView);
void handleNContamination(const AreaEffectSimulation::NContamination &data);
void handleBCContamination(const AesItemView &aesItemView);
void handleBCContamination(const AreaEffectSimulation::BCContamination &data);
void handleExplosionArea(const AesItemView &aesItemView);
void handleExplosionArea(const AreaEffectSimulation::ExplosionArea &data);
void handleExplosionSingle(const AesItemView &aesItemView);
void handleExplosionSingle(const AreaEffectSimulation::ExplosionSingle &data);
void handleMineArea(const AesItemView &aesItemView);
void handleMineArea(const AreaEffectSimulation::MineArea &data);
void handleMineCorridor(const AesItemView &aesItemView);
void handleMineCorridor(const AreaEffectSimulation::MineCorridor &data);
void handleBoobyTrap(const AesItemView &aesItemView);
void handleBoobyTrap(const AreaEffectSimulation::BoobyTrap &data);
void handleOffRouteMine(const AesItemView &aesItemView);
void handleOffRouteMine(const AreaEffectSimulation::OffRouteMine &data);
void handleGasPipe(const AesItemView &aesItemView);
void handleGasPipe(const AreaEffectSimulation::GasPipe &data);
void handleDangerArea(const AesItemView &aesItemView);
void handleDangerArea(const AreaEffectSimulation::DangerArea &data);
void handleBorderline(const AesItemView &aesItemView);
void handleBorderline(const AreaEffectSimulation::Borderline &data);
void handleFunctionalArea(const AesItemView &aesItemView);
void handleFunctionalArea(const AreaEffectSimulation::FunctionalArea &data);
void handleAirSupportImpact(const AesItemView &aesItemView);
void handleAirSupportImpact(const AreaEffectSimulation::AirSupportImpact &data);
void handleMineAraeSingleMine();
void handleMineAraeSingleMine(const Core::GeoPosition2D &position, const DusMine &mine);
void handleSingleDusMine();
void handleExplosionCluster(const AesItemView &aesItemView);
void handleExplosionCluster(const AreaEffectSimulation::ExplosionCluster &data);
void handleEffectCluster(const AesItemView &aesItemView);
void handleEffectCluster(const AreaEffectSimulation::EffectCluster &data);
bool cbFunc(const AesItemView &aesItemView);
void handleAesItem(const AesItem &aesData, AesType aesTypeId);
private Q_SLOTS:
void onFindOnMap();
void onShowDetails();
bool onResetDusMines();
void onNContaminationChanged(const AreaEffectSimulation::NContamination &data, DataModification modType);
void onBCContaminationChanged(const AreaEffectSimulation::BCContamination &data, DataModification modType);
void onBoobyTrapChanged(const AreaEffectSimulation::BoobyTrap &data, DataModification modType);
void onOffRouteMineChanged(const AreaEffectSimulation::OffRouteMine &data, DataModification modType);
void onExplosionAreaChanged(const AreaEffectSimulation::ExplosionArea &data, DataModification modType);
void onExplosionSingleChanged(const AreaEffectSimulation::ExplosionSingle &data, DataModification modType);
void onMineAreaChanged(const AreaEffectSimulation::MineArea &data, DataModification modType);
void onMineCorridorChanged(const AreaEffectSimulation::MineCorridor &data, DataModification modType);
void onGasPipeChanged(const GasPipe &data, DataModification modType);
void onDangerAreaChanged(const AreaEffectSimulation::DangerArea &data, DataModification modType);
void onBorderlineChanged(const AreaEffectSimulation::Borderline &data, DataModification modType);
void onFunctionalAreaChanged(const AreaEffectSimulation::FunctionalArea &data, DataModification modType);
void onAirSupportImpactChanged(const AirSupportImpact &data, DataModification modType);
void onDusMineStateChanged(const DusMineState &data, DataModification modType);
void onDusSingleMineChanged(const DusSingleMine &data, DataModification modType);
void onExplosionClusterChanged(const ExplosionCluster &data, DataModification modType);
void onEffectClusterChanged(const EffectCluster &data, DataModification modType);
private:
int m_aesEntityId;
QString m_aesEntityName;
AreaEffectSimulation::AesType m_aesType;
ProjectDataManagement::EffectSource m_aesEffectSource;
int m_bcChargeTypeId;
int m_singleExpChargeTypeId;
int m_areaExpChargeTypeId;
bool m_mineIsReactivatable;
LtsSession::LtsSession *m_session;
std::shared_ptr<Interface::Dtc> m_dtc;
std::shared_ptr<Interface::Ftc> m_ftc;
std::shared_ptr<ProjectDataManagement::Interface::Dtc> m_pdmDtc;
Ui::AesInfoDialog* m_ui;
LtsUtils::RequestHelper *m_requestHelper;
LOGGER_T m_logger;
};
} // namespace AreaEffectSimulation