[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [49512] branches/soc-2008-mxcurioni: Added the functionality to make a copy of the active modifier in the Parameter Editor mode .

Tamito Kajiyama rd6t-kjym at asahi-net.or.jp
Thu Aug 2 22:30:24 CEST 2012


Revision: 49512
          http://projects.blender.org/scm/viewvc.php?view=rev&root=bf-blender&revision=49512
Author:   kjym3
Date:     2012-08-02 20:30:23 +0000 (Thu, 02 Aug 2012)
Log Message:
-----------
Added the functionality to make a copy of the active modifier in the Parameter Editor mode.
Code contribution by flokkievids.  Thank you!

Modified Paths:
--------------
    branches/soc-2008-mxcurioni/release/scripts/startup/bl_ui/properties_render.py
    branches/soc-2008-mxcurioni/source/blender/editors/render/render_intern.h
    branches/soc-2008-mxcurioni/source/blender/editors/render/render_ops.c
    branches/soc-2008-mxcurioni/source/blender/editors/render/render_shading.c

Modified: branches/soc-2008-mxcurioni/release/scripts/startup/bl_ui/properties_render.py
===================================================================
--- branches/soc-2008-mxcurioni/release/scripts/startup/bl_ui/properties_render.py	2012-08-02 19:04:21 UTC (rev 49511)
+++ branches/soc-2008-mxcurioni/release/scripts/startup/bl_ui/properties_render.py	2012-08-02 20:30:23 UTC (rev 49512)
@@ -373,6 +373,7 @@
         row.label(text=modifier.rna_type.name)
         row.prop(modifier, "name", text="")
         row.prop(modifier, "use", text="")
+        row.operator("scene.freestyle_modifier_copy", icon='NONE', text="Copy")
         sub = row.row(align=True)
         sub.operator("scene.freestyle_modifier_move", icon='TRIA_UP', text="").direction = 'UP'
         sub.operator("scene.freestyle_modifier_move", icon='TRIA_DOWN', text="").direction = 'DOWN'

Modified: branches/soc-2008-mxcurioni/source/blender/editors/render/render_intern.h
===================================================================
--- branches/soc-2008-mxcurioni/source/blender/editors/render/render_intern.h	2012-08-02 19:04:21 UTC (rev 49511)
+++ branches/soc-2008-mxcurioni/source/blender/editors/render/render_intern.h	2012-08-02 20:30:23 UTC (rev 49512)
@@ -68,6 +68,7 @@
 void SCENE_OT_freestyle_geometry_modifier_add(struct wmOperatorType *ot);
 void SCENE_OT_freestyle_modifier_remove(struct wmOperatorType *ot);
 void SCENE_OT_freestyle_modifier_move(struct wmOperatorType *ot);
+void SCENE_OT_freestyle_modifier_copy(struct wmOperatorType *ot);
 
 
 void TEXTURE_OT_slot_copy(struct wmOperatorType *ot);

Modified: branches/soc-2008-mxcurioni/source/blender/editors/render/render_ops.c
===================================================================
--- branches/soc-2008-mxcurioni/source/blender/editors/render/render_ops.c	2012-08-02 19:04:21 UTC (rev 49511)
+++ branches/soc-2008-mxcurioni/source/blender/editors/render/render_ops.c	2012-08-02 20:30:23 UTC (rev 49512)
@@ -77,6 +77,7 @@
 	WM_operatortype_append(SCENE_OT_freestyle_geometry_modifier_add);
 	WM_operatortype_append(SCENE_OT_freestyle_modifier_remove);
 	WM_operatortype_append(SCENE_OT_freestyle_modifier_move);
+	WM_operatortype_append(SCENE_OT_freestyle_modifier_copy);
 
 #if (defined(WITH_QUICKTIME) && !defined(USE_QTKIT))
 	WM_operatortype_append(SCENE_OT_render_data_set_quicktime_codec);

Modified: branches/soc-2008-mxcurioni/source/blender/editors/render/render_shading.c
===================================================================
--- branches/soc-2008-mxcurioni/source/blender/editors/render/render_shading.c	2012-08-02 19:04:21 UTC (rev 49511)
+++ branches/soc-2008-mxcurioni/source/blender/editors/render/render_shading.c	2012-08-02 20:30:23 UTC (rev 49512)
@@ -1075,6 +1075,57 @@
 	ot->flag= OPTYPE_REGISTER|OPTYPE_UNDO;
 }
 
+static int freestyle_modifier_copy_exec(bContext *C, wmOperator *op)
+{
+    Scene *scene= CTX_data_scene(C);
+    SceneRenderLayer *srl = (SceneRenderLayer*) BLI_findlink(&scene->r.layers, scene->r.actlay);
+    FreestyleLineSet *lineset = FRS_get_active_lineset(&srl->freestyleConfig);
+    PointerRNA ptr= CTX_data_pointer_get_type(C, "modifier", &RNA_LineStyleModifier);
+    LineStyleModifier *modifier= ptr.data;
+
+    if (!lineset) {
+        BKE_report(op->reports, RPT_ERROR, "No active lineset and associated line style the modifier belongs to.");
+        return OPERATOR_CANCELLED;
+    }
+
+    switch (freestyle_get_modifier_type(&ptr)) {
+    case LS_MODIFIER_TYPE_COLOR:
+        FRS_copy_linestyle_color_modifier(lineset->linestyle, modifier);
+        break;
+    case LS_MODIFIER_TYPE_ALPHA:
+        FRS_copy_linestyle_alpha_modifier(lineset->linestyle, modifier);
+        break;
+    case LS_MODIFIER_TYPE_THICKNESS:
+        FRS_copy_linestyle_thickness_modifier(lineset->linestyle, modifier);
+        break;
+    case LS_MODIFIER_TYPE_GEOMETRY:
+        FRS_copy_linestyle_geometry_modifier(lineset->linestyle, modifier);
+        break;
+    default:
+        BKE_report(op->reports, RPT_ERROR, "The object the data pointer refers to is not a valid modifier.");
+        return OPERATOR_CANCELLED;
+    }
+    WM_event_add_notifier(C, NC_SCENE|ND_RENDER_OPTIONS, scene);
+
+    return OPERATOR_FINISHED;
+
+}
+
+void SCENE_OT_freestyle_modifier_copy(wmOperatorType *ot)
+{
+    /* identifiers */
+    ot->name= "Copy Modifier";
+    ot->idname= "SCENE_OT_freestyle_modifier_copy";
+    ot->description="Duplicate the modifier within the list of modifiers";
+
+    /* api callbacks */
+    ot->exec= freestyle_modifier_copy_exec;
+    ot->poll= freestyle_active_lineset_poll;
+
+    /* flags */
+    ot->flag= OPTYPE_REGISTER|OPTYPE_UNDO;
+}
+
 static int freestyle_modifier_move_exec(bContext *C, wmOperator *op)
 {
 	Scene *scene= CTX_data_scene(C);




More information about the Bf-blender-cvs mailing list