/** * @RDE_HEADER@ * Beschreibung des Dialogs * $Id$ * $HeadURL$ * $Author$ * Created by Mike Wille, SLSE, 2017-11-01 */ #include "gna_part_dialog.h" #include "ui_gna_part_dialog.h" #include "assign_gna_dialog.h" namespace GuezNasat { GuezNasatPartDialog::GuezNasatPartDialog(const QString &menuGroup, LtsSession::LtsSession *session, QWidget *parent) : LtsWidgets::LtsDialog(parent, LtsWidgets::ButtonCombination::OkApplyCancel) , m_nasatAircraftParticipantModel(nullptr) , m_dtc(nullptr) , m_ftc(nullptr) , m_exmDtc(nullptr) , m_ppmDtc(nullptr) , m_session(session) , m_ui(new Ui::GuezNasatPartDialog) , m_menuGroup(menuGroup) , m_requestHelper(new LtsUtils::RequestHelper(this)) , m_logger(getLogger("Dialog")) { m_ui->setupUi(this); setOnlineHelpFilename(QStringLiteral("Administrator-Airplanes")); } GuezNasatPartDialog::~GuezNasatPartDialog() { delete m_ui; } bool GuezNasatPartDialog::init(const std::shared_ptr &ftc, const std::shared_ptr &dtc, const std::shared_ptr &exmDtc, const std::shared_ptr &ppmDtc, const std::shared_ptr &ppmGuiCbxIfc) { if (!ftc || !dtc || !exmDtc || !ppmDtc) return false; m_ftc = ftc; m_dtc = dtc; m_exmDtc = exmDtc; m_ppmDtc = ppmDtc; INFO_LOG(m_logger) << "GuezNasatPartDialog::init"; m_nasatAircraftParticipantModel = new GuezNasat::NasatAircraftParticipantModel(this); m_nasatAircraftParticipantModel->initModel(m_dtc, m_exmDtc, m_ppmDtc, ppmGuiCbxIfc, m_session); m_ui->widget->setModel(m_nasatAircraftParticipantModel); // connects fuer Widgetaenderungen connect(m_ui->widget, &LtsDataView::LtsDataView::signalSelectionChanged, this, &GuezNasatPartDialog::onSelectionChanged); connect(m_ui->widget, &LtsDataView::LtsDataView::signalDoubleClicked, this, &GuezNasatPartDialog::onEditAircraftPart); // Create Add-Button m_buttonBox->setButtonVisible(LtsWidgets::DialogButton::Add, true); m_buttonBox->connectButton(LtsWidgets::DialogButton::Add, this, &GuezNasatPartDialog::onNewAircraftPart); // Create Remove-Button m_buttonBox->connectButton(LtsWidgets::DialogButton::Remove, this, &GuezNasatPartDialog::onRemoveAircraftPart); m_buttonBox->setButtonEnabled(LtsWidgets::DialogButton::Remove, false); // Create Modify-Button m_buttonBox->setButtonVisible(LtsWidgets::DialogButton::Edit, true); m_buttonBox->setButtonEnabled(LtsWidgets::DialogButton::Edit, false); m_buttonBox->connectButton(LtsWidgets::DialogButton::Edit, this, &GuezNasatPartDialog::onEditAircraftPart); #ifndef LTS_DEBUG m_ui->widget->hideColumn(NasatAircraftParticipantModel::Columns::Id); m_ui->widget->hideColumn(NasatAircraftParticipantModel::Columns::NasatAircreaftId); m_ui->widget->hideColumn(NasatAircraftParticipantModel::Columns::ExerciseId); m_ui->widget->hideColumn(NasatAircraftParticipantModel::Columns::ExerciseName); m_ui->widget->hideColumn(NasatAircraftParticipantModel::Columns::ParticipantId); #endif return true; } void GuezNasatPartDialog::retranslate() { translate(m_ui, tr("Assign Aircrafts")); } void GuezNasatPartDialog::onNewAircraftPart() { INFO_LOG(m_logger) << "onNewAircraft"; AssignGuezNasatPartDialog *assignGuezNasatPartDialog = new AssignGuezNasatPartDialog(m_session->exerciseId(), this); if (!assignGuezNasatPartDialog->init(m_ftc, m_nasatAircraftParticipantModel)) { ERROR_LOG(m_logger) << QLatin1String("Can't initialize AssignGuezNasatPartDialog!"); delete assignGuezNasatPartDialog; return; } addDialog(assignGuezNasatPartDialog, m_menuGroup, QStringLiteral("Add Assign Aircraft"), LtsWidgets::LayoutArea::eDialogTab, true, true); } void GuezNasatPartDialog::onEditAircraftPart() { const QModelIndex curIdx = m_ui->widget->currentIndex(); if (!curIdx.isValid()) return; INFO_LOG(m_logger) << "onEditAircraft"; AssignGuezNasatPartDialog *assignGuezNasatPartDialog = new AssignGuezNasatPartDialog(m_session->exerciseId(), this); if (!assignGuezNasatPartDialog->init(m_ftc, m_nasatAircraftParticipantModel, m_nasatAircraftParticipantModel->getRowData(curIdx.row()))) { ERROR_LOG(m_logger) << QLatin1String("Can't initialize assignGuezNasatPartDialog!"); delete assignGuezNasatPartDialog; return; } addDialog(assignGuezNasatPartDialog, m_menuGroup, QStringLiteral("Edit Assign Aircraft"), LtsWidgets::LayoutArea::eDialogTab, true, true); } void GuezNasatPartDialog::tableColumnOrganiserSetting() { //LtsColumnOrganiser m_ui->widget->setColumnsOrganiserEnabled(identifier(), true); } void GuezNasatPartDialog::onRemoveAircraftPart() { const QModelIndex curIdx = m_ui->widget->currentIndex(); if (!curIdx.isValid()) return; INFO_LOG(m_logger) << "onRemoveNewAircraft"; NasatAircraftParticipant req; req.id(m_nasatAircraftParticipantModel->getRowData(curIdx.row()).id()); m_requestHelper->startSingleRequest([req, this]() { return m_ftc->modifyNasatAircraftParticipantRequest(req, this); }); } void GuezNasatPartDialog::onSelectionChanged() { QModelIndexList selectedRows = m_ui->widget->selectedRows(); const int cntSelectedRows = selectedRows.size(); m_buttonBox->setButtonEnabled(LtsWidgets::DialogButton::Remove, cntSelectedRows == 1); m_buttonBox->setButtonEnabled(LtsWidgets::DialogButton::Edit, cntSelectedRows == 1); } // end of onSelectionChanged() //----------------------------------------------------------------------------- } // namespace GuezNasat