71 lines
1.6 KiB
C++
Executable File
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
|