[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