[Bf-blender-cvs] [a8a3674bade] asset-engine: Merge branch 'master' into asset-engine
Bastien Montagne
noreply at git.blender.org
Thu Jul 20 12:59:28 CEST 2017
Commit: a8a3674bade54d091917b73a7f64f6fb76fb57b4
Author: Bastien Montagne
Date: Tue Jul 18 16:40:20 2017 +0200
Branches: asset-engine
https://developer.blender.org/rBa8a3674bade54d091917b73a7f64f6fb76fb57b4
Merge branch 'master' into asset-engine
Conflicts:
source/blender/editors/space_file/filelist.h
===================================================================
===================================================================
diff --cc source/blender/editors/space_file/filelist.c
index d628fcfe8b2,8e548d7a9bd..4caa0ac77ec
--- a/source/blender/editors/space_file/filelist.c
+++ b/source/blender/editors/space_file/filelist.c
@@@ -674,20 -686,58 +681,21 @@@ static void filelist_filter_clear(FileL
filelist->flags |= FL_NEED_FILTERING;
}
-void filelist_filter(FileList *filelist)
+static bool filelist_need_filtering(struct FileList *filelist)
{
- int num_filtered = 0;
- const int num_files = filelist->filelist.nbr_entries;
- FileListInternEntry **filtered_tmp, *file;
-
- if (filelist->filelist.nbr_entries == 0) {
- return;
- }
-
- if (!(filelist->flags & FL_NEED_FILTERING)) {
- /* Assume it has already been filtered, nothing else to do! */
- return;
- }
-
- filelist->filter_data.flags &= ~FLF_HIDE_LIB_DIR;
- 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_MAX_LIBEXTRA];
- if (!filelist_islibrary(filelist, dir, NULL)) {
- filelist->filter_data.flags |= FLF_HIDE_LIB_DIR;
- }
- }
-
- 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);
+ return ((filelist->flags & FL_NEED_FILTERING) || (filelist->ae && (filelist->ae->flag & AE_DIRTY_FILTER)));
+}
- filelist_cache_clear(&filelist->filelist_cache, filelist->filelist_cache.size);
+static void filelist_need_filtering_clear(struct FileList *filelist)
+{
filelist->flags &= ~FL_NEED_FILTERING;
-
- MEM_freeN(filtered_tmp);
+ if (filelist->ae) {
+ filelist->ae->flag &= ~AE_DIRTY_FILTER;
+ }
}
- void filelist_setfilter_options(FileList *filelist, const bool hide_dot, const bool hide_parent,
+ void filelist_setfilter_options(FileList *filelist, const bool do_filter,
+ const bool hide_dot, const bool hide_parent,
const unsigned int filter, const unsigned int filter_id,
const char *filter_glob, const char *filter_search)
{
diff --cc source/blender/editors/space_file/filelist.h
index 3b08f9da675,4e9c1e0dd1d..b4e066b0976
--- a/source/blender/editors/space_file/filelist.h
+++ b/source/blender/editors/space_file/filelist.h
@@@ -65,10 -66,13 +65,11 @@@ int folderlist_clear_ne
void filelist_setsorting(struct FileList *filelist, const short sort);
- void filelist_setfilter_options(struct FileList *filelist, const bool hide_dot, const bool hide_parent,
-void filelist_sort(struct FileList *filelist);
-
+ void filelist_setfilter_options(struct FileList *filelist, const bool do_filter,
+ const bool hide_dot, const bool hide_parent,
const unsigned int filter, const unsigned int filter_id,
const char *filter_glob, const char *filter_search);
-void filelist_filter(struct FileList *filelist);
+void filelist_sort_filter(struct FileList *filelist, struct FileSelectParams *params);
void filelist_init_icons(void);
void filelist_free_icons(void);
More information about the Bf-blender-cvs
mailing list