Files
qt5-legatus-legacy/Lts/Plugins/AreaEffectSimulation/Gui/Explosion/aes_explosion_gui_plugin.h
T
2026-08-13 18:33:10 +02:00

64 lines
2.3 KiB
C++
Executable File

/**
* @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 <Plugins/AreaEffectSimulation/Gui/Base/aes_base_gui_plugin.h>
#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<GuiPluginBase::Interface> 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<LtsWidgets::PluginData> 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