/** * @RDE_HEADER@ * Beschreibung des Dialogs * $Id$ * $HeadURL$ * $Author$ * Created by Mike Wille, SLSE, 2017-11-01 */ #include "gna_dialog.h" #include "ui_gna_dialog.h" #include #include "new_gna_dialog.h" namespace GuezNasat { GuezNasatDialog::GuezNasatDialog(const QString &menuGroup, QWidget *parent) : LtsWidgets::LtsDialog(parent, LtsWidgets::ButtonCombination::CloseOnly) , m_nasatAircraftModel(nullptr) , m_dtc(nullptr) , m_ftc(nullptr) , m_ui(new Ui::GuezNasatDialog) , m_menuGroup(menuGroup) , m_requestHelper(new LtsUtils::RequestHelper(this)) , m_logger(getLogger("Dialog")) { m_ui->setupUi(this); setOnlineHelpFilename(QStringLiteral("Administrator-Airplanes")); } GuezNasatDialog::~GuezNasatDialog() { delete m_ui; } bool GuezNasatDialog::init(const std::shared_ptr &ftc, const std::shared_ptr &dtc) { m_ftc = ftc; m_dtc = dtc; INFO_LOG(m_logger) << "GuezNasatDialog::init"; m_nasatAircraftModel = new GuezNasat::NasatAircraftModel(this); m_nasatAircraftModel->initModel(m_dtc); m_ui->widget->setModel(m_nasatAircraftModel); // connects fuer Widgetaenderungen connect(m_ui->widget, &LtsDataView::LtsDataView::signalSelectionChanged, this, &GuezNasatDialog::onSelectionChanged); // Create Add-Button m_buttonBox->setButtonVisible(LtsWidgets::DialogButton::Add, true); m_buttonBox->connectButton(LtsWidgets::DialogButton::Add, this, &GuezNasatDialog::onNewAircraft); // Create Remove-Button m_buttonBox->connectButton(LtsWidgets::DialogButton::Remove, this, &GuezNasatDialog::onRemoveAircraft); 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, &GuezNasatDialog::onEditAircraft); connect(m_ui->widget, &LtsDataView::LtsDataView::signalDoubleClicked, this, &GuezNasatDialog::onEditAircraft); #ifndef LTS_DEBUG m_ui->widget->hideColumn(NasatAircraftModel::Columns::Id); #endif return true; } void GuezNasatDialog::retranslate() { translate(m_ui, tr("Aircrafts")); } void GuezNasatDialog::onNewAircraft() { INFO_LOG(m_logger) << "onNewAircraft"; NewGuezNasatDialog *newGuezNasatDialog = new NewGuezNasatDialog(this); if (!newGuezNasatDialog->init(m_ftc)) { ERROR_LOG(m_logger) << "Can't initialize NewGuezNasatDialog!"; delete newGuezNasatDialog; return; } addDialog(newGuezNasatDialog, m_menuGroup, QStringLiteral("New Aircraft"), LtsWidgets::LayoutArea::eDialogTab, true, true); } void GuezNasatDialog::onEditAircraft() { const QModelIndex curIdx = m_ui->widget->currentIndex(); if (!curIdx.isValid()) return; INFO_LOG(m_logger) << "onEditAircraft"; NewGuezNasatDialog *editGuezNasatDialog = new NewGuezNasatDialog(this); if (!editGuezNasatDialog->init(m_ftc, m_nasatAircraftModel->getRowData(curIdx.row()))) { ERROR_LOG(m_logger) << "Can't initialize NewGuezNasatDialog!"; delete editGuezNasatDialog; return; } addDialog(editGuezNasatDialog, m_menuGroup, QStringLiteral("Edit Aircraft"), LtsWidgets::LayoutArea::eDialogTab, true, true); } void GuezNasatDialog::tableColumnOrganiserSetting() { //LtsColumnOrganiser m_ui->widget->setColumnsOrganiserEnabled(identifier(), true); } void GuezNasatDialog::onRemoveAircraft() { const QModelIndex curIdx = m_ui->widget->currentIndex(); if (!curIdx.isValid()) return; INFO_LOG(m_logger) << "onRemoveNewAircraft"; NasatAircraft req; req.id(m_nasatAircraftModel->getRowData(curIdx.row()).id()); m_requestHelper->startSingleRequest([req, this]() { return m_ftc->modifyNasatAircraftRequest(req, this); }); } void GuezNasatDialog::onSelectionChanged() { QModelIndexList selectedRows = m_ui->widget->selectedRows(); const int cntSelectedRows = selectedRows.size(); m_buttonBox->setButtonEnabled(LtsWidgets::DialogButton::Edit, cntSelectedRows == 1); m_buttonBox->setButtonEnabled(LtsWidgets::DialogButton::Remove, cntSelectedRows == 1); } // end of onSelectionChanged() //----------------------------------------------------------------------------- } // namespace GuezNasat