120 lines
4.1 KiB
C++
Executable File
120 lines
4.1 KiB
C++
Executable File
/**
|
|
* @RDE_HEADER@
|
|
* GUI Plugin for AreaEffectSimulation - NContaminations
|
|
* $Id$
|
|
* $HeadURL$
|
|
* $Author$
|
|
* Created by Patric Karwat, SLSE, 2016-07-07
|
|
*/
|
|
|
|
#include "aes_ncontamination_gui_plugin.h"
|
|
#include "aes_ncontamination_edit.h"
|
|
#include "aes_ncontamination_list.h"
|
|
|
|
#include <AreaEffectSimulation/aes_operator_rights.h>
|
|
#include <LtsSession/lts_session.h>
|
|
#include <LtsUtilsSettings/settings.h>
|
|
|
|
namespace AreaEffectSimulation
|
|
{
|
|
|
|
std::shared_ptr<GuiPluginBase::Interface> GuiPlugin::createGuiInterface(LtsSession::LtsSession *session)
|
|
{
|
|
return std::make_shared<InterfaceImpl>(session);
|
|
}
|
|
|
|
InterfaceImpl::InterfaceImpl(LtsSession::LtsSession *session)
|
|
: AesBaseInterface(session, getLogger("Plugins.Gui.NContamination"))
|
|
, ForeignGuiInterface()
|
|
, m_enableB(false)
|
|
, m_enableC(false)
|
|
, m_enableN(false)
|
|
{
|
|
LtsUtils::ProjectSettings *ps = LtsUtils::ProjectSettings::getInstance();
|
|
m_enableB = ps->value(QStringLiteral("aes"),
|
|
QStringLiteral("enableBiologicalContamination")).toBool();
|
|
m_enableC = ps->value(QStringLiteral("aes"),
|
|
QStringLiteral("enableChemicalContamination")).toBool();
|
|
m_enableN = ps->value(QStringLiteral("aes"),
|
|
QStringLiteral("enableNuclearContaminations")).toBool();
|
|
}
|
|
|
|
QString InterfaceImpl::menuGroup() const
|
|
{
|
|
if (!m_enableB && !m_enableC && m_enableN)
|
|
return tr("Area Effect Simulation N");
|
|
if (m_enableB && !m_enableC && m_enableN)
|
|
return tr("Area Effect Simulation NB");
|
|
if (!m_enableB && m_enableC && m_enableN)
|
|
return tr("Area Effect Simulation NC");
|
|
if (m_enableB && !m_enableC && !m_enableN)
|
|
return tr("Area Effect Simulation B");
|
|
if (m_enableB && m_enableC && !m_enableN)
|
|
return tr("Area Effect Simulation BC");
|
|
if (!m_enableB && m_enableC && !m_enableN)
|
|
return tr("Area Effect Simulation C");
|
|
return tr("Area Effect Simulation NBC");
|
|
}
|
|
|
|
QVector<LtsWidgets::PluginData> InterfaceImpl::getActions()
|
|
{
|
|
QVector<LtsWidgets::PluginData> ret;
|
|
|
|
if (m_enableN)
|
|
{
|
|
// N-Contamination
|
|
ret.append(LtsWidgets::PluginData(menuGroup(),
|
|
tr("N-Contaminations"),
|
|
QLatin1String("ListNContaminations"),
|
|
QIcon(QLatin1String("icon:nuclear_agents.svg")),
|
|
[this](QWidget *parent) { return onShowNContaminationListDialog(parent);},
|
|
OperatorRights::NContaminationsShow,
|
|
LtsWidgets::ExercisePart::eExecution));
|
|
|
|
|
|
if (m_session->isExercisePartition() && appId() != LtsAppDescriptor::App::OC)
|
|
ret.append(LtsWidgets::PluginData(menuGroup(),
|
|
tr("Add N-Contamination"),
|
|
QLatin1String("AddNContamination"),
|
|
QIcon(QLatin1String("icon:nuclear_agents_add.svg")),
|
|
[this](QWidget *parent) { return onShowAddNContaminationDialog(parent);},
|
|
OperatorRights::NContaminationsEdit,
|
|
LtsWidgets::ExercisePart::eExecution,
|
|
LtsWidgets::ExerciseState::eCreated | LtsWidgets::ExerciseState::eStarted | LtsWidgets::ExerciseState::ePaused));
|
|
|
|
}
|
|
return ret;
|
|
}
|
|
|
|
AreaEffectSimulation::BaseEdit *InterfaceImpl::showEditWindow(int aesEntityId, QWidget *parent)
|
|
{
|
|
NContaminationEdit *editWidget = new NContaminationEdit(menuGroup(), parent);
|
|
if (editWidget->init(aesEntityId, false, m_session))
|
|
return editWidget;
|
|
|
|
delete editWidget;
|
|
return nullptr;
|
|
}
|
|
|
|
LtsWidgets::LtsDialog *InterfaceImpl::onShowAddNContaminationDialog(QWidget *parent)
|
|
{
|
|
NContaminationEdit *editWidget = new NContaminationEdit(menuGroup(), parent);
|
|
if (editWidget->init(0, false, m_session))
|
|
return editWidget;
|
|
|
|
delete editWidget;
|
|
return nullptr;
|
|
}
|
|
|
|
LtsWidgets::LtsDialog *InterfaceImpl::onShowNContaminationListDialog(QWidget *parent)
|
|
{
|
|
NContaminationList *listWidget = new NContaminationList(menuGroup(), parent);
|
|
if (listWidget->init(m_session))
|
|
return listWidget;
|
|
|
|
delete listWidget;
|
|
return nullptr;
|
|
}
|
|
|
|
} // namespace AreaEffectSimulation
|