[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [23688] trunk/blender/source/blender/ editors: Option to copy the data path of an RNA button

Campbell Barton ideasman42 at gmail.com
Wed Oct 7 15:22:56 CEST 2009


Revision: 23688
          http://projects.blender.org/plugins/scmsvn/viewcvs.php?view=rev&root=bf-blender&revision=23688
Author:   campbellbarton
Date:     2009-10-07 15:22:56 +0200 (Wed, 07 Oct 2009)

Log Message:
-----------
Option to copy the data path of an RNA button

Modified Paths:
--------------
    trunk/blender/source/blender/editors/animation/anim_intern.h
    trunk/blender/source/blender/editors/animation/anim_ops.c
    trunk/blender/source/blender/editors/animation/drivers.c
    trunk/blender/source/blender/editors/interface/interface_anim.c

Modified: trunk/blender/source/blender/editors/animation/anim_intern.h
===================================================================
--- trunk/blender/source/blender/editors/animation/anim_intern.h	2009-10-07 12:19:47 UTC (rev 23687)
+++ trunk/blender/source/blender/editors/animation/anim_intern.h	2009-10-07 13:22:56 UTC (rev 23688)
@@ -79,4 +79,6 @@
 void ANIM_OT_copy_driver_button(struct wmOperatorType *ot);
 void ANIM_OT_paste_driver_button(struct wmOperatorType *ot);
 
+void ANIM_OT_copy_clipboard_button(struct wmOperatorType *ot);
+
 #endif // ANIM_INTERN_H

Modified: trunk/blender/source/blender/editors/animation/anim_ops.c
===================================================================
--- trunk/blender/source/blender/editors/animation/anim_ops.c	2009-10-07 12:19:47 UTC (rev 23687)
+++ trunk/blender/source/blender/editors/animation/anim_ops.c	2009-10-07 13:22:56 UTC (rev 23688)
@@ -404,6 +404,8 @@
 	WM_operatortype_append(ANIM_OT_copy_driver_button);
 	WM_operatortype_append(ANIM_OT_paste_driver_button);
 	
+	WM_operatortype_append(ANIM_OT_copy_clipboard_button);
+
 	
 	WM_operatortype_append(ANIM_OT_add_keyingset_button);
 	WM_operatortype_append(ANIM_OT_remove_keyingset_button);

Modified: trunk/blender/source/blender/editors/animation/drivers.c
===================================================================
--- trunk/blender/source/blender/editors/animation/drivers.c	2009-10-07 12:19:47 UTC (rev 23687)
+++ trunk/blender/source/blender/editors/animation/drivers.c	2009-10-07 13:22:56 UTC (rev 23688)
@@ -564,4 +564,48 @@
 	ot->flag= OPTYPE_REGISTER|OPTYPE_UNDO;
 }
 
+
+/* Paste Driver Button Operator ------------------------ */
+
+static int copy_clipboard_button_exec(bContext *C, wmOperator *op)
+{
+	PointerRNA ptr;
+	PropertyRNA *prop= NULL;
+	char *path;
+	short success= 0;
+	int index;
+
+	/* try to create driver using property retrieved from UI */
+	memset(&ptr, 0, sizeof(PointerRNA));
+	uiAnimContextProperty(C, &ptr, &prop, &index);
+
+	if (ptr.data && prop) { // && RNA_property_animateable(ptr.data, prop)
+		path= RNA_path_from_ID_to_property(&ptr, prop);
+
+		if (path) {
+			WM_clipboard_text_set(path, FALSE);
+			MEM_freeN(path);
+		}
+	}
+
+	/* since we're just copying, we don't really need to do anything else...*/
+	return (success)? OPERATOR_FINISHED: OPERATOR_CANCELLED;
+}
+
+void ANIM_OT_copy_clipboard_button(wmOperatorType *ot)
+{
+	/* identifiers */
+	ot->name= "Copy Data Path";
+	ot->idname= "ANIM_OT_copy_clipboard_button";
+	ot->description= "Copy the rna data path to the clipboard.";
+
+	/* callbacks */
+	ot->exec= copy_clipboard_button_exec;
+	//op->poll= ??? // TODO: need to have some driver to be able to do this...
+
+	/* flags */
+	ot->flag= 0;
+}
+
+
 /* ************************************************** */

Modified: trunk/blender/source/blender/editors/interface/interface_anim.c
===================================================================
--- trunk/blender/source/blender/editors/interface/interface_anim.c	2009-10-07 12:19:47 UTC (rev 23687)
+++ trunk/blender/source/blender/editors/interface/interface_anim.c	2009-10-07 13:22:56 UTC (rev 23688)
@@ -310,6 +310,9 @@
 			}
 		}
 
+		uiItemS(layout);
+		uiItemBooleanO(layout, "Copy Data Path", 0, "ANIM_OT_copy_clipboard_button", "all", 1);
+
 		uiPupMenuEnd(C, pup);
 	}
 }





More information about the Bf-blender-cvs mailing list