/** * @RDE_HEADER@ * Gui Plugin for AreaEffectSimuation - Explosions * $Id: aes_explosion_gui_plugin.h 62538 2024-04-23 06:13:45Z karwat $ * $HeadURL: svn://slssvn/TDS/branches/product/features/24_adler/Lts/Plugins/AreaEffectSimulation/Gui/Explosion/aes_explosion_gui_plugin.h $ * $Author: karwat $ * Created by Patric Karwat, SLSE, 2016-07-05 */ #pragma once #include #include "aes_explosion_gui_plugin_interface.h" namespace AreaEffectSimulation { class GuiPlugin final : public AesBaseGuiPlugin { Q_PLUGIN_METADATA(IID "gui:3:aes.explosions") Q_OBJECT public: GuiPlugin() = default; ~GuiPlugin() = default; QString pluginName() override { return QStringLiteral("AreaEffectSimuationExplosionGui"); } 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 AesExplosion::ForeignGuiInterface { Q_OBJECT public: explicit InterfaceImpl(LtsSession::LtsSession *session); QVector getActions() override; AreaEffectSimulation::BaseEdit *showEditWindow(int aesEntityId, bool isSingle, bool isCentral, ProjectDataManagement::GearClass gc, QWidget *parent) override; AreaEffectSimulation::BaseEdit *showEditWindow(int aesEntityId, ProjectDataManagement::EffectSource effectSource, QWidget *parent) override; // ExplosionCluster private: LtsWidgets::LtsDialog *onShowAddExplosionDialog(bool isSingle, bool isCentral, ProjectDataManagement::GearClass gc, QWidget *parent); LtsWidgets::LtsDialog *onShowExplosionListDialog(bool isSingle, bool, ProjectDataManagement::GearClass gc, QWidget *parent); LtsWidgets::LtsDialog *onShowAddExplosionClusterDialog(QWidget *parent); LtsWidgets::LtsDialog *onShowExplosionClusterListDialog(QWidget *parent); LtsWidgets::LtsDialog *onShowAddExplosionAdlerStandAloneDialog(QWidget *parent); bool eventFilter(QObject *obj, QEvent *event) override; // show dialogs dialog on clicked link static const QString s_ExplosionGuiScheme; }; } // namespace AreaEffectSimulation