diff --git a/Templates/Empty/game/tools/gui/openFileDialog.ed.cs b/Templates/Empty/game/tools/gui/openFileDialog.ed.cs index b988d3361..50c7cdfcc 100644 --- a/Templates/Empty/game/tools/gui/openFileDialog.ed.cs +++ b/Templates/Empty/game/tools/gui/openFileDialog.ed.cs @@ -20,27 +20,38 @@ // IN THE SOFTWARE. //----------------------------------------------------------------------------- -function getLoadFilename(%filespec, %callback, %currentFile) -{ +function getLoadFilename(%filespec, %callback, %currentFile, %getRelative, %defaultPath) +{ + //If no default path passed in then try to get one from the file + if(%defaultPath $= "") + { + if ( filePath( %currentFile ) !$= "" ) + %defaultPath = filePath(%currentFile); + } + %dlg = new OpenFileDialog() { Filters = %filespec; DefaultFile = %currentFile; + DefaultPath = %defaultPath; ChangePath = false; MustExist = true; MultipleFiles = false; }; - if ( filePath( %currentFile ) !$= "" ) - %dlg.DefaultPath = filePath(%currentFile); - - if ( %dlg.Execute() ) + %ok = %dlg.Execute(); + if ( %ok ) { - eval(%callback @ "(\"" @ %dlg.FileName @ "\");"); + %file = %dlg.FileName; + if(%getRelative) + %file = strreplace(%file,getWorkingDirectory() @ "/", ""); + eval(%callback @ "(\"" @ %file @ "\");"); $Tools::FileDialogs::LastFilePath = filePath( %dlg.FileName ); } %dlg.delete(); + + return %ok; } // Opens a choose file dialog with format filters already loaded diff --git a/Templates/Full/game/tools/gui/openFileDialog.ed.cs b/Templates/Full/game/tools/gui/openFileDialog.ed.cs index b988d3361..50c7cdfcc 100644 --- a/Templates/Full/game/tools/gui/openFileDialog.ed.cs +++ b/Templates/Full/game/tools/gui/openFileDialog.ed.cs @@ -20,27 +20,38 @@ // IN THE SOFTWARE. //----------------------------------------------------------------------------- -function getLoadFilename(%filespec, %callback, %currentFile) -{ +function getLoadFilename(%filespec, %callback, %currentFile, %getRelative, %defaultPath) +{ + //If no default path passed in then try to get one from the file + if(%defaultPath $= "") + { + if ( filePath( %currentFile ) !$= "" ) + %defaultPath = filePath(%currentFile); + } + %dlg = new OpenFileDialog() { Filters = %filespec; DefaultFile = %currentFile; + DefaultPath = %defaultPath; ChangePath = false; MustExist = true; MultipleFiles = false; }; - if ( filePath( %currentFile ) !$= "" ) - %dlg.DefaultPath = filePath(%currentFile); - - if ( %dlg.Execute() ) + %ok = %dlg.Execute(); + if ( %ok ) { - eval(%callback @ "(\"" @ %dlg.FileName @ "\");"); + %file = %dlg.FileName; + if(%getRelative) + %file = strreplace(%file,getWorkingDirectory() @ "/", ""); + eval(%callback @ "(\"" @ %file @ "\");"); $Tools::FileDialogs::LastFilePath = filePath( %dlg.FileName ); } %dlg.delete(); + + return %ok; } // Opens a choose file dialog with format filters already loaded