diff --git a/source/ch/cyberduck/ui/cocoa/odb/Editor.java b/source/ch/cyberduck/ui/cocoa/odb/Editor.java index c237fb9e77c..bd357ae05d0 100644 --- a/source/ch/cyberduck/ui/cocoa/odb/Editor.java +++ b/source/ch/cyberduck/ui/cocoa/odb/Editor.java @@ -65,12 +65,12 @@ public Editor(CDBrowserController controller, String bundleIdentifier, Path path this.controller = controller; this.bundleIdentifier = bundleIdentifier; this.edited = path; + final Local folder = new Local(new File(TEMPORARY_DIRECTORY.getAbsolute(), + edited.getParent().getAbsolute())); + this.edited.setLocal(new Local(folder, edited.getName())); } public void open() { - final Local folder = new Local(new File(TEMPORARY_DIRECTORY.getAbsolute(), - edited.getParent().getAbsolute())); - folder.mkdir(true); controller.background(new BrowserBackgroundAction(controller) { public void run() { TransferOptions options = new TransferOptions(); @@ -137,18 +137,22 @@ public boolean isOpen() { protected void delete() { log.debug("delete"); edited.getLocal().delete(); - for(AbstractPath parent = edited.getLocal().getParent(); !parent.equals(TEMPORARY_DIRECTORY); parent = parent.getParent()) { - if(parent.isEmpty()) { - parent.delete(); - } - } this.invalidate(); } /** * The file has been closed in the editor while the upload was in progress */ - protected boolean deferredDelete; + private boolean deferredDelete; + + + protected void setDeferredDelete(boolean deferredDelete) { + this.deferredDelete = deferredDelete; + } + + public boolean isDeferredDelete() { + return deferredDelete; + } /** * Upload the edited file to the server @@ -179,10 +183,11 @@ public String getActivity() { public void cleanup() { if(edited.getStatus().isComplete()) { - if(deferredDelete) { - delete(); - } controller.reloadData(true); + if(Editor.this.isDeferredDelete()) { + Editor.this.delete(); + } + Editor.this.setDeferredDelete(false); } } }); diff --git a/source/ch/cyberduck/ui/cocoa/odb/ODBEditor.java b/source/ch/cyberduck/ui/cocoa/odb/ODBEditor.java index 2a7a8438698..fac5fa923a6 100644 --- a/source/ch/cyberduck/ui/cocoa/odb/ODBEditor.java +++ b/source/ch/cyberduck/ui/cocoa/odb/ODBEditor.java @@ -85,7 +85,7 @@ public void edit() { */ public void didCloseFile() { if(!edited.getStatus().isComplete()) { - deferredDelete = true; + this.setDeferredDelete(true); } else { this.delete();