[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [46473] trunk/blender/source/blender/ editors/interface: Fix #31371: copy data path should be disabled in places where it doesn't work,

Brecht Van Lommel brechtvanlommel at pandora.be
Wed May 9 17:54:25 CEST 2012


Revision: 46473
          http://projects.blender.org/scm/viewvc.php?view=rev&root=bf-blender&revision=46473
Author:   blendix
Date:     2012-05-09 15:54:25 +0000 (Wed, 09 May 2012)
Log Message:
-----------
Fix #31371: copy data path should be disabled in places where it doesn't work,
like the user preferences.

Also renamed "View Docs" menu entry to "Python Documentation".

Modified Paths:
--------------
    trunk/blender/source/blender/editors/interface/interface_handlers.c
    trunk/blender/source/blender/editors/interface/interface_ops.c

Modified: trunk/blender/source/blender/editors/interface/interface_handlers.c
===================================================================
--- trunk/blender/source/blender/editors/interface/interface_handlers.c	2012-05-09 15:54:22 UTC (rev 46472)
+++ trunk/blender/source/blender/editors/interface/interface_handlers.c	2012-05-09 15:54:25 UTC (rev 46473)
@@ -4557,7 +4557,7 @@
 
 			WM_operator_properties_create(&ptr_props, "WM_OT_doc_view");
 			RNA_string_set(&ptr_props, "doc_id", buf);
-			uiItemFullO(layout, "WM_OT_doc_view", "View Docs", ICON_NONE, ptr_props.data, WM_OP_EXEC_DEFAULT, 0);
+			uiItemFullO(layout, "WM_OT_doc_view", "Python Documentation", ICON_NONE, ptr_props.data, WM_OP_EXEC_DEFAULT, 0);
 
 			/* XXX inactive option, not for public! */
 #if 0
@@ -4573,7 +4573,7 @@
 
 			WM_operator_properties_create(&ptr_props, "WM_OT_doc_view");
 			RNA_string_set(&ptr_props, "doc_id", buf);
-			uiItemFullO(layout, "WM_OT_doc_view", "View Docs", ICON_NONE, ptr_props.data, WM_OP_EXEC_DEFAULT, 0);
+			uiItemFullO(layout, "WM_OT_doc_view", "Python Documentation", ICON_NONE, ptr_props.data, WM_OP_EXEC_DEFAULT, 0);
 
 
 			WM_operator_properties_create(&ptr_props, "WM_OT_doc_edit");

Modified: trunk/blender/source/blender/editors/interface/interface_ops.c
===================================================================
--- trunk/blender/source/blender/editors/interface/interface_ops.c	2012-05-09 15:54:22 UTC (rev 46472)
+++ trunk/blender/source/blender/editors/interface/interface_ops.c	2012-05-09 15:54:25 UTC (rev 46473)
@@ -234,12 +234,32 @@
 
 /* Copy Data Path Operator ------------------------ */
 
+static int copy_data_path_button_poll(bContext *C)
+{
+	PointerRNA ptr;
+	PropertyRNA *prop;
+	char *path;
+	int index;
+
+	uiContextActiveProperty(C, &ptr, &prop, &index);
+
+	if (ptr.id.data && ptr.data && prop) {
+		path = RNA_path_from_ID_to_property(&ptr, prop);
+		
+		if (path) {
+			MEM_freeN(path);
+			return 1;
+		}
+	}
+
+	return 0;
+}
+
 static int copy_data_path_button_exec(bContext *C, wmOperator *UNUSED(op))
 {
 	PointerRNA ptr;
 	PropertyRNA *prop;
 	char *path;
-	int success = 0;
 	int index;
 
 	/* try to create driver using property retrieved from UI */
@@ -251,11 +271,11 @@
 		if (path) {
 			WM_clipboard_text_set(path, FALSE);
 			MEM_freeN(path);
+			return OPERATOR_FINISHED;
 		}
 	}
 
-	/* since we're just copying, we don't really need to do anything else...*/
-	return (success) ? OPERATOR_FINISHED : OPERATOR_CANCELLED;
+	return OPERATOR_CANCELLED;
 }
 
 static void UI_OT_copy_data_path_button(wmOperatorType *ot)
@@ -267,7 +287,7 @@
 
 	/* callbacks */
 	ot->exec = copy_data_path_button_exec;
-	//op->poll= ??? // TODO: need to have some valid property before this can be done
+	ot->poll = copy_data_path_button_poll;
 
 	/* flags */
 	ot->flag = OPTYPE_REGISTER;




More information about the Bf-blender-cvs mailing list