/** * @RDE_HEADER@ * SanNineLiner - Overview Dialog * $Id$ * $HeadURL$ * $Author$ * Created by Hanna E. Rathje, SLSE, 2020-05-14 */ #include "san_nine_liner_dialog.h" #include "ui_san_nine_liner_dialog.h" #include "san_nine_liner_dialog_model.h" #include "san_nine_liner_edit_dialog.h" #include #include #include namespace Evaluations { //--------------------------------- // SanNineLinerDialog //--------------------------------- SanNineLinerDialog::SanNineLinerDialog(const QString &menuGroup, QWidget *parent) : LtsWidgets::LtsDialog(parent, LtsWidgets::ButtonCombination::CloseOnly) , m_ui(new Ui::SanNineLinerDialog) , m_menuGroup(menuGroup) , m_requestHelper(new LtsUtils::RequestHelper(this)) , m_logger(getLogger("SanNineLinerDialog")) { m_ui->setupUi(this); setOnlineHelpFilename(QStringLiteral("Situation-SanNineLiner")); m_buttonBox->connectButton(LtsWidgets::DialogButton::Add, this, &SanNineLinerDialog::onAddSanNineLiner); m_buttonBox->connectButton(LtsWidgets::DialogButton::Edit, this, &SanNineLinerDialog::onEditSanNineLiner); m_buttonBox->connectButton(LtsWidgets::DialogButton::Remove, this, &SanNineLinerDialog::onRemoveSanNineLiner); connect(m_ui->widget, &LtsDataView::LtsDataView::signalDoubleClicked, this, &SanNineLinerDialog::onEditSanNineLiner); } SanNineLinerDialog::~SanNineLinerDialog() { delete m_ui; } void SanNineLinerDialog::retranslate() { translate(m_ui, tr("SanNineLiner")); } void SanNineLinerDialog::tableColumnOrganiserSetting() { //LtsColumnOrganiser m_ui->widget->setColumnsOrganiserEnabled(identifier(), true); } bool SanNineLinerDialog::init(LtsSession::LtsSessionDataDds *session) { m_session = session; std::shared_ptr dtc; if (!m_session->getDtc(dtc)) return false; if (!m_session->getFtc(m_ftc)) return false; m_model = new SanNineLinerDialogModel(this); m_model->initModel(dtc); auto proxy = new SanNineLinerProxyModel(this); proxy->setSourceModel(m_model); m_ui->widget->setModel(proxy); connect(m_ui->widget, &LtsDataView::LtsDataView::signalSelectionChanged, this, &SanNineLinerDialog::enaDisa); enaDisa(); return true; } void SanNineLinerDialog::enaDisa() { QModelIndexList selectedRows = m_ui->widget->selectedRows(); const int cntSelectedRows = selectedRows.size(); m_buttonBox->setButtonEnabled(LtsWidgets::DialogButton::Edit, cntSelectedRows == 1); const QModelIndex curIdx = m_ui->widget->currentIndex(); m_buttonBox->setButtonEnabled(LtsWidgets::DialogButton::Remove, curIdx.isValid() && cntSelectedRows == 1); } void SanNineLinerDialog::onAddSanNineLiner() { SanNineLinerEditDialog *dialog = new SanNineLinerEditDialog(this); dialog->init(m_session, m_menuGroup, 0 /* new sanNineLiner */); addDialog(dialog, m_menuGroup, QStringLiteral("New SanNineLiner")); } void SanNineLinerDialog::onRemoveSanNineLiner() { const QModelIndex curIdx = m_ui->widget->currentIndex(); if (!curIdx.isValid()) return; const int sanNineLinerId = m_model->getRowData(curIdx.row()).id(); Core::RemoveElementRequest req(sanNineLinerId); m_requestHelper->startSingleRequest([req, this]() { return m_ftc->sanNineLinerRemoveRequest(req, this); }); } void SanNineLinerDialog::onEditSanNineLiner() { const QModelIndex idx = m_ui->widget->currentIndex(); const Evaluations::SanNineLiner san = m_model->getRowData(idx.row()); if (san.id() <= 0) return; DEBUG_LOG(m_logger) << "current SanNineLinerId: " << san.id(); SanNineLinerEditDialog *dialog = new SanNineLinerEditDialog(this); dialog->init(m_session, m_menuGroup, san.id()); const QString identifier = QStringLiteral("EditSanNineLiner%1").arg(san.id()); addDialog(dialog, m_menuGroup, identifier); } } // namespace Evaluations