Files
qt5-legatus-legacy/Lts/Plugins/TargetManagement/Gui/ShootbackTargetConfiguration/tgt_target_part_dialog.h
T
2026-08-13 18:33:10 +02:00

109 lines
3.2 KiB
C++
Executable File

/**
* @RDE_HEADER@
* Target Configuration
* $Id$
* $HeadURL$
* $Author$
* Created by Norbert Thoden, NLE, 2020-06-29
*/
#pragma once
#include <LtsWidgets/lts_dialog.h>
#include <TargetManagement/tgt_dtc.h>
#include <TargetManagement/tgt_ftc.h>
#include <ParticipantManagement/ppm_dtc.h>
#include <LtsUtilsGuiDds/request_helper.h>
#include <TargetManagement/logger.h>
#include <Plugins/TargetManagement/Gui/ShootbackTargetConfiguration/tgt_target_part_model.h>
#include <Plugins/FileManagement/flm_explorer_gui_plugin_interface.h>
#include <Plugins/SituationMapPlugin/situation_map_gui_plugin_interface.h>
class QPushButton;
namespace Ui
{
class TargetPartDialog;
}
namespace TargetManagement
{
class TargetPartDialog final : public LtsWidgets::LtsDialog
, protected TargetManagement::Interface::Ftc::ShootbackTargetModifyReplyHandler
, protected TargetManagement::Interface::Ftc::ShootbackTargetRemoveReplyHandler
{
Q_OBJECT
public:
using BaseClass = LtsWidgets::LtsDialog;
enum class MODE
{
TARGET_BASE_CONFIGURATION,
TARGET_OVERVIEW
};
explicit TargetPartDialog(const QString &menuGroup, LtsSession::LtsSession *session, QWidget *parent = nullptr);
~TargetPartDialog();
bool init(MODE mode);
void retranslate() override;
Q_SIGNALS:
void assignAreasRequested(int targetParticpantId);
void escapePressed();
protected:
void keyPressEvent(QKeyEvent *event) override final;
void onShootbackTargetModifyReply(const Core::FunctionReplyObject &replyObject) override final { m_requestHelper->requestReply(replyObject); }
void onShootbackTargetRemoveReply(const Core::FunctionReplyObject &replyObject) override final { m_requestHelper->requestReply(replyObject); }
void setMode(MODE mode = MODE::TARGET_BASE_CONFIGURATION);
QByteArray toJson() const;
QVector<ShootbackTarget> fromJson(const QByteArray &content);
private Q_SLOTS:
void onEscapePressed();
void onSelectionChanged();
void onNewTargetPart();
void onRemoveTargetPart();
void onEditTargetPart();
void onExportButtonClicked();
void onImportButtonClicked();
void onImport();
void onAssignAreaClicked();
void onMapCenterClicked();
void onMapZoomToClicked();
void onObjectEntered(const QModelIndex &index);
void onTableViewClicked(const QModelIndex &index);
void clearSelectionOfMapObjects();
private:
QPushButton *m_assignAreaBtn{nullptr};
TargetParticipantModel *m_targetParticipantModel{nullptr};
MODE m_mode{MODE::TARGET_BASE_CONFIGURATION};
std::shared_ptr<TargetManagement::Interface::Dtc> m_dtc;
std::shared_ptr<TargetManagement::Interface::Ftc> m_ftc;
std::shared_ptr<ParticipantManagement::Interface::Dtc> m_ppmDtc;
std::shared_ptr<ParticipantManagement::ForeignGuiComboboxInterface> m_ppmGuiCbxIfc;
std::shared_ptr<FileManagement::ForeignGuiInterface> m_flmGui;
std::shared_ptr<SituationMap::ForeignGuiInterface> m_sitMapGuiIfc;
LtsSession::LtsSession *m_session{nullptr};
Ui::TargetPartDialog *m_ui{nullptr};
QString m_menuGroup;
LtsUtils::RequestHelper *m_requestHelper{nullptr};
LOGGER_T m_logger;
};
} // namespace TargetManagement