/** * @RDE_HEADER@ * Gui Plugin for TargetManagement * $Id$ * $HeadURL$ * $Author$ * Created by Norbert Thoden, NLE, 2020-05-29 */ #pragma once #include #include #include #include #include #include #include #include #include #include namespace TargetManagement { // forward: class AssignmentDialog; class GuiPlugin final : public QObject, public GuiPluginBase::Plugin { Q_PLUGIN_METADATA(IID "gui:3:tgt.shootbacktarget") Q_INTERFACES(GuiPluginBase::Plugin) Q_OBJECT public: GuiPlugin() = default; ~GuiPlugin() = default; QString pluginName() override { return QStringLiteral("TargetManagement.GuiPlugin.ShootbackTarget"); } std::shared_ptr createGuiInterface(LtsSession::LtsSession *session) override; bool availableInPartition(IDL::PartitionType partition) const override { return (partition == IDL::PartitionType::Global || partition == IDL::PartitionType::Exercise); } }; class InterfaceImpl final : public QObject, public GuiPluginBase::Interface { Q_OBJECT public: explicit InterfaceImpl(LtsSession::LtsSession *session); bool fetchInterfaces() override; void clearInterfaces() override; QString menuGroup() const override; QVector getActions() override; bool availableInPartition(IDL::PartitionType partition) const override { return partition == IDL::PartitionType::Global || partition == IDL::PartitionType::Exercise; } private: LtsWidgets::LtsDialog *onShowTargetBaseConfiguration(QWidget *parent); LtsWidgets::LtsDialog *onShowTargets(QWidget *parent); LtsWidgets::LtsDialog *onShowTargetAreaAssignment(QWidget *parent); LtsWidgets::LtsDialog *onShowAreas(QWidget *parent); QPointer m_targetAreaAssignmentDialog; 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; }; } // namespace TargetManagement