[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [57211] trunk/blender/source/blender: fix [#35501] Operator log: some property changes log as [...].(null) = ...
Campbell Barton
ideasman42 at gmail.com
Mon Jun 3 02:46:21 CEST 2013
Revision: 57211
http://projects.blender.org/scm/viewvc.php?view=rev&root=bf-blender&revision=57211
Author: campbellbarton
Date: 2013-06-03 00:46:20 +0000 (Mon, 03 Jun 2013)
Log Message:
-----------
fix [#35501] Operator log: some property changes log as [...].(null) = ...
Modified Paths:
--------------
trunk/blender/source/blender/makesrna/intern/rna_access.c
trunk/blender/source/blender/windowmanager/intern/wm_operators.c
Modified: trunk/blender/source/blender/makesrna/intern/rna_access.c
===================================================================
--- trunk/blender/source/blender/makesrna/intern/rna_access.c 2013-06-02 23:58:53 UTC (rev 57210)
+++ trunk/blender/source/blender/makesrna/intern/rna_access.c 2013-06-03 00:46:20 UTC (rev 57211)
@@ -4469,6 +4469,16 @@
data_path = RNA_path_from_ID_to_property(ptr, prop);
+ if (data_path == NULL) {
+ /* this may not be an ID at all, check for simple when pointer owns property.
+ * TODO, more complex nested case */
+ if (!RNA_struct_is_ID(ptr->type)) {
+ if (RNA_struct_find_property(ptr, RNA_property_identifier(prop)) == prop) {
+ data_path = BLI_strdup(RNA_property_identifier(prop));
+ }
+ }
+ }
+
if ((index == -1) || (RNA_property_array_check(prop) == FALSE)) {
ret = BLI_sprintfN("%s",
data_path);
Modified: trunk/blender/source/blender/windowmanager/intern/wm_operators.c
===================================================================
--- trunk/blender/source/blender/windowmanager/intern/wm_operators.c 2013-06-02 23:58:53 UTC (rev 57210)
+++ trunk/blender/source/blender/windowmanager/intern/wm_operators.c 2013-06-03 00:46:20 UTC (rev 57211)
@@ -648,7 +648,6 @@
char *ret = NULL;
if (ptr->id.data) {
- ID *idptr = ptr->id.data;
#define CTX_TEST_PTR_ID(C, member, idptr) \
{ \
@@ -671,7 +670,16 @@
} \
} (void)0
- switch (GS(idptr->name)) {
+#define CTX_TEST_PTR_DATA_TYPE(C, member, rna_type, rna_ptr, dataptr_cmp) \
+ { \
+ const char *ctx_member = member; \
+ if (RNA_struct_is_a((ptr)->type, &(rna_type)) && (ptr)->data == (dataptr_cmp)) { \
+ member_id = ctx_member; \
+ break; \
+ } \
+ } (void)0
+
+ switch (GS(((ID *)ptr->id.data)->name)) {
case ID_SCE:
{
CTX_TEST_PTR_ID(C, "scene", ptr->id.data);
@@ -707,6 +715,11 @@
case ID_SCR:
{
CTX_TEST_PTR_ID(C, "screen", ptr->id.data);
+
+ CTX_TEST_PTR_DATA_TYPE(C, "space_data", RNA_Space, ptr, CTX_wm_space_data(C));
+ CTX_TEST_PTR_DATA_TYPE(C, "area", RNA_Area, ptr, CTX_wm_area(C));
+ CTX_TEST_PTR_DATA_TYPE(C, "region", RNA_Region, ptr, CTX_wm_region(C));
+
break;
}
}
More information about the Bf-blender-cvs
mailing list