[Bf-blender-cvs] [641d4e2] master: Cleanup: use BLI_libblock prefix for id functions

Campbell Barton noreply at git.blender.org
Mon Dec 28 07:29:55 CET 2015


Commit: 641d4e2b7fc4fd563c3c2dd880c8c412dd35ce9a
Author: Campbell Barton
Date:   Mon Dec 28 17:17:25 2015 +1100
Branches: master
https://developer.blender.org/rB641d4e2b7fc4fd563c3c2dd880c8c412dd35ce9a

Cleanup: use BLI_libblock prefix for id functions

- test_idbutton -> BLI_libblock_ensure_unique_name (not only used from UI)
- BKE_rename_id -> BKE_libblock_rename (always pass valid main)

also rename:
- name_uiprefix_id -> BKE_id_uiprefix

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

M	source/blender/blenkernel/BKE_library.h
M	source/blender/blenkernel/intern/library.c
M	source/blender/blenloader/intern/versioning_defaults.c
M	source/blender/collada/DocumentImporter.cpp
M	source/blender/editors/interface/interface_layout.c
M	source/blender/editors/interface/interface_templates.c
M	source/blender/editors/space_outliner/outliner_draw.c
M	source/blender/makesrna/intern/rna_ID.c

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

diff --git a/source/blender/blenkernel/BKE_library.h b/source/blender/blenkernel/BKE_library.h
index 3369285..7af126f 100644
--- a/source/blender/blenkernel/BKE_library.h
+++ b/source/blender/blenkernel/BKE_library.h
@@ -57,6 +57,16 @@ void *BKE_libblock_copy_nolib(struct ID *id, const bool do_action) ATTR_NONNULL(
 void *BKE_libblock_copy(struct ID *id) ATTR_WARN_UNUSED_RESULT ATTR_NONNULL();
 void  BKE_libblock_copy_data(struct ID *id, const struct ID *id_from, const bool do_action);
 void  BKE_libblock_relink(struct ID *id);
+void  BKE_libblock_rename(struct Main *bmain, struct ID *id, const char *name) ATTR_NONNULL();
+void  BLI_libblock_ensure_unique_name(struct Main *bmain, const char *name) ATTR_NONNULL();
+
+void  BKE_libblock_free(struct Main *bmain, void *idv) ATTR_NONNULL();
+void  BKE_libblock_free_ex(struct Main *bmain, void *idv, bool do_id_user) ATTR_NONNULL();
+void  BKE_libblock_free_us(struct Main *bmain, void *idv) ATTR_NONNULL();
+void  BKE_libblock_free_data(struct Main *bmain, struct ID *id) ATTR_NONNULL();
+
+struct ID *BKE_libblock_find_name_ex(struct Main *bmain, const short type, const char *name) ATTR_WARN_UNUSED_RESULT ATTR_NONNULL();
+struct ID *BKE_libblock_find_name(const short type, const char *name) ATTR_WARN_UNUSED_RESULT ATTR_NONNULL();
 
 void BKE_id_lib_local_paths(struct Main *bmain, struct Library *lib, struct ID *id);
 void id_lib_extern(struct ID *id);
@@ -81,12 +91,6 @@ struct ListBase *which_libbase(struct Main *mainlib, short type);
 #define MAX_LIBARRAY    34
 int set_listbasepointers(struct Main *main, struct ListBase *lb[MAX_LIBARRAY]);
 
-void BKE_libblock_free(struct Main *bmain, void *idv);
-void BKE_libblock_free_ex(struct Main *bmain, void *idv, bool do_id_user);
-void BKE_libblock_free_us(struct Main *bmain, void *idv);
-void BKE_libblock_free_data(struct Main *bmain, struct ID *id);
-
-
 /* Main API */
 struct Main *BKE_main_new(void);
 void BKE_main_free(struct Main *mainvar);
@@ -109,15 +113,11 @@ void BKE_main_id_clear_newpoins(struct Main *bmain);
 
 void BKE_main_lib_objects_recalc_all(struct Main *bmain);
 
-void BKE_rename_id(struct Main *bmain, struct ID *id, const char *name);
-void name_uiprefix_id(char *name, const struct ID *id);
-void test_idbutton(char *name);
+/* (MAX_ID_NAME - 2) + 3 */
+void BKE_id_ui_prefix(char name[66 + 1], const struct ID *id);
 
 void BKE_library_make_local(struct Main *bmain, struct Library *lib, bool untagged_only);
 
-struct ID *BKE_libblock_find_name_ex(struct Main *bmain, const short type, const char *name) ATTR_WARN_UNUSED_RESULT ATTR_NONNULL();
-struct ID *BKE_libblock_find_name(const short type, const char *name) ATTR_WARN_UNUSED_RESULT ATTR_NONNULL();
-
 typedef void (*BKE_library_free_window_manager_cb)(struct bContext *, struct wmWindowManager *);
 typedef void (*BKE_library_free_notifier_reference_cb)(const void *);
 typedef void (*BKE_library_free_editor_id_reference_cb)(const struct ID *);
diff --git a/source/blender/blenkernel/intern/library.c b/source/blender/blenkernel/intern/library.c
index 39feb40..bfee7c1 100644
--- a/source/blender/blenkernel/intern/library.c
+++ b/source/blender/blenkernel/intern/library.c
@@ -1809,21 +1809,23 @@ void BKE_library_make_local(Main *bmain, Library *lib, bool untagged_only)
 	}
 }
 
