Files
qt5-legatus-legacy/Lts/Plugins/CodificationManagement/Test/maindialog.cpp
T
2026-08-13 18:33:10 +02:00

217 lines
6.6 KiB
C++
Executable File

/**
* 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 <QVector>
#include <NGLLogger/NGLLoggerBootstrap.h>
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 <char> 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 <char> columnSelectionValues;
columnSelectionValues << 'h' << 'o' << 'r'
<< 'i' << 'z' << 'o'
<< 'n' << 't' << 'a'
<< 'l' << 'c' << 's'
<< 'v';
QVector <char> 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 <char> 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 <char> rowSelectionValues;
rowSelectionValues << 'v' << 'e' << 'r'
<< 't' << 'i' << 'c'
<< 'a' << 'l' << 'i'
<< 'n' << 'c' << 's'
<< 'v';
QVector <char> 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 <char> qVecHH = m_numCodeModel->getHorizontalHeaderCSV();
QByteArray qbaHH;
for (int i = 0; i < qVecHH.size(); ++i)
qbaHH.append(qVecHH.at(i));
QVector <char> 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()
//-----------------------------------------------------------------------------