解决扫描至时,缩略图切换图片时,本地文件排序异常的问题
This commit is contained in:
parent
bfa51e385c
commit
03651a6e7a
|
@ -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<QString> fileNames;
|
||||
|
||||
int count = 0;
|
||||
m_thumb->getItemCount(&count);
|
||||
for (int i = 0; i < count; ++i)
|
||||
{
|
||||
QString fileName;
|
||||
m_thumb->getItemFileName(i, fileName);
|
||||
|
||||
std::list<QString>::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<QString> backupFileNames = fileNames;
|
||||
std::sort(fileNames.begin(), fileNames.end(), Greater);
|
||||
if (backupFileNames != fileNames)
|
||||
{
|
||||
std::list<QString> batchTmpFileList;
|
||||
for (int i = 0; i < count; ++i)
|
||||
{
|
||||
QString fileName;
|
||||
m_thumb->getItemFileName(i, fileName);
|
||||
|
||||
std::list<QString>::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<QString>::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<QString> fileNames;
|
||||
|
||||
int count = 0;
|
||||
m_thumb->getItemCount(&count);
|
||||
for (int i = 0; i < count; ++i)
|
||||
{
|
||||
QString fileName;
|
||||
m_thumb->getItemFileName(i, fileName);
|
||||
|
||||
std::list<QString>::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<QString> backupFileNames = fileNames;
|
||||
std::sort(fileNames.begin(), fileNames.end(), Greater);
|
||||
if (backupFileNames != fileNames)
|
||||
{
|
||||
std::list<QString> batchTmpFileList;
|
||||
for (int i = 0; i < count; ++i)
|
||||
{
|
||||
QString fileName;
|
||||
m_thumb->getItemFileName(i, fileName);
|
||||
|
||||
std::list<QString>::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<QString>::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()
|
||||
{
|
||||
|
|
|
@ -268,6 +268,7 @@ private:
|
|||
void initAcquireIntoComboBox();
|
||||
void updateSideBar();
|
||||
void deleteDevUser();
|
||||
void updateLocalFileName();
|
||||
|
||||
#if !defined(HG_CMP_MSC)
|
||||
void checkRollerLife();
|
||||
|
|
Loading…
Reference in New Issue