diff options
author | Julian Eisel <eiseljulian@gmail.com> | 2015-07-09 19:40:34 +0300 |
---|---|---|
committer | Julian Eisel <eiseljulian@gmail.com> | 2015-07-09 19:40:34 +0300 |
commit | aeeb23efa28dc16e207b168866fe60806f8faa2d (patch) | |
tree | b2aa8a442c4a44e937d9b28d435689319897fe39 /source/blender/editors/space_file/filesel.c | |
parent | 26bd1a766a9c1e71eb55059c80adf959fe884bbc (diff) |
File Browser: Improve usage of Enter-key to open files/directories
From a user-POV this makes following changes:
* Adds support for using the Enter-key to open directories
* Updates the upper text-buttons for file and directory on selection
* Last selected file/directory is opened now (in sync with upper text-buttons)
* Changes text in open button to "Open Directory" if a directory is selected
D1349, Reviewed by @mont29
Diffstat (limited to 'source/blender/editors/space_file/filesel.c')
-rw-r--r-- | source/blender/editors/space_file/filesel.c | 14 |
1 files changed, 14 insertions, 0 deletions
diff --git a/source/blender/editors/space_file/filesel.c b/source/blender/editors/space_file/filesel.c index 66eb79abae2..ef29b720eed 100644 --- a/source/blender/editors/space_file/filesel.c +++ b/source/blender/editors/space_file/filesel.c @@ -287,6 +287,17 @@ void ED_fileselect_reset_params(SpaceFile *sfile) sfile->params->active_file = -1; } +/** + * Sets FileSelectParams->file (name of selected file) + */ +void fileselect_file_set(SpaceFile *sfile, const int index) +{ + const struct direntry *file = filelist_file(sfile->files, index); + if (file && file->relname[0] && !FILENAME_IS_PARENT(file->relname)) { + BLI_strncpy(sfile->params->file, file->relname, FILE_MAXFILE); + } +} + int ED_fileselect_layout_numfiles(FileLayout *layout, ARegion *ar) { int numfiles; @@ -583,6 +594,9 @@ void ED_file_change_dir(bContext *C, const bool checkdir) /* could return but just refresh the current dir */ } filelist_setdir(sfile->files, sfile->params->dir); + /* clear selected file to avoid trying to open it from the new dir with changed path */ + sfile->params->file[0] = '\0'; + sfile->params->active_file = -1; if (folderlist_clear_next(sfile)) folderlist_free(sfile->folders_next); |