Revision: 28132
          
http://projects.blender.org/plugins/scmsvn/viewcvs.php?view=rev&root=bf-blender&revision=28132
Author:   dfelinto
Date:     2010-04-12 00:08:58 +0200 (Mon, 12 Apr 2010)

Log Message:
-----------
Copy Constraints Operator
the C code to copy the constraint was already there (same as 2.49) so this 
operator simply exposes it.
I'm using the name Copy Constraints to Others based on what we have in material 
operators (e.g. Copy Material to Others).

If we bring back the whole Copy Attributes menu (old Ctrl+C) having the 
individual operators is still important for scripts. Nevertheless I'm not 
comfortable with the name (to Others sounds unnecessary verbose) but so far 
having the functionality back is important (request from Caju Studio). I'll be 
glad to make any change later if needed.
(no shortcut for that, to use it go to userpref->keymap and assign a shortcut 
for this operator or add it to the toolshelf)

Modified Paths:
--------------
    trunk/blender/source/blender/editors/object/object_constraint.c
    trunk/blender/source/blender/editors/object/object_intern.h
    trunk/blender/source/blender/editors/object/object_ops.c

Modified: trunk/blender/source/blender/editors/object/object_constraint.c
===================================================================
--- trunk/blender/source/blender/editors/object/object_constraint.c     
2010-04-11 19:27:41 UTC (rev 28131)
+++ trunk/blender/source/blender/editors/object/object_constraint.c     
2010-04-11 22:08:58 UTC (rev 28132)
@@ -1110,6 +1110,28 @@
 }
 
 /* dummy operator callback */
+static int object_constraint_copy_exec(bContext *C, wmOperator *op)
+{
+       Object *ob=ED_object_active_context(C);
+
+       CTX_DATA_BEGIN(C, Object*, ob_iter, selected_editable_objects) {
+               if(ob != ob_iter) {
+                       if (ob->data != ob_iter->data){
+                               copy_constraints(&ob_iter->constraints, 
&ob->constraints);
+                       }
+                       
+                       if(ob_iter->totcol==ob->totcol) {
+                               ob_iter->actcol= ob->actcol;
+                               WM_event_add_notifier(C, NC_OBJECT|ND_DRAW, 
ob_iter);
+                       }
+               }
+       }
+       CTX_DATA_END;
+
+       return OPERATOR_FINISHED;
+}
+
+/* dummy operator callback */
 static int pose_constraint_add_exec(bContext *C, wmOperator *op)
 {
        Object *ob= ED_object_active_context(C);
@@ -1170,6 +1192,21 @@
        ot->prop= RNA_def_enum(ot->srna, "type", constraint_type_items, 0, 
"Type", "");
 }
 
+void OBJECT_OT_constraint_copy(wmOperatorType *ot)
+{
+       /* identifiers */
+       ot->name= "Copy Constraints to Others";
+       ot->description = "Copy constraints to other selected objects.";
+       ot->idname= "OBJECT_OT_constraint_copy";
+
+       /* api callbacks */
+       ot->exec= object_constraint_copy_exec;
+       ot->poll= ED_operator_object_active_editable;
+
+       /* flags */
+       ot->flag= OPTYPE_REGISTER|OPTYPE_UNDO;
+}
+
 void POSE_OT_constraint_add(wmOperatorType *ot)
 {
        /* identifiers */

Modified: trunk/blender/source/blender/editors/object/object_intern.h
===================================================================
--- trunk/blender/source/blender/editors/object/object_intern.h 2010-04-11 
19:27:41 UTC (rev 28131)
+++ trunk/blender/source/blender/editors/object/object_intern.h 2010-04-11 
22:08:58 UTC (rev 28132)
@@ -157,6 +157,7 @@
 /* object_constraint.c */
 void OBJECT_OT_constraint_add(struct wmOperatorType *ot);
 void OBJECT_OT_constraint_add_with_targets(struct wmOperatorType *ot);
+void OBJECT_OT_constraint_copy(struct wmOperatorType *ot);
 void POSE_OT_constraint_add(struct wmOperatorType *ot);
 void POSE_OT_constraint_add_with_targets(struct wmOperatorType *ot);
 

Modified: trunk/blender/source/blender/editors/object/object_ops.c
===================================================================
--- trunk/blender/source/blender/editors/object/object_ops.c    2010-04-11 
19:27:41 UTC (rev 28131)
+++ trunk/blender/source/blender/editors/object/object_ops.c    2010-04-11 
22:08:58 UTC (rev 28132)
@@ -143,6 +143,7 @@
        
        WM_operatortype_append(OBJECT_OT_constraint_add);
        WM_operatortype_append(OBJECT_OT_constraint_add_with_targets);
+       WM_operatortype_append(OBJECT_OT_constraint_copy);
        WM_operatortype_append(POSE_OT_constraint_add);
        WM_operatortype_append(POSE_OT_constraint_add_with_targets);
        WM_operatortype_append(OBJECT_OT_constraints_clear);


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

Reply via email to