added file info while replacing
This commit is contained in:
parent
38aa55c463
commit
9b6b309bfe
@ -11,7 +11,7 @@ import java.awt.event.KeyEvent;
|
||||
*/
|
||||
public class MainApp {
|
||||
|
||||
public static final String APP_VERSION = "0.0.8";
|
||||
public static final String APP_VERSION = "0.0.9";
|
||||
|
||||
public static void main(String[] args) {
|
||||
// Set application name for X11/Wayland WM_CLASS
|
||||
|
||||
@ -140,7 +140,7 @@ public class FileOperationQueue {
|
||||
}
|
||||
|
||||
@Override
|
||||
public FileOperations.OverwriteResponse confirmOverwrite(File file) {
|
||||
public FileOperations.OverwriteResponse confirmOverwrite(File source, File destination) {
|
||||
// In background queue, we might want a default or auto-rename?
|
||||
// For now, let's assume YES or handle it in the executor if possible.
|
||||
// This is tricky for a background queue.
|
||||
|
||||
@ -45,7 +45,7 @@ public class FileOperations {
|
||||
} else if (target.exists()) {
|
||||
if (globalResponse[0] == OverwriteResponse.NO_TO_ALL) continue;
|
||||
if (globalResponse[0] != OverwriteResponse.YES_TO_ALL) {
|
||||
OverwriteResponse res = callback.confirmOverwrite(target);
|
||||
OverwriteResponse res = callback.confirmOverwrite(source, target);
|
||||
if (res == OverwriteResponse.CANCEL) break;
|
||||
if (res == OverwriteResponse.NO_TO_ALL) {
|
||||
globalResponse[0] = OverwriteResponse.NO_TO_ALL;
|
||||
@ -193,7 +193,7 @@ public class FileOperations {
|
||||
if (Files.exists(targetFile)) {
|
||||
if (globalResponse[0] == OverwriteResponse.NO_TO_ALL) return FileVisitResult.CONTINUE;
|
||||
if (globalResponse[0] != OverwriteResponse.YES_TO_ALL) {
|
||||
OverwriteResponse res = callback.confirmOverwrite(targetFile.toFile());
|
||||
OverwriteResponse res = callback.confirmOverwrite(file.toFile(), targetFile.toFile());
|
||||
if (res == OverwriteResponse.CANCEL) return FileVisitResult.TERMINATE;
|
||||
if (res == OverwriteResponse.NO_TO_ALL) {
|
||||
globalResponse[0] = OverwriteResponse.NO_TO_ALL;
|
||||
@ -275,7 +275,7 @@ public class FileOperations {
|
||||
if (Files.exists(target.toPath(), LinkOption.NOFOLLOW_LINKS) && !source.getAbsolutePath().equals(target.getAbsolutePath())) {
|
||||
if (globalResponse[0] == OverwriteResponse.NO_TO_ALL) continue;
|
||||
if (globalResponse[0] != OverwriteResponse.YES_TO_ALL) {
|
||||
OverwriteResponse res = callback.confirmOverwrite(target);
|
||||
OverwriteResponse res = callback.confirmOverwrite(source, target);
|
||||
if (res == OverwriteResponse.CANCEL) break;
|
||||
if (res == OverwriteResponse.NO_TO_ALL) {
|
||||
globalResponse[0] = OverwriteResponse.NO_TO_ALL;
|
||||
@ -870,7 +870,7 @@ public class FileOperations {
|
||||
void onProgress(long current, long total, String currentFile);
|
||||
default void onFileProgress(long current, long total) {}
|
||||
default boolean isCancelled() { return false; }
|
||||
default OverwriteResponse confirmOverwrite(File file) { return OverwriteResponse.YES; }
|
||||
default OverwriteResponse confirmOverwrite(File source, File destination) { return OverwriteResponse.YES; }
|
||||
default ErrorResponse onError(File file, Exception e) { return ErrorResponse.ABORT; }
|
||||
}
|
||||
|
||||
|
||||
@ -16,9 +16,11 @@ import java.awt.datatransfer.Transferable;
|
||||
import java.awt.datatransfer.UnsupportedFlavorException;
|
||||
import java.io.File;
|
||||
import java.io.IOException;
|
||||
import java.text.SimpleDateFormat;
|
||||
import java.util.ArrayList;
|
||||
import java.util.Arrays;
|
||||
import java.util.Comparator;
|
||||
import java.util.Date;
|
||||
import java.util.HashMap;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
@ -1973,13 +1975,26 @@ public class FilePanelTab extends JPanel {
|
||||
}
|
||||
|
||||
@Override
|
||||
public FileOperations.OverwriteResponse confirmOverwrite(File file) {
|
||||
public FileOperations.OverwriteResponse confirmOverwrite(File source, File destination) {
|
||||
final FileOperations.OverwriteResponse[] result = new FileOperations.OverwriteResponse[1];
|
||||
try {
|
||||
SwingUtilities.invokeAndWait(() -> {
|
||||
SimpleDateFormat sdf = new SimpleDateFormat("dd.MM.yyyy HH:mm:ss");
|
||||
String message = String.format(
|
||||
"File already exists: %s\n\n" +
|
||||
"Source file:\n Size: %s\n Modified: %s\n\n" +
|
||||
"Existing file:\n Size: %s\n Modified: %s\n\n" +
|
||||
"Overwrite?",
|
||||
destination.getName(),
|
||||
FileItem.formatSize(source.length()),
|
||||
sdf.format(new Date(source.lastModified())),
|
||||
FileItem.formatSize(destination.length()),
|
||||
sdf.format(new Date(destination.lastModified()))
|
||||
);
|
||||
|
||||
Object[] options = {"Yes", "Yes to All", "No", "No to All", "Cancel"};
|
||||
int n = JOptionPane.showOptionDialog(progressDialog,
|
||||
"File already exists: " + file.getName() + "\nOverwrite?",
|
||||
message,
|
||||
"Overwrite Confirmation",
|
||||
JOptionPane.DEFAULT_OPTION,
|
||||
JOptionPane.QUESTION_MESSAGE,
|
||||
|
||||
@ -12,7 +12,9 @@ import java.awt.datatransfer.DataFlavor;
|
||||
import java.awt.event.*;
|
||||
import java.io.File;
|
||||
import java.io.IOException;
|
||||
import java.text.SimpleDateFormat;
|
||||
import java.util.ArrayList;
|
||||
import java.util.Date;
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
@ -2156,13 +2158,26 @@ public class MainWindow extends JFrame {
|
||||
}
|
||||
|
||||
@Override
|
||||
public FileOperations.OverwriteResponse confirmOverwrite(File file) {
|
||||
public FileOperations.OverwriteResponse confirmOverwrite(File source, File destination) {
|
||||
final FileOperations.OverwriteResponse[] result = new FileOperations.OverwriteResponse[1];
|
||||
try {
|
||||
SwingUtilities.invokeAndWait(() -> {
|
||||
SimpleDateFormat sdf = new SimpleDateFormat("dd.MM.yyyy HH:mm:ss");
|
||||
String message = String.format(
|
||||
"File already exists: %s\n\n" +
|
||||
"Source file:\n Size: %s\n Modified: %s\n\n" +
|
||||
"Existing file:\n Size: %s\n Modified: %s\n\n" +
|
||||
"Overwrite?",
|
||||
destination.getName(),
|
||||
FileItem.formatSize(source.length()),
|
||||
sdf.format(new Date(source.lastModified())),
|
||||
FileItem.formatSize(destination.length()),
|
||||
sdf.format(new Date(destination.lastModified()))
|
||||
);
|
||||
|
||||
Object[] options = {"Yes", "Yes to All", "No", "No to All", "Cancel"};
|
||||
int n = JOptionPane.showOptionDialog(progressDialog,
|
||||
"File already exists: " + file.getName() + "\nOverwrite?",
|
||||
message,
|
||||
"Overwrite Confirmation",
|
||||
JOptionPane.DEFAULT_OPTION,
|
||||
JOptionPane.QUESTION_MESSAGE,
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user