[Bf-blender-cvs] [27ed6ef] asset-engine: Merge branch 'asset-experiments' into asset-engine
Bastien Montagne
noreply at git.blender.org
Thu Jun 11 20:17:41 CEST 2015
Commit: 27ed6ef95c0301aa31dd83c503b23d382dfd38c6
Author: Bastien Montagne
Date: Thu Jun 11 20:17:30 2015 +0200
Branches: asset-engine
https://developer.blender.org/rB27ed6ef95c0301aa31dd83c503b23d382dfd38c6
Merge branch 'asset-experiments' into asset-engine
Conflicts:
source/blender/editors/space_file/filelist.c
===================================================================
===================================================================
diff --cc source/blender/editors/space_file/filelist.c
index 12dbd14,d23ad74..89a0ed6
--- a/source/blender/editors/space_file/filelist.c
+++ b/source/blender/editors/space_file/filelist.c
@@@ -689,93 -739,6 +689,93 @@@ void filelist_setfilter_options(FileLis
}
}
+
+void filelist_sort_filter(struct FileList *filelist, FileSelectParams *params)
+{
+ if (filelist->ae) {
+ if (filelist->ae->type->sort_filter) {
+ const bool need_sorting = filelist_need_sorting(filelist);
+ const bool need_filtering = filelist_need_filtering(filelist);
+ const bool changed = filelist->ae->type->sort_filter(
+ filelist->ae, need_sorting, need_filtering, params, &filelist->filelist);
+ printf("%s: changed: %d\n", __func__, changed);
+ if (changed) {
+ filelist_cache_clear(&filelist->filelist_cache, filelist->filelist_cache.size);
+ }
+ }
+ }
+ else {
+ if (filelist_need_sorting(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:
+ BLI_assert(0);
+ }
+
+ filelist_filter_clear(filelist);
+ }
+
+ if (filelist_need_filtering(filelist)) {
+ int num_filtered = 0;
+ const int num_files = filelist->filelist.nbr_entries;
+ FileListInternEntry **filtered_tmp, *file;
+
+ if (filelist->filelist.nbr_entries == 0) {
+ return;
+ }
+
+ filelist->filter_data.hide_lib_dir = false;
+ if (filelist->max_recursion) {
+ /* Never show lib ID 'categories' directories when we are in 'flat' mode, unless
+ * root path is a blend file. */
+ char dir[FILE_MAXDIR];
+ if (!filelist_islibrary(filelist, dir, NULL)) {
+ filelist->filter_data.hide_lib_dir = true;
+ }
+ }
+
+ filtered_tmp = MEM_mallocN(sizeof(*filtered_tmp) * (size_t)num_files, __func__);
+
+ /* Filter remap & count how many files are left after filter in a single loop. */
+ for (file = filelist->filelist_intern.entries.first; file; file = file->next) {
+ if (filelist->filterf(file, filelist->filelist.root, &filelist->filter_data)) {
+ filtered_tmp[num_filtered++] = file;
+ }
+ }
+
+ if (filelist->filelist_intern.filtered) {
+ MEM_freeN(filelist->filelist_intern.filtered);
+ }
+ filelist->filelist_intern.filtered = MEM_mallocN(sizeof(*filelist->filelist_intern.filtered) * (size_t)num_filtered,
+ __func__);
+ memcpy(filelist->filelist_intern.filtered, filtered_tmp,
+ sizeof(*filelist->filelist_intern.filtered) * (size_t)num_filtered);
+ filelist->filelist.nbr_entries_filtered = num_filtered;
+ // printf("Filetered: %d over %d entries\n", num_filtered, filelist->filelist.nbr_entries);
+
+ filelist_cache_clear(&filelist->filelist_cache, filelist->filelist_cache.size);
+
+ MEM_freeN(filtered_tmp);
+ }
+ }
+
+ filelist_need_sorting_clear(filelist);
+ filelist_need_filtering_clear(filelist);
+}
+
+
/* ********** Icon/image helpers ********** */
void filelist_init_icons(void)
diff --cc source/blender/editors/space_file/space_file.c
index 4181da2,cba0cd4..4b78469
--- a/source/blender/editors/space_file/space_file.c
+++ b/source/blender/editors/space_file/space_file.c
@@@ -232,9 -218,8 +232,9 @@@ static void file_refresh(const bContex
}
if (!sfile->files) {
sfile->files = filelist_new(params->type);
- params->active_file = -1; /* added this so it opens nicer (ton) */
+ params->highlight_file = -1; /* added this so it opens nicer (ton) */
}
+ filelist_assetengine_set(sfile->files, aet);
filelist_setdir(sfile->files, params->dir);
filelist_setrecursion(sfile->files, params->recursion_level);
filelist_setsorting(sfile->files, params->sort);
More information about the Bf-blender-cvs
mailing list