Welcome to mirror list, hosted at ThFree Co, Russian Federation.

git.blender.org/blender.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorCampbell Barton <ideasman42@gmail.com>2015-12-28 09:17:25 +0300
committerCampbell Barton <ideasman42@gmail.com>2015-12-28 09:21:29 +0300
commit641d4e2b7fc4fd563c3c2dd880c8c412dd35ce9a (patch)
tree6ec890d6f2aa558e1ada6cf6df94d121b9759134
parent12874c703cb4fe28600e2533309b3f855b226635 (diff)
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
-rw-r--r--source/blender/blenkernel/BKE_library.h24
-rw-r--r--source/blender/blenkernel/intern/library.c26
-rw-r--r--source/blender/blenloader/intern/versioning_defaults.c5
-rw-r--r--source/blender/collada/DocumentImporter.cpp2
-rw-r--r--source/blender/editors/interface/interface_layout.c2
-rw-r--r--source/blender/editors/interface/interface_templates.c4
-rw-r--r--source/blender/editors/space_outliner/outliner_draw.c4
-rw-r--r--source/blender/makesrna/intern/rna_ID.c3
8 files changed, 33 insertions, 37 deletions
diff --git a/source/blender/blenkernel/BKE_library.h b/source/blender/blenkernel/BKE_library.h
index 336928575af..7af126faa6a 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 39feb4065eb..bfee7c10400 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 1dc3128319f..e57a2156c8d 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 45b8a4fe5d4..45dcf436473 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 4d0c4ad863c..0b53232c29b 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 b53fa270898..bda84fe6c03 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 09c9f88c55f..cc86aa8877e 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 609e9d2f8db..3a163300264 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)