#include "maindialog.h" #include "cod_numeral_code_model.h" #include "ui_maindialog.h" #include #include MainDialog::MainDialog(QWidget *parent) : QDialog(parent) , m_ui(new Ui::MainDialog) , m_numCodeModel(new NumeralCodeModel(parent)) .getNGLLogger("COD_Test_NumeralCodeTableMainDialog")), m_logger(NGL::NGLLoggerBootstrap::getNGLRootLogger()) { m_ui->setupUi(this); } MainDialog::~MainDialog() { delete m_ui; } bool MainDialog::init() { bool bOk = initNumeralModel(); connect(m_ui->cbEditMode, &QCheckBox::toggled, this, &MainDialog::onCbEditModeToggled); connect(m_ui->pbSetHorizontalHeader, &QPushButton::clicked, this, &MainDialog::onPbSetHorizontalHeaderCSV); connect(m_ui->pbSetVerticalHeader, &QPushButton::clicked, this, &MainDialog::onPbSetVerticalHeaderCSV); m_ui->cbEditMode->setChecked(false); onCbEditModeToggled(false); m_ui->pbSetHorizontalHeader->setEnabled(false); m_ui->pbSetVerticalHeader->setEnabled(false); return bOk; } bool MainDialog::initNumeralModel() { m_ui->tvNumeralCode->setModel(m_numCodeModel); QHeaderView* header = m_ui->tvNumeralCode->horizontalHeader(); 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; } 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(); } } void MainDialog::onPbSetHorizontalHeader() { QVector columnSelectionValues; columnSelectionValues << 'h' << 'o' << 'r' << 'i' << 'z' << 'o' << 'n' << 't' << 'a' << 'l' << 'i' << 'd' << 'x'; m_numCodeModel->setColumnSelectionValues(columnSelectionValues); } 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(';'); } csvVec.remove(columnSelectionValues.size() * 2 - 1); DEBUG_LOG(m_logger) << "onPbSetHorizontalHeaderCSV() " << " csvVec.size(): " << csvVec.size(); m_numCodeModel->setColumnSelectionValuesCSV(csvVec); } void MainDialog::onPbSetVerticalHeader() { QVector rowSelectionValues; rowSelectionValues << 'v' << 'e' << 'r' << 't' << 'i' << 'c' << 'a' << 'l' << 'i' << 'n' << 'd' << 'e' << 'x'; m_numCodeModel->setRowSelectionValues(rowSelectionValues); } 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(';'); } csvVec.remove(rowSelectionValues.size() * 2 - 1); DEBUG_LOG(m_logger) << "onPbSetVerticalHeaderCSV() " << " csvVec.size(): " << csvVec.size(); m_numCodeModel->setRowSelectionValuesCSV(csvVec); } 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(); }