/** * Maindialog for codification dialog * $Id$ * $HeadURL$ * $Author$ * Created by hjl, SLSE, 2016-11-02 */ #include "maindialog.h" #include "ui_maindialog.h" #include "cod_numeral_code_model.h" #include #include MainDialog::MainDialog(QWidget *parent) : QDialog(parent) , m_ui(new Ui::MainDialog) , m_numCodeModel(new NumeralCodeModel(parent)) , m_logger(NGL::NGLLoggerBootstrap::getNGLRootLogger().getNGLLogger("COD_Test_NumeralCodeTableMainDialog")) { m_ui->setupUi(this); } // end of ctor() //----------------------------------------------------------------------------- MainDialog::~MainDialog() { delete m_ui; } // end of dtor() //----------------------------------------------------------------------------- bool MainDialog::init() { bool bOk = initNumeralModel(); connect(m_ui->cbEditMode, &QCheckBox::toggled, this, &MainDialog::onCbEditModeToggled); // connect(m_ui->pbSetHorizontalHeader, &QPushButton::clicked, // this, &MainDialog::onPbSetHorizontalHeader); connect(m_ui->pbSetHorizontalHeader, &QPushButton::clicked, this, &MainDialog::onPbSetHorizontalHeaderCSV); // connect(m_ui->pbSetVerticalHeader, &QPushButton::clicked, // this, &MainDialog::onPbSetVerticalHeader); connect(m_ui->pbSetVerticalHeader, &QPushButton::clicked, this, &MainDialog::onPbSetVerticalHeaderCSV); // Starten im UserMode (nicht editierbar) m_ui->cbEditMode->setChecked(false); onCbEditModeToggled(false); m_ui->pbSetHorizontalHeader->setEnabled(false); m_ui->pbSetVerticalHeader->setEnabled(false); return bOk; } // end of init() //----------------------------------------------------------------------------- bool MainDialog::initNumeralModel() { m_ui->tvNumeralCode->setModel(m_numCodeModel); QHeaderView *header = m_ui->tvNumeralCode->horizontalHeader(); // header->setSectionResizeMode(QHeaderView::ResizeToContents); header->setVisible(true); QHeaderView *vheader = m_ui->tvNumeralCode->verticalHeader(); vheader->setVisible(true); m_ui->tvNumeralCode->setShowGrid(true); m_ui->tvNumeralCode->setSelectionMode(QAbstractItemView::SingleSelection); return true; } // end of initNumeralModel() //----------------------------------------------------------------------------- void MainDialog::onCbEditModeToggled(bool isChecked) { m_numCodeModel->setEditMode(isChecked); QHeaderView *header = m_ui->tvNumeralCode->horizontalHeader(); QHeaderView *vheader = m_ui->tvNumeralCode->verticalHeader(); if (isChecked) { header->setVisible(false); vheader->setVisible(false); m_ui->tvNumeralCode->setColumnHidden(0, false); m_ui->tvNumeralCode->setRowHidden(0, false); m_ui->pbSetHorizontalHeader->setEnabled(true); m_ui->pbSetVerticalHeader->setEnabled(true); } else { header->setVisible(true); vheader->setVisible(true); m_ui->tvNumeralCode->setColumnHidden(0, true); m_ui->tvNumeralCode->setRowHidden(0, true); m_ui->pbSetHorizontalHeader->setEnabled(false); m_ui->pbSetVerticalHeader->setEnabled(false); getNumeralCodeHeader(); } } // end of onCbEditModeToggled() //----------------------------------------------------------------------------- void MainDialog::onPbSetHorizontalHeader() { QVector columnSelectionValues; columnSelectionValues << 'h' << 'o' << 'r' << 'i' << 'z' << 'o' << 'n' << 't' << 'a' << 'l' << 'i' << 'd' << 'x'; m_numCodeModel->setColumnSelectionValues(columnSelectionValues); } // end of onPbSetHorizontalHeader() //----------------------------------------------------------------------------- void MainDialog::onPbSetHorizontalHeaderCSV() { QVector columnSelectionValues; columnSelectionValues << 'h' << 'o' << 'r' << 'i' << 'z' << 'o' << 'n' << 't' << 'a' << 'l' << 'c' << 's' << 'v'; QVector csvVec; csvVec.reserve(columnSelectionValues.size() * 2); for (int i = 0; i < columnSelectionValues.size(); ++i) { csvVec.append(columnSelectionValues.at(i)); csvVec.append(';'); } // remove last separator csvVec.remove(columnSelectionValues.size() * 2 - 1); DEBUG_LOG(m_logger) << "onPbSetHorizontalHeaderCSV() " << " csvVec.size(): " << csvVec.size(); m_numCodeModel->setColumnSelectionValuesCSV(csvVec); } // end of onPbSetHorizontalHeaderCSV() //----------------------------------------------------------------------------- void MainDialog::onPbSetVerticalHeader() { QVector rowSelectionValues; rowSelectionValues << 'v' << 'e' << 'r' << 't' << 'i' << 'c' << 'a' << 'l' << 'i' << 'n' << 'd' << 'e' << 'x' ; m_numCodeModel->setRowSelectionValues(rowSelectionValues); } // end of onPbSetVerticalHeader() //----------------------------------------------------------------------------- void MainDialog::onPbSetVerticalHeaderCSV() { QVector rowSelectionValues; rowSelectionValues << 'v' << 'e' << 'r' << 't' << 'i' << 'c' << 'a' << 'l' << 'i' << 'n' << 'c' << 's' << 'v'; QVector csvVec; csvVec.reserve(rowSelectionValues.size() * 2); for (int i = 0; i < rowSelectionValues.size(); ++i) { csvVec.append(rowSelectionValues.at(i)); csvVec.append(';'); } // remove last separator csvVec.remove(rowSelectionValues.size() * 2 - 1); DEBUG_LOG(m_logger) << "onPbSetVerticalHeaderCSV() " << " csvVec.size(): " << csvVec.size(); m_numCodeModel->setRowSelectionValuesCSV(csvVec); } // end of onPbSetVerticalHeaderCSV() //----------------------------------------------------------------------------- void MainDialog::getNumeralCodeHeader() { QVector qVecHH = m_numCodeModel->getHorizontalHeaderCSV(); QByteArray qbaHH; for (int i = 0; i < qVecHH.size(); ++i) qbaHH.append(qVecHH.at(i)); QVector qVecVH = m_numCodeModel->getVerticalHeaderCSV(); QByteArray qbaVH; for (int i = 0; i < qVecVH.size(); ++i) qbaVH.append(qVecVH.at(i)); DEBUG_LOG(m_logger) << "getNumeralCodeHeader()" << " HH: " << qbaHH << " size: " << qbaHH.size() << " VH: " << qbaVH << " size: " << qbaVH.size(); // -> DDS schicken } // end of getNumeralCodeHeader() //-----------------------------------------------------------------------------