V6.7.5_beta
This commit is contained in:
+13
-87
@@ -8,34 +8,13 @@
|
||||
#include "DlgQrcodeFormat.h"
|
||||
|
||||
// 使用SysPara的相关参数构造CounterEditorVM
|
||||
CounterEditorVM makeCounterVM(SysPara* sysPara, COUNTER_TYPE type, int digitalNum)
|
||||
CounterEditorVM makeCounterVM(COUNTER_TYPE type, int digitalNum, const CounterSettings& cnt1Settings, const CounterSettings& cnt2Settings)
|
||||
{
|
||||
CounterEditorVM vm;
|
||||
if(!sysPara)
|
||||
return vm;
|
||||
|
||||
vm.counterType = type;
|
||||
vm.digitalNum = digitalNum;
|
||||
|
||||
auto& cnt1 = vm.counter1;
|
||||
cnt1.startValue = sysPara->para.cnt1StartValue;
|
||||
cnt1.endValue = sysPara->para.cnt1EndValue;
|
||||
cnt1.repeatValue = sysPara->para.cnt1RepeateValue;
|
||||
cnt1.stepValue = sysPara->para.cnt1StepValue;
|
||||
cnt1.currValue = sysPara->para.cnt1CurrValue;
|
||||
// cnt1CurrentValueInitDoneFlag 与 checkBoxResetCnt1CurrValue 的勾选互为反向
|
||||
cnt1.editCurrValue = !sysPara->status.cnt1CurrentValueInitDoneFlag;
|
||||
cnt1.eleEyeIncEn = (sysPara->para.eleEyeClearCntInSynMode & 0x10) != 0;
|
||||
|
||||
auto& cnt2 = vm.counter2;
|
||||
cnt2.startValue = sysPara->para.cnt2StartValue;
|
||||
cnt2.endValue = sysPara->para.cnt2EndValue;
|
||||
cnt2.repeatValue = sysPara->para.cnt2RepeateValue;
|
||||
cnt2.stepValue = sysPara->para.cnt2StepValue;
|
||||
cnt2.currValue = sysPara->para.cnt2CurrValue;
|
||||
cnt2.editCurrValue = !sysPara->status.cnt2CurrentValueInitDoneFlag;
|
||||
cnt2.eleEyeIncEn = (sysPara->para.eleEyeClearCntInSynMode & 0x20) != 0;
|
||||
|
||||
vm.counter1 = cnt1Settings;
|
||||
vm.counter2 = cnt2Settings;
|
||||
return vm;
|
||||
}
|
||||
|
||||
@@ -90,15 +69,6 @@ BarcodeEditor::~BarcodeEditor()
|
||||
delete ui;
|
||||
}
|
||||
|
||||
void BarcodeEditor::bindSysPara(SysPara *sysPara)
|
||||
{
|
||||
if (!sysPara) {
|
||||
qWarning() << "BarcodeEditor::bindSysPara: null pointer passed, ignored";
|
||||
return;
|
||||
}
|
||||
m_sysPara = sysPara;
|
||||
}
|
||||
|
||||
void BarcodeEditor::bindViewModel(const BarcodeViewModel &vm)
|
||||
{
|
||||
m_vm = vm;
|
||||
@@ -171,9 +141,11 @@ void BarcodeEditor::bindViewModel(const BarcodeViewModel &vm)
|
||||
if(ui->tabWidget->indexOf(m_counterEditor) == -1) {
|
||||
ui->tabWidget->addTab(m_counterEditor, tr(u8"计数器"));
|
||||
}
|
||||
m_counterEditor->setViewModel(makeCounterVM(m_sysPara,
|
||||
m_counterEditor->setViewModel(makeCounterVM(
|
||||
static_cast<COUNTER_TYPE>(m_vm.counterViewModel.counterType),
|
||||
m_vm.counterViewModel.digitalNum));
|
||||
m_vm.counterViewModel.digitalNum,
|
||||
m_vm.counterViewModel.cnt1Settings,
|
||||
m_vm.counterViewModel.cnt2Settings));
|
||||
m_counterEditor->setFixedSize(ui->tabBarcode->size());
|
||||
}
|
||||
else {
|
||||
@@ -226,6 +198,8 @@ BarcodeViewModel BarcodeEditor::viewModel()
|
||||
CounterEditorVM cnt = m_counterEditor->viewModel();
|
||||
m_vm.counterViewModel.counterType = cnt.counterType;
|
||||
m_vm.counterViewModel.digitalNum = cnt.digitalNum;
|
||||
m_vm.counterViewModel.cnt1Settings = cnt.counter1;
|
||||
m_vm.counterViewModel.cnt2Settings = cnt.counter2;
|
||||
}
|
||||
|
||||
return m_vm;
|
||||
@@ -242,53 +216,6 @@ void BarcodeEditor::restoreViewModel()
|
||||
bindViewModel(m_vm);
|
||||
}
|
||||
|
||||
/**
|
||||
* @brief 逻辑基本类似 CounterVarSet::applyUIPara
|
||||
*
|
||||
*/
|
||||
void BarcodeEditor::applyCounterConfigToSysPara()
|
||||
{
|
||||
if(!m_vm.contentPattern.contains("{c}"))
|
||||
return;
|
||||
|
||||
if (!m_sysPara) {
|
||||
qWarning() << "BarcodeEditor::applyCounterConfigToSysPara: m_sysPara is null, skipping";
|
||||
return;
|
||||
}
|
||||
|
||||
CounterEditorVM cnt = m_counterEditor->viewModel();
|
||||
if(cnt.counterType == COUNTER_TYPE_1) {
|
||||
m_sysPara->para.cnt1StartValue = cnt.counter1.startValue;
|
||||
m_sysPara->para.cnt1EndValue = cnt.counter1.endValue;
|
||||
m_sysPara->para.cnt1RepeateValue = cnt.counter1.repeatValue;
|
||||
m_sysPara->para.cnt1StepValue = cnt.counter1.stepValue;
|
||||
m_sysPara->para.cnt1CurrValue = cnt.counter1.currValue;
|
||||
m_sysPara->status.cnt1CurrentValueInitDoneFlag = cnt.counter1.editCurrValue;
|
||||
|
||||
if(cnt.counter1.eleEyeIncEn)
|
||||
m_sysPara->para.eleEyeClearCntInSynMode = (m_sysPara->para.eleEyeClearCntInSynMode | 0x10); // CNT1 +1
|
||||
else
|
||||
m_sysPara->para.eleEyeClearCntInSynMode = (m_sysPara->para.eleEyeClearCntInSynMode & 0xef); // CNT1 = current
|
||||
|
||||
}
|
||||
else if(cnt.counterType == COUNTER_TYPE_2) {
|
||||
m_sysPara->para.cnt2StartValue = cnt.counter2.startValue;
|
||||
m_sysPara->para.cnt2EndValue = cnt.counter2.endValue;
|
||||
m_sysPara->para.cnt2RepeateValue = cnt.counter2.repeatValue;
|
||||
m_sysPara->para.cnt2StepValue = cnt.counter2.stepValue;
|
||||
m_sysPara->para.cnt2CurrValue = cnt.counter2.currValue;
|
||||
m_sysPara->status.cnt2CurrentValueInitDoneFlag = cnt.counter2.editCurrValue;
|
||||
|
||||
if(cnt.counter2.eleEyeIncEn)
|
||||
m_sysPara->para.eleEyeClearCntInSynMode = (m_sysPara->para.eleEyeClearCntInSynMode | 0x20); // CNT2 +1
|
||||
else
|
||||
m_sysPara->para.eleEyeClearCntInSynMode = (m_sysPara->para.eleEyeClearCntInSynMode & 0xdf); // CNT2 = current
|
||||
}
|
||||
|
||||
if(m_sysPara->devOp)
|
||||
m_sysPara->devOp->writeFpgaCalandar(0);
|
||||
}
|
||||
|
||||
void BarcodeEditor::onBtnFormatClicked()
|
||||
{
|
||||
if(m_vm.type == BARCODE_TYPE_BARCODE) {
|
||||
@@ -330,7 +257,6 @@ void BarcodeEditor::onBtnCounterClicked()
|
||||
void BarcodeEditor::onCheckBtnClicked()
|
||||
{
|
||||
m_vm = viewModel();
|
||||
applyCounterConfigToSysPara();
|
||||
emit accepted();
|
||||
hide();
|
||||
}
|
||||
@@ -466,11 +392,11 @@ void BarcodeEditor::onContentChanged(QString content)
|
||||
else {
|
||||
if(ui->tabWidget->indexOf(m_counterEditor) == -1) {
|
||||
ui->tabWidget->addTab(m_counterEditor, tr(u8"计数器"));
|
||||
if(m_sysPara) {
|
||||
m_counterEditor->setViewModel(makeCounterVM(m_sysPara,
|
||||
m_counterEditor->setViewModel(makeCounterVM(
|
||||
static_cast<COUNTER_TYPE>(m_vm.counterViewModel.counterType),
|
||||
m_vm.counterViewModel.digitalNum));
|
||||
}
|
||||
m_vm.counterViewModel.digitalNum,
|
||||
m_vm.counterViewModel.cnt1Settings,
|
||||
m_vm.counterViewModel.cnt2Settings));
|
||||
}
|
||||
m_counterEditor->setFixedSize(ui->tabBarcode->size());
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user