Browse Source

[filetree] Renaming a file without a extension automaticaly put the old extension back

Clément Espeute 5 months ago
parent
commit
212d5c6274
1 changed files with 16 additions and 2 deletions
  1. 16 2
      hide/view/FileTree.hx

+ 16 - 2
hide/view/FileTree.hx

@@ -102,7 +102,14 @@ class FileTree extends FileView {
 			return content;
 		};
 
-		tree.onRename = doRename;
+		tree.onRename = (path:String, name:String) -> {
+			// add old extension if previous one is missing
+			if (name.indexOf(".") == -1) {
+				var ext = path.split(".").pop();
+				name += "." + ext;
+			}
+			doRename(path, name);
+		};
 
 		element.contextmenu(function(e) {
 			var over = tree.getCurrentOver();
@@ -182,7 +189,14 @@ class FileTree extends FileView {
 	}
 
 	function onRenameFile( path : String ) {
-		var newFilename = ide.ask("New name:", path.substring( path.lastIndexOf("/") + 1 ));
+		var oldName = path.substring( path.lastIndexOf("/") + 1 );
+		var newFilename = ide.ask("New name:", oldName);
+
+		// If the user removed the extension, add the old one
+		if (newFilename.indexOf(".") == -1) {
+			var ext = oldName.split(".").pop();
+			newFilename += "." + ext;
+		}
 
 		while ( newFilename != null && sys.FileSystem.exists(ide.getPath(newFilename))) {
 			newFilename = ide.ask("This file already exists. Another new name:");