diff --git a/app/scanner/mainwindow.cpp b/app/scanner/mainwindow.cpp index f42b7187..93f7dbe1 100644 --- a/app/scanner/mainwindow.cpp +++ b/app/scanner/mainwindow.cpp @@ -1867,7 +1867,7 @@ void MainWindow::on_act_save_triggered() int count = 0; if(!auto_save_changes_ || auto_save_info_.path.isEmpty() || !judgeDiskSpace(savePath)) - { + { Dialog_SaveAs dlg(this); if(savePath.length()) { @@ -1875,31 +1875,44 @@ void MainWindow::on_act_save_triggered() if(pos > 0) dlg.set_current_directory(savePath.left(pos)); } - if (dlg.exec()) + + if (!auto_save_changes_) { - if(!judgeDiskSpace(savePath)) + if (!dlg.exec()) { - m_dialogLog->updateStatus(cur_dev_.is_online() && 0 != m_scanType, m_isScanning); return; } - - savePath = auto_save_info_.path = dlg.getSavePath(); - isOcr = auto_save_info_.isOcr = dlg.isOcr(); - jpegQuality = auto_save_info_.jpegQuality = dlg.getJpegQuality(); - tiffQuality = auto_save_info_.tiffQuality = dlg.getTiffQuality(); - tiffCompression = auto_save_info_.tiffCompression = dlg.getTiffCompression(); - tiffCompressionBW = auto_save_info_.tiffCompressionBW = dlg.getTiffCompressionBW(); } - else { + else + savePath = m_currFilePath; + + if (!judgeDiskSpace(savePath)) + { + m_dialogLog->updateStatus(cur_dev_.is_online() && 0 != m_scanType, m_isScanning); return; } + + if (!auto_save_changes_) + { + savePath = auto_save_info_.path = dlg.getSavePath(); + } + + isOcr = auto_save_info_.isOcr = dlg.isOcr(); + jpegQuality = auto_save_info_.jpegQuality = dlg.getJpegQuality(); + tiffQuality = auto_save_info_.tiffQuality = dlg.getTiffQuality(); + tiffCompression = auto_save_info_.tiffCompression = dlg.getTiffCompression(); + tiffCompressionBW = auto_save_info_.tiffCompressionBW = dlg.getTiffCompressionBW(); } if(auto_save_changes_ && save_from_changed_) { // appendix ... int pos = savePath.lastIndexOf('.'); char index[20] = {0}; - sprintf(index, "_%03u", ++auto_save_info_.index); + if (!auto_save_changes_) + { + sprintf(index, "_%03u", ++auto_save_info_.index); + } + savePath.insert(pos, QString::fromStdString(index)); m_thumb->notify_mouse_leave(); } @@ -1911,11 +1924,15 @@ void MainWindow::on_act_save_triggered() m_thumb->getItemFileName(i, fileName); assert(!fileName.isEmpty()); - if (fileName == savePath) + if (!auto_save_changes_) { - find = true; - break; + if (fileName == savePath) + { + find = true; + break; + } } + } if (!find) @@ -1944,7 +1961,13 @@ void MainWindow::on_act_save_triggered() if (HGBASE_ERR_OK == saveImage(img, &saveInfo, isOcr, getStdString(savePath).c_str())) { - m_thumb->updateItem(m_currIndex, savePath); + if (auto_save_changes_) + { + m_thumb->refreshItem(m_currIndex); + } + else + m_thumb->updateItem(m_currIndex, savePath); + m_currFilePath = savePath; m_modify = false; if(!auto_save_changes_)