diff dynamin/gui/windows_file_dialog.d @ 106:acdbb30fee7e

Port to D2. Most of the effort was dealing with immutable and const.
author Jordan Miner <jminer7@gmail.com>
date Mon, 17 Dec 2012 23:41:50 -0600
parents 73060bc3f004
children
line wrap: on
line diff
--- a/dynamin/gui/windows_file_dialog.d	Sat Nov 24 10:21:50 2012 -0600
+++ b/dynamin/gui/windows_file_dialog.d	Mon Dec 17 23:41:50 2012 -0600
@@ -20,13 +20,13 @@
 		//ofn.hwndOwner = ;
 
 		ensureAllFilesFilter();
-		string filterStr;
+		mstring filterStr;
 		foreach(filter; _filters) {
 			if(filter.shouldShow)
 				continue;
 			string[] exts = filter.extensions.dup;
 			if(exts.length == 0)
-				exts = [cast(string)"*.*"];
+				exts = ["*.*"];
 			else
 				for(int i = 0; i < exts.length; ++i)
 					exts[i] = "*." ~ exts[i];
@@ -71,8 +71,7 @@
 		for(index = filesBufferW.length; index > 0; --index)
 			if(filesBufferW[index-1] != 0)
 				break;
-		auto filesBuffer = Utf.toString(filesBufferW[0..index]);
-		scope(exit) delete filesBuffer;
+		auto filesBuffer = cast(immutable)Utf.toString(filesBufferW[0..index]);
 		if(filesBuffer.contains('\0')) { // multiple files
 			auto arr = filesBuffer.split("\0");
 			_folder = arr[0];
@@ -90,8 +89,8 @@
 			}
 		} else { //single file
 			assert(filesBuffer.contains('\\'));
-			_folder = filesBuffer[0..filesBuffer.findLast("\\")].dup;
-			_files = [filesBuffer.dup];
+			_folder = filesBuffer[0..filesBuffer.findLast("\\")];
+			_files = [filesBuffer];
 			maybeAddExt(_files[0]);
 		}