[Bf-blender-cvs] [51bb1ce] asset-experiments: FileBrowser: add dummy accessor to entries from their uuid.

Bastien Montagne noreply at git.blender.org
Sat Apr 4 15:07:10 CEST 2015


Commit: 51bb1cef3974a87a82c8d437ffebd7e087889fd6
Author: Bastien Montagne
Date:   Sat Apr 4 15:06:23 2015 +0200
Branches: asset-experiments
https://developer.blender.org/rB51bb1cef3974a87a82c8d437ffebd7e087889fd6

FileBrowser: add dummy accessor to entries from their uuid.

Needed for assets branch, to be rework seriously later of course.

===================================================================

M	source/blender/editors/space_file/filelist.c
M	source/blender/editors/space_file/filelist.h

===================================================================

diff --git a/source/blender/editors/space_file/filelist.c b/source/blender/editors/space_file/filelist.c
index 01804fa..0410e3d 100644
--- a/source/blender/editors/space_file/filelist.c
+++ b/source/blender/editors/space_file/filelist.c
@@ -1418,6 +1418,26 @@ int filelist_file_findpath(struct FileList *filelist, const char *filename)
 	return -1;
 }
 
+FileDirEntry *filelist_entry_find_uuid(struct FileList *filelist, const char uuid[ASSET_UUID_LENGTH])
+{
+	int fidx;
+
+	if (filelist->filelist.nbr_entries_filtered < 0) {
+		return NULL;
+	}
+
+	/* XXX TODO Cache could probably use a ghash on uuids too? Not really urgent though. */
+
+	for (fidx = 0; fidx < filelist->filelist.nbr_entries_filtered; fidx++) {
+		FileDirEntry *entry = filelist->filelist_intern.filtered[fidx];
+		if (memcmp(entry->uuid, uuid, sizeof(entry->uuid)) == 0) {
+			return entry;
+		}
+	}
+
+	return NULL;
+}
+
 /* Helper, low-level, it assumes cursor + size <= FILELIST_ENTRYCACHESIZE */
 static bool filelist_file_cache_block_do(struct FileList *filelist, const int start_index, const int size, int cursor)
 {
diff --git a/source/blender/editors/space_file/filelist.h b/source/blender/editors/space_file/filelist.h
index 7f19a8c..e76616b 100644
--- a/source/blender/editors/space_file/filelist.h
+++ b/source/blender/editors/space_file/filelist.h
@@ -92,6 +92,7 @@ int                 filelist_empty(struct FileList *filelist);
 int                 filelist_numfiles(struct FileList *filelist);
 FileDirEntry *      filelist_file(struct FileList *filelist, int index);
 int                 filelist_file_findpath(struct FileList *filelist, const char *file);
+FileDirEntry *      filelist_entry_find_uuid(struct FileList *filelist, const char uuid[ASSET_UUID_LENGTH]);
 bool                filelist_file_cache_block(struct FileList *filelist, const int index);
 
 bool                filelist_force_reset(struct FileList *filelist);




More information about the Bf-blender-cvs mailing list