Welcome to mirror list, hosted at ThFree Co, Russian Federation.

git.blender.org/blender.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJulian Eisel <eiseljulian@gmail.com>2015-07-09 19:40:34 +0300
committerJulian Eisel <eiseljulian@gmail.com>2015-07-09 19:40:34 +0300
commitaeeb23efa28dc16e207b168866fe60806f8faa2d (patch)
treeb2aa8a442c4a44e937d9b28d435689319897fe39 /source/blender/editors/space_file/filesel.c
parent26bd1a766a9c1e71eb55059c80adf959fe884bbc (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.c14
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);