/** * @RDE_HEADER@ * Beschreibung des Dialogs * $Id$ * $HeadURL$ * $Author$ * Created by Mike Wille, SLSE, 2017-11-01 */ #include "assign_gna_dialog.h" #include "ui_assign_gna_dialog.h" #include #include namespace GuezNasat { AssignGuezNasatPartDialog::AssignGuezNasatPartDialog(int exerciseId, QWidget *parent) : LtsWidgets::LtsDialog(parent, LtsWidgets::ButtonCombination::OkApplyCancel) , m_ftc(nullptr) , m_nasatAircraftParticipantModel(nullptr) , m_exerciseId(exerciseId) , m_ui(new Ui::AssignGuezNasatPartDialog) , m_requestHelper(new LtsUtils::RequestHelper(this)) , m_logger(getLogger("Dialog")) { m_ui->setupUi(this); } AssignGuezNasatPartDialog::~AssignGuezNasatPartDialog() { delete m_ui; } bool AssignGuezNasatPartDialog::init(const std::shared_ptr &ftc, NasatAircraftParticipantModel *nasatAircraftParticipantModel, const NasatAircraftParticipant &nap) { m_ftc = ftc; m_nasatAircraftParticipantModel = nasatAircraftParticipantModel; m_nap = nap; initCmbNasats(); initCmbParticipants(); connect(m_nasatAircraftParticipantModel, &NasatAircraftParticipantModel::signalNasatNamesChanged, this, &AssignGuezNasatPartDialog::initCmbNasats); connect(m_nasatAircraftParticipantModel, &NasatAircraftParticipantModel::signalParticipantNamesChanged, this, &AssignGuezNasatPartDialog::initCmbParticipants); m_buttonBox->setButtonVisible(LtsWidgets::DialogButton::Apply, false); setOnlineHelpFilename(QStringLiteral("Administrator-Airplanes")); if (nap.id() <= 0) slotChangesMade(); return true; } void AssignGuezNasatPartDialog::initCmbNasats() { m_ui->cmbNasats->clear(); const auto names(m_nasatAircraftParticipantModel->getNasatNames()); for (auto it = names.begin(); it != names.end(); ++it) { if (!m_nasatAircraftParticipantModel->getAssociatedNasatIds().contains(it.key()) || m_nap.nasatAircraftId() == it.key()) m_ui->cmbNasats->addItem(it.value(), it.key()); } int newIdx = m_ui->cmbNasats->findData(m_nap.nasatAircraftId()); if (newIdx >= 0) m_ui->cmbNasats->setCurrentIndex(newIdx); m_ui->cmbNasats->model()->sort(0); } void AssignGuezNasatPartDialog::initCmbParticipants() { m_ui->cmbParticipants->clear(); const auto hierarchies(m_nasatAircraftParticipantModel->getParticipantHierarchies()); const auto decorations(m_nasatAircraftParticipantModel->getParticipantDecorations()); for (auto it = hierarchies.begin(); it != hierarchies.end(); ++it) { if (!m_nasatAircraftParticipantModel->getAssociatedParticipantIds().contains(it.key()) || m_nap.participantId() == it.key()) m_ui->cmbParticipants->addItem(QIcon(decorations.value(it.key())), it.value(), it.key()); } int newIdx = m_ui->cmbParticipants->findData(m_nap.participantId()); if (newIdx >= 0) m_ui->cmbParticipants->setCurrentIndex(newIdx); m_ui->cmbParticipants->model()->sort(0); } void AssignGuezNasatPartDialog::retranslate() { translate(m_ui, m_nap.id() <= 0 ? tr("Add Assign Aircraft") : tr("Edit Assign Aircraft")); } bool AssignGuezNasatPartDialog::apply() { INFO_LOG(m_logger) << "AssignGuezNasatPartDialog::apply()"; int32_t participantId = m_ui->cmbParticipants->currentData().toInt(); int32_t nasatAircraftId = m_ui->cmbNasats->currentData().toInt(); const NasatAircraftParticipant req(m_nap.id(), nasatAircraftId, m_exerciseId, participantId); return m_requestHelper->startSingleRequest([req, this]() { return m_ftc->modifyNasatAircraftParticipantRequest(req, this); }); } // end of apply } // namespace GuezNasat