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

@@ -9,7 +9,6 @@ Diese Anwendung soll helfen
## TODOs
* Warnen beim Überschreiben
* Zusatzfelder zum aktuellen Profile mit speichern
* diese Anleitung vervollständigen
* vordefinierte Platzhalter

View File

@@ -17,6 +17,7 @@ drop file : Datei löschen
done : fertig
Error code\: {} for {} : Fehlercode: {} für {}
February : Februar
File "{}" does already exist and would be overwritten. Continue? : Die Datei „{}“ existiert bereits. Soll sie überschrieben werden?
Finished text recognition. : Texterkennung beendet.
German language support missing! : Unterstützung für deutsche Sprache fehlt!
Height : Höhe
@@ -35,6 +36,7 @@ month : monat
OCR failed. : OCR fehlgeschlagen.
October : Oktober
open folder : Ordner öffnen
Overwrite file : Datei überschreiben
PAGE : SEITE
Path '{}' does not exist! : Pfad '{}' existiert nicht!
Path : Pfad

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);