/** * @RDE_HEADER@ * Target Configuration * $Id$ * $HeadURL$ * $Author$ * Created by Norbert Thoden, NLE, 2020-06-29 */ #pragma once #include #include #include #include #include #include #include #include #include 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 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 m_dtc; std::shared_ptr m_ftc; std::shared_ptr m_ppmDtc; std::shared_ptr m_ppmGuiCbxIfc; std::shared_ptr m_flmGui; std::shared_ptr 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