Warnung vor dem Überschreiben von Dateien implementiert

This commit is contained in:
2023-07-20 00:30:35 +02:00
parent a822376d3b
commit 02118d0887
3 changed files with 15 additions and 4 deletions

View File

@@ -205,8 +205,12 @@ public class Worker {
var project = docTable.getProject(resolvedPath).orElseGet(() -> docTable.createProject(resolvedPath));
int rotation = this.rotationAngle;
File targetFile = prepareProject(project);
File jpeg = new File(targetFile+".jpg");
File pdf = new File(targetFile+".pdf");
if (!JPG.equals(type) && overwriteAbort(pdf)) return; // if PDF conversion is sheduled: avoid overwriting pdf
if (overwriteAbort(jpeg)) return;
var type = getType();
var page = project.addPage(new File(targetFile+".jpg"));
var page = project.addPage(jpeg);
scanJpeg(targetFile,project);
improveJpeg(targetFile,project,rotation);
@@ -232,6 +236,12 @@ public class Worker {
preview(page);
}
private boolean overwriteAbort(File targetFile) {
if (!targetFile.exists()) return false;
var answer = JOptionPane.showConfirmDialog(mainFrame,t("File \"{}\" does already exist and would be overwritten. Continue?",targetFile),t("Overwrite file"),JOptionPane.YES_NO_OPTION);
return answer != JOptionPane.YES_OPTION;
}
private void performTextRecognition(File targetFile, Project project) {
String pdf = targetFile.getName() + ".tmp.pdf";
String ocr = targetFile.getName() + ".pdf";
@@ -546,8 +556,8 @@ public class Worker {
cmd.add("output");
var pageReplace = removePageOnStitching ? "" : firstPage+""+lastPage;
File joinedPDF = new File(project.pattern().replace("["+PAGE+"]",pageReplace).trim()+".pdf");
String target = joinedPDF.getName();
cmd.add(target);
cmd.add(joinedPDF.getName());
if (overwriteAbort(joinedPDF)) return;
LOG.debug("executing {}",cmd);
var builder = new ProcessBuilder(cmd);