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);

_______________________________________________
Bf-blender-cvs mailing list
[email protected]
http://lists.blender.org/mailman/listinfo/bf-blender-cvs

Reply via email to