/** * @RDE_HEADER@ * Gui Plugin for AreaEffectSimulation - Contamination * $Id$ * $HeadURL$ * $Author$ * Created by Patric Karwat, SLSE, 2016-07-07 */ #pragma once #include #include "aes_bccontamination_gui_plugin_interface.h" namespace AreaEffectSimulation { class GuiPlugin final : public AesBaseGuiPlugin { Q_PLUGIN_METADATA(IID "gui:3:aes.bccontaminations") Q_OBJECT public: GuiPlugin() = default; ~GuiPlugin() = default; QString pluginName() override { return QStringLiteral("AreaEffectSimuationBCContaminationGui"); } std::shared_ptr createGuiInterface(LtsSession::LtsSession *session) override; bool availableInPartition(IDL::PartitionType partition) const override { return partition == IDL::PartitionType::Exercise || partition == IDL::PartitionType::Replay; } }; class InterfaceImpl final : public AesBaseInterface, public AesBCContamination::ForeignGuiInterface { Q_OBJECT public: explicit InterfaceImpl(LtsSession::LtsSession *session); QString menuGroup() const override final; QVector getActions() override; LtsWidgets::LtsDialog *showInfoWindow(const AesItem *item) override; AreaEffectSimulation::BaseEdit *showEditWindow(int aesEntityId, bool isChemical, QWidget *parent) override; bool fetchInterfaces() override; private: LtsWidgets::LtsDialog *onShowAddBCContaminationDialog(bool isChemical, QWidget *parent); LtsWidgets::LtsDialog *onShowBCContaminationListDialog(bool isChemical, QWidget *parent); bool m_enableB; bool m_enableC; bool m_enableN; }; } // namespace AreaEffectSimulation