[Bf-blender-cvs] [477e811] master: Show correct syntax for id-properties

Campbell Barton noreply at git.blender.org
Thu Sep 10 20:35:42 CEST 2015


Commit: 477e81128d2fa0035d86690ce2a0027d31625769
Author: Campbell Barton
Date:   Fri Sep 11 03:35:38 2015 +1000
Branches: master
https://developer.blender.org/rB477e81128d2fa0035d86690ce2a0027d31625769

Show correct syntax for id-properties

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

M	source/blender/editors/interface/interface_regions.c
M	source/blender/makesrna/intern/rna_access.c
M	source/blender/python/intern/bpy_rna.c

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

diff --git a/source/blender/editors/interface/interface_regions.c b/source/blender/editors/interface/interface_regions.c
index 356e85e..b9bacb8 100644
--- a/source/blender/editors/interface/interface_regions.c
+++ b/source/blender/editors/interface/interface_regions.c
@@ -520,9 +520,10 @@ ARegion *ui_tooltip_create(bContext *C, ARegion *butregion, uiBut *but)
 			}
 
 			if (data_path) {
+				const char *data_delim = (data_path[0] == '[') ? "" : ".";
 				BLI_snprintf(data->lines[data->totline], sizeof(data->lines[0]),
-				             "%s.%s",  /* no need to translate */
-				             id_path, data_path);
+				             "%s%s%s",  /* no need to translate */
+				             id_path, data_delim, data_path);
 				MEM_freeN(data_path);
 			}
 			else if (prop) {
diff --git a/source/blender/makesrna/intern/rna_access.c b/source/blender/makesrna/intern/rna_access.c
index 41bb038..b7478fd 100644
--- a/source/blender/makesrna/intern/rna_access.c
+++ b/source/blender/makesrna/intern/rna_access.c
@@ -4720,6 +4720,7 @@ char *RNA_path_full_struct_py(struct PointerRNA *ptr)
 char *RNA_path_full_property_py(PointerRNA *ptr, PropertyRNA *prop, int index)
 {
 	char *id_path;
+	const char *data_delim;
 	char *data_path;
 
 	char *ret;
@@ -4733,13 +4734,15 @@ char *RNA_path_full_property_py(PointerRNA *ptr, PropertyRNA *prop, int index)
 
 	data_path = RNA_path_from_ID_to_property(ptr, prop);
 
+	data_delim = (data_path && data_path[0] == '[') ? "" : ".";
+
 	if ((index == -1) || (RNA_property_array_check(prop) == false)) {
-		ret = BLI_sprintfN("%s.%s",
-		                   id_path, data_path);
+		ret = BLI_sprintfN("%s%s%s",
+		                   id_path, data_delim, data_path);
 	}
 	else {
-		ret = BLI_sprintfN("%s.%s[%d]",
-		                   id_path, data_path, index);
+		ret = BLI_sprintfN("%s%s%s[%d]",
+		                   id_path, data_delim, data_path, index);
 	}
 	MEM_freeN(id_path);
 	if (data_path) {
diff --git a/source/blender/python/intern/bpy_rna.c b/source/blender/python/intern/bpy_rna.c
index bd07c73..662572c 100644
--- a/source/blender/python/intern/bpy_rna.c
+++ b/source/blender/python/intern/bpy_rna.c
@@ -988,15 +988,16 @@ static PyObject *pyrna_prop_repr(BPy_PropertyRNA *self)
 
 	path = RNA_path_from_ID_to_property(&self->ptr, self->prop);
 	if (path) {
+		const char *data_delim = (path[0] == '[') ? "" : ".";
 		if (GS(id->name) == ID_NT) { /* nodetree paths are not accurate */
 			ret = PyUnicode_FromFormat("bpy.data...%s",
 			                           path);
 		}
 		else {
-			ret = PyUnicode_FromFormat("bpy.data.%s[%R].%s",
+			ret = PyUnicode_FromFormat("bpy.data.%s[%R]%s%s",
 			                           BKE_idcode_to_name_plural(GS(id->name)),
 			                           tmp_str,
-			                           path);
+			                           data_delim, path);
 		}
 
 		MEM_freeN((void *)path);




More information about the Bf-blender-cvs mailing list