Files
qt5-legatus-legacy/Lts/Plugins/AreaEffectSimulation/Gui/MineSingleVirtual/aes_booby_trap_model.cpp
T
2026-08-13 18:33:10 +02:00

71 lines
1.6 KiB
C++
Executable File

/**
* @RDE_HEADER@
* HMI Plugin for AreaEffectSimulation - Booby Trap Overview Dialog Model
* $Id$
* $HeadURL$
* $Author$
*
* Created by Hanna E. Rathje, 20-23-07-14
*/
#include "aes_booby_trap_model.h"
namespace AreaEffectSimulation
{
bool BoobyTrapModel::initModel(LtsSession::LtsSession *session)
{
if (!AesGuiBaseModel::initModel(session))
return false;
connect(m_aesDtc.get(), &Interface::Dtc::boobyTrapChanged,
this, &BoobyTrapModel::onDataChanged);
fillAvailableChargeIds(ProjectDataManagement::GearClass::BoobyTrap);
m_aesDtc->boobyTraps([this](const BoobyTrap &item) { insertRow(item); });
return true;
}
QVariant BoobyTrapModel::data(const QModelIndex &index, int role) const
{
if (!indexIsValid(index))
return QVariant();
const BoobyTrap &bt = getRowData(index.row());
if (index.column() < cntBaseColumns())
return AesGuiBaseModel::data(bt, index.column(), role);
if (role != Qt::DisplayRole)
return QVariant();
switch (index.column())
{
case ColTriggerRadius:
return QLocale().toString(bt.triggerRadius(), 'f', 2);
case ColImpactRadius:
return QLocale().toString(bt.impactRadius(), 'f', 2);
case ColRotationAngle:
{
if (bt.rotationAngle().is_set())
return QLocale().toString(bt.rotationAngle().get(), 'f', 2);
else
return {};
}
case ColCentralAngle:
{
if (bt.centralAngle().is_set())
return QLocale().toString(bt.centralAngle().get(), 'f', 2);
else
return {};
}
default:
break;
}
return QVariant();
}
} // namespace AreaEffectSimulation