-
-void test_idbutton(char *name)
+/**
+ * Use after setting the ID's name
+ * When name exists: call 'new_id'
+ */
+void BLI_libblock_ensure_unique_name(Main *bmain, const char *name)
 {
-	/* called from buttons: when name already exists: call new_id */
 	ListBase *lb;
 	ID *idtest;
-	
 
-	lb = which_libbase(G.main, GS(name));
+
+	lb = which_libbase(bmain, GS(name));
 	if (lb == NULL) return;
 	
 	/* search for id */
 	idtest = BLI_findstring(lb, name + 2, offsetof(ID, name) + 2);
 
-	if (idtest && !new_id(lb, idtest, name + 2)) {
+	if (idtest && !new_id(lb, idtest, idtest->name + 2)) {
 		id_sort_by_name(lb, idtest);
 	}
 }
@@ -1831,15 +1833,9 @@ void test_idbutton(char *name)
 /**
  * Sets the name of a block to name, suitably adjusted for uniqueness.
  */
-void BKE_rename_id(Main *bmain, ID *id, const char *name)
+void BKE_libblock_rename(Main *bmain, ID *id, const char *name)
 {
-	ListBase *lb;
-
-	if (!bmain)
-		bmain = G.main;
-
-	lb = which_libbase(bmain, GS(id->name));
-	
+	ListBase *lb = which_libbase(bmain, GS(id->name));
 	new_id(lb, id, name);
 }
 
@@ -1847,7 +1843,7 @@ void BKE_rename_id(Main *bmain, ID *id, const char *name)
  * Returns in name the name of the block, with a 3-character prefix prepended
  * indicating whether it comes from a library, has a fake user, or no users.
  */
-void name_uiprefix_id(char *name, const ID *id)
+void BKE_id_ui_prefix(char name[MAX_ID_NAME + 1], const ID *id)
 {
 	name[0] = id->lib ? (ID_MISSING(id) ? 'M' : 'L') : ' ';
 	name[1] = (id->flag & LIB_FAKEUSER) ? 'F' : ((id->us == 0) ? '0' : ' ');
diff --git a/source/blender/blenloader/intern/versioning_defaults.c b/source/blender/blenloader/intern/versioning_defaults.c
index 1dc3128..e57a215 100644
--- a/source/blender/blenloader/intern/versioning_defaults.c
+++ b/source/blender/blenloader/intern/versioning_defaults.c
@@ -232,9 +232,8 @@ void BLO_update_defaults_startup_blend(Main *bmain)
 
 		/* rename twist brush to rotate brush to match rotate tool */
 		br = (Brush *)BKE_libblock_find_name_ex(bmain, ID_BR, "Twist");
-		if (br)
-		{
-			BKE_rename_id(bmain, &br->id, "Rotate");
+		if (br) {
+			BKE_libblock_rename(bmain, &br->id, "Rotate");
 		}
 	}
 }
diff --git a/source/blender/collada/DocumentImporter.cpp b/source/blender/collada/DocumentImporter.cpp
index 45b8a4f..45dcf43 100644
--- a/source/blender/collada/DocumentImporter.cpp
+++ b/source/blender/collada/DocumentImporter.cpp
@@ -654,7 +654,7 @@ std::vector<Object *> *DocumentImporter::write_node(COLLADAFW::Node *node, COLLA
 		for (std::vector<Object *>::iterator it = objects_done->begin(); it != objects_done->end(); ++it) {
 			ob = *it;
 			std::string nodename = node->getName().size() ? node->getName() : node->getOriginalId();
-			BKE_rename_id(NULL, &ob->id, (char *)nodename.c_str());
+			BKE_libblock_rename(G.main, &ob->id, (char *)nodename.c_str());
 			object_map.insert(std::pair<COLLADAFW::UniqueId, Object *>(node->getUniqueId(), ob));
 			node_map[node->getUniqueId()] = node;
 
diff --git a/source/blender/editors/interface/interface_layout.c b/source/blender/editors/interface/interface_layout.c
index 4d0c4ad..0b53232 100644
--- a/source/blender/editors/interface/interface_layout.c
+++ b/source/blender/editors/interface/interface_layout.c
@@ -1524,7 +1524,7 @@ static void rna_search_cb(const struct bContext *C, void *arg_but, const char *s
 
 #if 0       /* this name is used for a string comparison and can't be modified, TODO */
 			/* if ever enabled, make name_ui be MAX_ID_NAME+1 */
-			name_uiprefix_id(name_ui, id);
+			BKE_id_ui_prefix(name_ui, id);
 #else
 			BLI_strncpy(name_ui, id->name + 2, sizeof(name_ui));
 #endif
diff --git a/source/blender/editors/interface/interface_templates.c b/source/blender/editors/interface/interface_templates.c
index b53fa27..bda84fe 100644
--- a/source/blender/editors/interface/interface_templates.c
+++ b/source/blender/editors/interface/interface_templates.c
@@ -148,11 +148,11 @@ static void id_search_cb(const bContext *C, void *arg_template, const char *str,
 					continue;
 
 			if (*str == '\0' || BLI_strcasestr(id->name + 2, str)) {
-				/* +1 is needed because name_uiprefix_id used 3 letter prefix
+				/* +1 is needed because BKE_id_ui_prefix used 3 letter prefix
 				 * followed by ID_NAME-2 characters from id->name
 				 */
 				char name_ui[MAX_ID_NAME + 1];
-				name_uiprefix_id(name_ui, id);
+				BKE_id_ui_prefix(name_ui, id);
 
 				iconid = ui_id_icon_get(C, id, template->preview);
 
diff --git a/source/blender/editors/space_outliner/outliner_draw.c b/source/blender/editors/space_outliner/outliner_draw.c
index 09c9f88..cc86aa8 100644
--- a/source/blender/editors/space_outliner/outliner_draw.c
+++ b/source/blender/editors/space_outliner/outliner_draw.c
@@ -474,7 +474,7 @@ static void namebutton_cb(bContext *C, void *tsep, char *oldname)
 		TreeElement *te = outliner_find_tree_element(&soops->tree, tselem);
 		
 		if (tselem->type == 0) {
-			test_idbutton(tselem->id->name);  // library.c, unique name and alpha sort
+			BLI_libblock_ensure_unique_name(G.main, tselem->id->name);
 			
 			switch (GS(tselem->id->name)) {
 				case ID_MA:
@@ -509,7 +509,7 @@ static void namebutton_cb(bContext *C, void *tsep, char *oldname)
 					defgroup_unique_name(te->directdata, (Object *)tselem->id); //	id = object
 					break;
 				case TSE_NLA_ACTION:
-					test_idbutton(tselem->id->name);
+					BLI_libblock_ensure_unique_name(G.main, tselem->id->name);
 					break;
 				case TSE_EBONE:
 				{
diff --git a/source/blender/makesrna/intern/rna_ID.c b/source/blender/makesrna/intern/rna_ID.c
index 609e9d2..3a16330 100644
--- a/source/blender/makesrna/intern/rna_ID.c
+++ b/source/blender/makesrna/intern/rna_ID.c
@@ -93,6 +93,7 @@ EnumPropertyItem rna_enum_id_type_items[] = {
 #include "BKE_animsys.h"
 #include "BKE_material.h"
 #include "BKE_depsgraph.h"
+#include "BKE_global.h"  /* XXX, remove me */
 
 #include "WM_api.h"
 
@@ -113,7 +114,7 @@ void rna_ID_name_set(PointerRNA *ptr, const char *value)
 {
 	ID *id = (ID *)ptr->data;
 	BLI_strncpy_utf8(id->name + 2, value, sizeof(id->name) - 2);
-	test_idbutton(id->name);
+	BLI_libblock_ensure_unique_name(G.main, id->name);
 }
 
 static int rna_ID_name_editable(PointerRNA *ptr)




More information about the Bf-blender-cvs mailing list