[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