[Bf-blender-cvs] [04f7493] asset-experiments: Fix/adapt new 'keyboard select' code to changes from branch.
Bastien Montagne
noreply at git.blender.org
Thu Jun 11 19:59:12 CEST 2015
Commit: 04f7493588e82cf10910b543fcba0ba6c21ef62f
Author: Bastien Montagne
Date: Thu Jun 11 19:58:23 2015 +0200
Branches: asset-experiments
https://developer.blender.org/rB04f7493588e82cf10910b543fcba0ba6c21ef62f
Fix/adapt new 'keyboard select' code to changes from branch.
===================================================================
M source/blender/editors/space_file/file_ops.c
M source/blender/editors/space_file/filelist.c
===================================================================
diff --git a/source/blender/editors/space_file/file_ops.c b/source/blender/editors/space_file/file_ops.c
index acdb044..36458e0 100644
--- a/source/blender/editors/space_file/file_ops.c
+++ b/source/blender/editors/space_file/file_ops.c
@@ -258,12 +258,12 @@ static bool file_is_any_selected(struct FileList *files)
const int numfiles = filelist_numfiles(files);
int i;
+ /* Is any file selected ? */
for (i = 0; i < numfiles; ++i) {
- if (filelist_is_selected(files, i, CHECK_ALL)) {
+ if (filelist_entry_select_index_get(files, i, CHECK_ALL)) {
return true;
}
}
-
return false;
}
@@ -484,18 +484,21 @@ static bool file_walk_select_selection_set(
if (has_selection) {
if (extend &&
- filelist_is_selected(files, active_old, FILE_SEL_SELECTED) &&
- filelist_is_selected(files, active_new, FILE_SEL_SELECTED))
+ filelist_entry_select_index_get(files, active_old, FILE_SEL_SELECTED) &&
+ filelist_entry_select_index_get(files, active_new, FILE_SEL_SELECTED))
{
/* conditions for deselecting: initial file is selected, new file is
* selected and either other_side isn't selected/found or we use fill */
- deselect = (fill || other_site == -1 || !filelist_is_selected(files, other_site, FILE_SEL_SELECTED));
+ deselect = (fill || other_site == -1 ||
+ !filelist_entry_select_index_get(files, other_site, FILE_SEL_SELECTED));
/* don't change active here since we either want to deselect active or we want to
* walk through a block of selected files without selecting/deselecting anything */
params->active_file = active_new;
/* but we want to change active if we use fill (needed to get correct selection bounds) */
- if (deselect && fill) active = active_new;
+ if (deselect && fill) {
+ active = active_new;
+ }
}
else {
/* regular selection change */
@@ -536,16 +539,16 @@ static bool file_walk_select_selection_set(
FileSelection sel = { MIN2(active, last_sel), MAX2(active, last_sel) };
/* fill selection between last and first selected file */
- filelist_select(sfile->files, &sel, deselect ? FILE_SEL_REMOVE : FILE_SEL_ADD,
- FILE_SEL_SELECTED, CHECK_ALL);
+ filelist_entries_select_index_range_set(
+ files, &sel, deselect ? FILE_SEL_REMOVE : FILE_SEL_ADD, FILE_SEL_SELECTED, CHECK_ALL);
/* entire sel is cleared here, so select active again */
if (deselect) {
- filelist_select_file(sfile->files, active, FILE_SEL_ADD, FILE_SEL_SELECTED, CHECK_ALL);
+ filelist_entry_select_index_set(files, active, FILE_SEL_ADD, FILE_SEL_SELECTED, CHECK_ALL);
}
}
else {
- filelist_select_file(sfile->files, active, deselect ? FILE_SEL_REMOVE : FILE_SEL_ADD,
- FILE_SEL_SELECTED, CHECK_ALL);
+ filelist_entry_select_index_set(
+ files, active, deselect ? FILE_SEL_REMOVE : FILE_SEL_ADD, FILE_SEL_SELECTED, CHECK_ALL);
}
BLI_assert(IN_RANGE(active, 0, numfiles));
@@ -606,18 +609,22 @@ static bool file_walk_select_do(
}
if (!IN_RANGE(active_new, 0, numfiles)) {
- /* extend to invalid file -> abort */
- if (extend) return false;
- /* select initial file */
- else active_new = active_old;
+ if (extend) {
+ /* extend to invalid file -> abort */
+ return false;
+ }
+ else {
+ /* select initial file */
+ active_new = active_old;
+ }
}
if (!IN_RANGE(other_site, 0, numfiles)) {
other_site = -1;
}
}
- return file_walk_select_selection_set(C, sfile, direction, numfiles, active_old, active_new, other_site,
- has_selection, extend, fill);
+ return file_walk_select_selection_set(
+ C, sfile, direction, numfiles, active_old, active_new, other_site, has_selection, extend, fill);
}
static int file_walk_select_invoke(bContext *C, wmOperator *op, const wmEvent *UNUSED(event))
@@ -679,16 +686,6 @@ static int file_select_all_exec(bContext *C, wmOperator *UNUSED(op))
sel.first = 0;
sel.last = numfiles - 1;
-/* START XXX TODO!!! */
- /* Is any file selected ? */
- for (i = 0; i < numfiles; ++i) {
- if (filelist_entry_select_index_get(sfile->files, i, CHECK_ALL)) {
- is_selected = true;
- break;
- }
- }
-/* END XXX TODO!!! */
-
/* select all only if previously no file was selected */
if (has_selection) {
filelist_entries_select_index_range_set(sfile->files, &sel, FILE_SEL_REMOVE, FILE_SEL_SELECTED, CHECK_ALL);
@@ -701,7 +698,7 @@ static int file_select_all_exec(bContext *C, wmOperator *UNUSED(op))
/* set active_file to first selected */
for (i = 0; i < numfiles; i++) {
- if (filelist_is_selected(sfile->files, i, check_type)) {
+ if (filelist_entry_select_index_get(sfile->files, i, check_type)) {
sfile->params->active_file = i;
break;
}
diff --git a/source/blender/editors/space_file/filelist.c b/source/blender/editors/space_file/filelist.c
index 7389f66..d23ad74 100644
--- a/source/blender/editors/space_file/filelist.c
+++ b/source/blender/editors/space_file/filelist.c
@@ -502,16 +502,16 @@ void filelist_sort(struct FileList *filelist)
switch (filelist->sort) {
case FILE_SORT_ALPHA:
- BLI_listbase_sort_r(&filelist->filelist_intern.entries, NULL, compare_name);
+ BLI_listbase_sort_r(&filelist->filelist_intern.entries, compare_name, NULL);
break;
case FILE_SORT_TIME:
- BLI_listbase_sort_r(&filelist->filelist_intern.entries, NULL, compare_date);
+ BLI_listbase_sort_r(&filelist->filelist_intern.entries, compare_date, NULL);
break;
case FILE_SORT_SIZE:
- BLI_listbase_sort_r(&filelist->filelist_intern.entries, NULL, compare_size);
+ BLI_listbase_sort_r(&filelist->filelist_intern.entries, compare_size, NULL);
break;
case FILE_SORT_EXTENSION:
- BLI_listbase_sort_r(&filelist->filelist_intern.entries, NULL, compare_extension);
+ BLI_listbase_sort_r(&filelist->filelist_intern.entries, compare_extension, NULL);
break;
case FILE_SORT_NONE: /* Should never reach this point! */
default:
More information about the Bf-blender-cvs
mailing list