From 03651a6e7a8b046b6e07d3ffda28679d64fd5d29 Mon Sep 17 00:00:00 2001 From: yangjiaxuan <171295266@qq.com> Date: Wed, 20 Dec 2023 14:32:16 +0800 Subject: [PATCH] =?UTF-8?q?=E8=A7=A3=E5=86=B3=E6=89=AB=E6=8F=8F=E8=87=B3?= =?UTF-8?q?=E6=97=B6=EF=BC=8C=E7=BC=A9=E7=95=A5=E5=9B=BE=E5=88=87=E6=8D=A2?= =?UTF-8?q?=E5=9B=BE=E7=89=87=E6=97=B6=EF=BC=8C=E6=9C=AC=E5=9C=B0=E6=96=87?= =?UTF-8?q?=E4=BB=B6=E6=8E=92=E5=BA=8F=E5=BC=82=E5=B8=B8=E7=9A=84=E9=97=AE?= =?UTF-8?q?=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/scanner2/mainwindow.cpp | 316 ++++++++++++++++++------------------ app/scanner2/mainwindow.h | 1 + 2 files changed, 158 insertions(+), 159 deletions(-) diff --git a/app/scanner2/mainwindow.cpp b/app/scanner2/mainwindow.cpp index 3d744f1a..0fdd3f6b 100644 --- a/app/scanner2/mainwindow.cpp +++ b/app/scanner2/mainwindow.cpp @@ -881,145 +881,6 @@ void MainWindow::on_currItemChanged(int index) m_wndStatusBar->setPageInfo(count, m_currIndex); updateStatusBarPixelInfo(); updateActionStatus(); - - if (!m_isScanning && !m_curBatchFileList.empty()) - { - std::vector fileNames; - - int count = 0; - m_thumb->getItemCount(&count); - for (int i = 0; i < count; ++i) - { - QString fileName; - m_thumb->getItemFileName(i, fileName); - - std::list::iterator iter; - for (iter = m_curBatchFileList.begin(); iter != m_curBatchFileList.end(); ++iter) - { - if (*iter == fileName) - { - HGChar name[256]; - HGBase_GetFileName(fileName.toLocal8Bit().toStdString().c_str(), name, 256); - HGChar filePrefix[256]; - HGBase_GetFilePrefix(name, filePrefix, 256); - fileNames.push_back(filePrefix); - break; - } - } - } - - std::vector backupFileNames = fileNames; - std::sort(fileNames.begin(), fileNames.end(), Greater); - if (backupFileNames != fileNames) - { - std::list batchTmpFileList; - for (int i = 0; i < count; ++i) - { - QString fileName; - m_thumb->getItemFileName(i, fileName); - - std::list::iterator iter; - for (iter = m_curBatchFileList.begin(); iter != m_curBatchFileList.end(); ++iter) - { - if (*iter == fileName) - { - HGChar filePath[256]; - HGBase_GetFilePath(fileName.toLocal8Bit().toStdString().c_str(), filePath, 256); - HGChar name[256]; - HGBase_GetFileName(fileName.toLocal8Bit().toStdString().c_str(), name, 256); - HGChar filePrefix[256]; - HGBase_GetFilePrefix(name, filePrefix, 256); - HGChar fileSuffix[256]; - HGBase_GetFileSuffix(name, fileSuffix, 256); - HGChar uuid[256]; - HGBase_GetUuid(uuid, 256); - - QString strFilePath = QString::fromLocal8Bit(filePath); - QString strFileSuffix = QString::fromLocal8Bit(fileSuffix); - QString strUuid = QString::fromLocal8Bit(uuid); - QString newFileName = strFilePath + strUuid + "." + strFileSuffix; - - QFile file(fileName); - file.rename(newFileName); - m_thumb->updateItem(fileName, newFileName, false); - - m_curBatchFileList.erase(iter); - batchTmpFileList.push_back(newFileName); - break; - } - } - } - - std::list::iterator iter; - for (iter = batchTmpFileList.begin(); iter != batchTmpFileList.end(); ++iter) - { - HGChar filePath[256]; - HGBase_GetFilePath((*iter).toLocal8Bit().toStdString().c_str(), filePath, 256); - HGChar fileSuffix[256]; - HGBase_GetFileSuffix((*iter).toLocal8Bit().toStdString().c_str(), fileSuffix, 256); - - QString strFilePath = QString::fromLocal8Bit(filePath); - QString strFileSuffix = QString::fromLocal8Bit(fileSuffix); - - QString newFileName; - while (!fileNames.empty()) - { - QString fileName = strFilePath + fileNames.front() + "." + strFileSuffix; - QFileInfo fileInfo(fileName); - if (fileInfo.isFile()) - { - fileNames.erase(fileNames.begin()); - } - else - { - newFileName = fileName; - break; - } - } - - if (!newFileName.isEmpty()) - { - QFile file(*iter); - file.rename(newFileName); - m_thumb->updateItem(*iter, newFileName, false); - m_curBatchFileList.push_back(newFileName); - fileNames.erase(fileNames.begin()); - } - else - { - while (1) - { - QString fileName = strFilePath + m_aquireIntoSaveParam.m_fileNamePrefix + QString("%1.%2") - .arg(m_aquireIntoSaveParam.m_fileNameStartIndex, m_aquireIntoSaveParam.m_fileNameDigits, 10, QLatin1Char('0')) - .arg(strFileSuffix); - QFileInfo fileInfo(fileName); - if (fileInfo.isFile()) - { - ++m_aquireIntoSaveParam.m_fileNameStartIndex; - saveCfgValue(m_cbtn_acquireIntoCfg->currentText().toLocal8Bit().toStdString().c_str(), "startIndex", m_aquireIntoSaveParam.m_fileNameStartIndex); - } - else - { - newFileName = fileName; - break; - } - } - - if (!newFileName.isEmpty()) - { - QFile file(*iter); - file.rename(newFileName); - m_thumb->updateItem(*iter, newFileName, false); - m_curBatchFileList.push_back(newFileName); - ++m_aquireIntoSaveParam.m_fileNameStartIndex; - saveCfgValue(m_cbtn_acquireIntoCfg->currentText().toLocal8Bit().toStdString().c_str(), "startIndex", m_aquireIntoSaveParam.m_fileNameStartIndex); - } - } - } - - batchTmpFileList.clear(); - } - } } void MainWindow::on_itemDoubleClicked(int index) @@ -1053,6 +914,8 @@ void MainWindow::on_thumbDrop(const QObject *source, const QStringList &fileName m_thumb->insertItems(fileNames, pos); else m_thumb->moveItems(fileNames, pos); + + updateLocalFileName(); } void MainWindow::on_viewerDrop(const QObject *source, const QStringList &fileNames) @@ -1089,6 +952,8 @@ void MainWindow::on_act_moveTo_triggered() int index = dlg.getMoveToIndex(); m_thumb->moveItemsTo(fileNames, index); + + updateLocalFileName(); } } @@ -1295,7 +1160,6 @@ void MainWindow::on_newImage(void *image) if (fileInfo.isFile()) { ++m_aquireIntoSaveParam.m_fileNameStartIndex; - saveCfgValue(m_cbtn_acquireIntoCfg->currentText().toLocal8Bit().toStdString().c_str(), "startIndex", m_aquireIntoSaveParam.m_fileNameStartIndex); } else { @@ -1361,10 +1225,7 @@ void MainWindow::on_newImage(void *image) emit post_new_image(m_scanFileName); m_scanFileName.clear(); if (-1 == m_scanInsertPos) - { ++m_aquireIntoSaveParam.m_fileNameStartIndex; - saveCfgValue(m_cbtn_acquireIntoCfg->currentText().toLocal8Bit().toStdString().c_str(), "startIndex", m_aquireIntoSaveParam.m_fileNameStartIndex); - } m_aquireIntoMultiPageCount = 0; } else @@ -1430,7 +1291,6 @@ void MainWindow::on_newImage(void *image) if (fileInfo.isFile()) { ++m_aquireIntoSaveParam.m_fileNameStartIndex; - saveCfgValue(m_cbtn_acquireIntoCfg->currentText().toLocal8Bit().toStdString().c_str(), "startIndex", m_aquireIntoSaveParam.m_fileNameStartIndex); } else { @@ -1480,10 +1340,7 @@ void MainWindow::on_newImage(void *image) { emit post_new_image(m_scanFileName); if (-1 == m_scanInsertPos) - { ++m_aquireIntoSaveParam.m_fileNameStartIndex; - saveCfgValue(m_cbtn_acquireIntoCfg->currentText().toLocal8Bit().toStdString().c_str(), "startIndex", m_aquireIntoSaveParam.m_fileNameStartIndex); - } } m_scanFileName.clear(); @@ -1530,8 +1387,6 @@ void MainWindow::on_scanFinishEvent() m_previewImage = nullptr; HGBase_LeaveLock(m_lockPreviewImage); m_view->enableHighQuality(true); - m_isScanning = false; - updateActionStatus(); if (nullptr != m_scanImgFmtWriter) { @@ -1540,10 +1395,7 @@ void MainWindow::on_scanFinishEvent() emit post_new_image(m_scanFileName); m_scanFileName.clear(); if (-1 == m_scanInsertPos) - { ++m_aquireIntoSaveParam.m_fileNameStartIndex; - saveCfgValue(m_cbtn_acquireIntoCfg->currentText().toLocal8Bit().toStdString().c_str(), "startIndex", m_aquireIntoSaveParam.m_fileNameStartIndex); - } m_aquireIntoMultiPageCount = 0; } @@ -1559,6 +1411,16 @@ void MainWindow::on_scanFinishEvent() m_ocrMsgPump = NULL; } + if (-1 != m_scanCurIndex) + { + m_thumb->setCurrItem(m_scanCurIndex); + } + + m_isScanning = false; + updateActionStatus(); + + saveCfgValue(m_cbtn_acquireIntoCfg->currentText().toLocal8Bit().toStdString().c_str(), "startIndex", m_aquireIntoSaveParam.m_fileNameStartIndex); + QMessageBox msg(QMessageBox::Information, tr("Prompt"), tr("This scan is complete. Do you want to continue scanning?"), QMessageBox::Yes | QMessageBox::No, this); msg.exec(); @@ -1604,11 +1466,6 @@ void MainWindow::on_scanFinishEvent() } else { - if (-1 != m_scanCurIndex) - { - m_thumb->setCurrItem(m_scanCurIndex); - } - if (!m_curBatchTmpFileList.empty()) { assert(ScanType_InsertScanInto == m_scanType); @@ -1702,7 +1559,6 @@ void MainWindow::on_scanFinishEvent() if (fileInfo.isFile()) { ++m_aquireIntoSaveParam.m_fileNameStartIndex; - saveCfgValue(m_cbtn_acquireIntoCfg->currentText().toLocal8Bit().toStdString().c_str(), "startIndex", m_aquireIntoSaveParam.m_fileNameStartIndex); } else { @@ -1718,12 +1574,12 @@ void MainWindow::on_scanFinishEvent() m_thumb->updateItem(*iter, newFileName, false); m_curBatchFileList.push_back(newFileName); ++m_aquireIntoSaveParam.m_fileNameStartIndex; - saveCfgValue(m_cbtn_acquireIntoCfg->currentText().toLocal8Bit().toStdString().c_str(), "startIndex", m_aquireIntoSaveParam.m_fileNameStartIndex); } } } m_curBatchTmpFileList.clear(); + saveCfgValue(m_cbtn_acquireIntoCfg->currentText().toLocal8Bit().toStdString().c_str(), "startIndex", m_aquireIntoSaveParam.m_fileNameStartIndex); } } } @@ -4606,6 +4462,148 @@ void MainWindow::deleteDevUser() } } +void MainWindow::updateLocalFileName() +{ + if (!m_isScanning && !m_curBatchFileList.empty()) + { + std::vector fileNames; + + int count = 0; + m_thumb->getItemCount(&count); + for (int i = 0; i < count; ++i) + { + QString fileName; + m_thumb->getItemFileName(i, fileName); + + std::list::iterator iter; + for (iter = m_curBatchFileList.begin(); iter != m_curBatchFileList.end(); ++iter) + { + if (*iter == fileName) + { + HGChar name[256]; + HGBase_GetFileName(fileName.toLocal8Bit().toStdString().c_str(), name, 256); + HGChar filePrefix[256]; + HGBase_GetFilePrefix(name, filePrefix, 256); + fileNames.push_back(filePrefix); + break; + } + } + } + + std::vector backupFileNames = fileNames; + std::sort(fileNames.begin(), fileNames.end(), Greater); + if (backupFileNames != fileNames) + { + std::list batchTmpFileList; + for (int i = 0; i < count; ++i) + { + QString fileName; + m_thumb->getItemFileName(i, fileName); + + std::list::iterator iter; + for (iter = m_curBatchFileList.begin(); iter != m_curBatchFileList.end(); ++iter) + { + if (*iter == fileName) + { + HGChar filePath[256]; + HGBase_GetFilePath(fileName.toLocal8Bit().toStdString().c_str(), filePath, 256); + HGChar name[256]; + HGBase_GetFileName(fileName.toLocal8Bit().toStdString().c_str(), name, 256); + HGChar filePrefix[256]; + HGBase_GetFilePrefix(name, filePrefix, 256); + HGChar fileSuffix[256]; + HGBase_GetFileSuffix(name, fileSuffix, 256); + HGChar uuid[256]; + HGBase_GetUuid(uuid, 256); + + QString strFilePath = QString::fromLocal8Bit(filePath); + QString strFileSuffix = QString::fromLocal8Bit(fileSuffix); + QString strUuid = QString::fromLocal8Bit(uuid); + QString newFileName = strFilePath + strUuid + "." + strFileSuffix; + + QFile file(fileName); + file.rename(newFileName); + m_thumb->updateItem(fileName, newFileName, false); + + m_curBatchFileList.erase(iter); + batchTmpFileList.push_back(newFileName); + break; + } + } + } + + std::list::iterator iter; + for (iter = batchTmpFileList.begin(); iter != batchTmpFileList.end(); ++iter) + { + HGChar filePath[256]; + HGBase_GetFilePath((*iter).toLocal8Bit().toStdString().c_str(), filePath, 256); + HGChar fileSuffix[256]; + HGBase_GetFileSuffix((*iter).toLocal8Bit().toStdString().c_str(), fileSuffix, 256); + + QString strFilePath = QString::fromLocal8Bit(filePath); + QString strFileSuffix = QString::fromLocal8Bit(fileSuffix); + + QString newFileName; + while (!fileNames.empty()) + { + QString fileName = strFilePath + fileNames.front() + "." + strFileSuffix; + QFileInfo fileInfo(fileName); + if (fileInfo.isFile()) + { + fileNames.erase(fileNames.begin()); + } + else + { + newFileName = fileName; + break; + } + } + + if (!newFileName.isEmpty()) + { + QFile file(*iter); + file.rename(newFileName); + m_thumb->updateItem(*iter, newFileName, false); + m_curBatchFileList.push_back(newFileName); + fileNames.erase(fileNames.begin()); + } + else + { + while (1) + { + QString fileName = strFilePath + m_aquireIntoSaveParam.m_fileNamePrefix + QString("%1.%2") + .arg(m_aquireIntoSaveParam.m_fileNameStartIndex, m_aquireIntoSaveParam.m_fileNameDigits, 10, QLatin1Char('0')) + .arg(strFileSuffix); + QFileInfo fileInfo(fileName); + if (fileInfo.isFile()) + { + ++m_aquireIntoSaveParam.m_fileNameStartIndex; + saveCfgValue(m_cbtn_acquireIntoCfg->currentText().toLocal8Bit().toStdString().c_str(), "startIndex", m_aquireIntoSaveParam.m_fileNameStartIndex); + } + else + { + newFileName = fileName; + break; + } + } + + if (!newFileName.isEmpty()) + { + QFile file(*iter); + file.rename(newFileName); + m_thumb->updateItem(*iter, newFileName, false); + m_curBatchFileList.push_back(newFileName); + ++m_aquireIntoSaveParam.m_fileNameStartIndex; + } + } + } + + batchTmpFileList.clear(); + saveCfgValue(m_cbtn_acquireIntoCfg->currentText().toLocal8Bit().toStdString().c_str(), "startIndex", m_aquireIntoSaveParam.m_fileNameStartIndex); + } + } +} + #if !defined(HG_CMP_MSC) void MainWindow::checkRollerLife() { diff --git a/app/scanner2/mainwindow.h b/app/scanner2/mainwindow.h index 37c921d6..d4c37f1e 100644 --- a/app/scanner2/mainwindow.h +++ b/app/scanner2/mainwindow.h @@ -268,6 +268,7 @@ private: void initAcquireIntoComboBox(); void updateSideBar(); void deleteDevUser(); + void updateLocalFileName(); #if !defined(HG_CMP_MSC) void checkRollerLife();