/** * @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 namespace Ui { class AreaDialog; } namespace TargetManagement { class AreaDialog final : public LtsWidgets::LtsDialog , protected TargetManagement::Interface::Ftc::ShootbackAreaModifyReplyHandler , protected TargetManagement::Interface::Ftc::ShootbackAreaRemoveReplyHandler { Q_OBJECT public: using BaseClass = LtsWidgets::LtsDialog; explicit AreaDialog(const QString &menuGroup, LtsSession::LtsSession *session, QWidget *parent = nullptr); ~AreaDialog(); bool init(); void retranslate() override; Q_SIGNALS: void escapePressed(); protected: void keyPressEvent(QKeyEvent *event) override final; void onShootbackAreaModifyReply(const Core::FunctionReplyObject &replyObject) override final { m_requestHelper->requestReply(replyObject); } void onShootbackAreaRemoveReply(const Core::FunctionReplyObject &replyObject) override final { m_requestHelper->requestReply(replyObject); } QByteArray toJson() const; QVector fromJson(const QByteArray &content); private Q_SLOTS: void onEscapePressed(); void onSelectionChanged(); void onNewArea(); void onRemoveArea(); void onEditArea(); void onExportButtonClicked(); void onImportButtonClicked(); void onImport(); void onAssignTargetButtonClicked(); void onMapCenterClicked(); void onMapZoomToClicked(); void onObjectEntered(const QModelIndex &index); void onTableViewClicked(const QModelIndex &index); void clearSelectionOfMapObjects(); private: QPushButton *m_assignTargetBtn{nullptr}; AreaModel *m_areaModel{nullptr}; std::shared_ptr m_dtc; std::shared_ptr m_ftc; std::shared_ptr m_flmGui; std::shared_ptr m_sitMapGuiIfc; LtsSession::LtsSession *m_session{nullptr}; Ui::AreaDialog *m_ui{nullptr}; QString m_menuGroup; LtsUtils::RequestHelper *m_requestHelper{nullptr}; LOGGER_T m_logger; }; } // namespace TargetManagement