82 lines
2.3 KiB
C++
Executable File
82 lines
2.3 KiB
C++
Executable File
/**
|
|
* @RDE_HEADER@
|
|
* Model for mounted participants table
|
|
* $Id$
|
|
* $HeadURL$
|
|
* $Author$
|
|
* Created by Dassow Philipp, SLEA, 2017-08-29
|
|
*/
|
|
|
|
#include "participants_mounted_table_model.h"
|
|
#include <ParticipantManagement/ppm_translation.h>
|
|
|
|
namespace ParticipantManagement {
|
|
ParticipantsMountedTableModel::ParticipantsMountedTableModel(QObject *parent)
|
|
: LtsWidgets::LtsAbstractTableModel<Participant>({tr("Equipment Number"),
|
|
tr("Party"),
|
|
tr("Designator"),
|
|
tr("Tact. Identifier")}, parent)
|
|
, m_carrierId(0)
|
|
, m_dtc(nullptr)
|
|
{
|
|
}
|
|
|
|
bool ParticipantsMountedTableModel::initModel(int32_t carrierId,
|
|
const std::shared_ptr<Interface::Dtc> &dtc)
|
|
{
|
|
m_carrierId = carrierId;
|
|
m_dtc = dtc;
|
|
if (!m_dtc || !m_carrierId)
|
|
return false;
|
|
|
|
connect(m_dtc.get(), &ParticipantManagement::Interface::Dtc::participantPositionChanged,
|
|
this, &ParticipantsMountedTableModel::onPositionChanged,
|
|
Qt::UniqueConnection);
|
|
|
|
reInitModel();
|
|
return true;
|
|
}
|
|
|
|
void ParticipantsMountedTableModel::reInitModel()
|
|
{
|
|
clear();
|
|
|
|
ParticipantPosition pos = m_dtc->participantPosition(m_carrierId);
|
|
|
|
if (pos.mountedParticipants().is_set())
|
|
for (size_t idx = 0; idx < pos.mountedParticipants().get().size(); ++idx)
|
|
insertRow(m_dtc->participant(pos.mountedParticipants().get().at(idx)));
|
|
}
|
|
|
|
QVariant ParticipantsMountedTableModel::data(const QModelIndex &index, int role) const
|
|
{
|
|
if (role != Qt::DisplayRole || !indexIsValid(index))
|
|
return QVariant();
|
|
|
|
const Participant &participant = m_vecData.at(index.row());
|
|
switch (index.column())
|
|
{
|
|
case 0:
|
|
return participant.equipmentNumber().is_set()?participant.equipmentNumber().get():0;
|
|
case 1:
|
|
return ParticipantManagement::trPartyName(m_dtc->party(participant.partyId()).name());
|
|
case 2:
|
|
return QString::fromStdString(participant.designator());
|
|
case 3:
|
|
return QString::fromStdString(participant.tacticalIdentifier());
|
|
default:
|
|
break;
|
|
}
|
|
|
|
return QVariant();
|
|
}
|
|
|
|
void ParticipantsMountedTableModel::onPositionChanged(const ParticipantPosition &data, DataModification modType)
|
|
{
|
|
if (modType != DataModification::eRemoved)
|
|
if (data.participantId() == m_carrierId)
|
|
reInitModel();
|
|
}
|
|
|
|
}
|