diff options
author | Tamito Kajiyama <rd6t-kjym@asahi-net.or.jp> | 2011-11-21 03:44:50 +0400 |
---|---|---|
committer | Tamito Kajiyama <rd6t-kjym@asahi-net.or.jp> | 2011-11-21 03:44:50 +0400 |
commit | 1b8c14b4539af1a2c8846e4054b108dc3002e15e (patch) | |
tree | 1cb6c30323ec7384753482187ac5ec26f56acc4a /source/blender/editors/render | |
parent | 2676f2d58f71f438008b413a86b873e7787d80ea (diff) |
Replaced the changes in revision 41810 with a better implementation
of copy/paste functionality. Instead of making a copy of the active
line set, now the settings of the active line set are copied to and
pasted from a buffer. This allows for copying and pasting line set
settings among different scenes and render layers.
Diffstat (limited to 'source/blender/editors/render')
-rw-r--r-- | source/blender/editors/render/render_intern.h | 1 | ||||
-rw-r--r-- | source/blender/editors/render/render_ops.c | 1 | ||||
-rw-r--r-- | source/blender/editors/render/render_shading.c | 30 |
3 files changed, 31 insertions, 1 deletions
diff --git a/source/blender/editors/render/render_intern.h b/source/blender/editors/render/render_intern.h index dfb30238d0c..0af46eb0129 100644 --- a/source/blender/editors/render/render_intern.h +++ b/source/blender/editors/render/render_intern.h @@ -58,6 +58,7 @@ void SCENE_OT_freestyle_module_remove(struct wmOperatorType *ot); void SCENE_OT_freestyle_module_move(struct wmOperatorType *ot); void SCENE_OT_freestyle_lineset_add(struct wmOperatorType *ot); void SCENE_OT_freestyle_lineset_copy(struct wmOperatorType *ot); +void SCENE_OT_freestyle_lineset_paste(struct wmOperatorType *ot); void SCENE_OT_freestyle_lineset_remove(struct wmOperatorType *ot); void SCENE_OT_freestyle_lineset_move(struct wmOperatorType *ot); void SCENE_OT_freestyle_linestyle_new(struct wmOperatorType *ot); diff --git a/source/blender/editors/render/render_ops.c b/source/blender/editors/render/render_ops.c index 8acb92b1193..f94d94178a4 100644 --- a/source/blender/editors/render/render_ops.c +++ b/source/blender/editors/render/render_ops.c @@ -67,6 +67,7 @@ void ED_operatortypes_render(void) WM_operatortype_append(SCENE_OT_freestyle_module_move); WM_operatortype_append(SCENE_OT_freestyle_lineset_add); WM_operatortype_append(SCENE_OT_freestyle_lineset_copy); + WM_operatortype_append(SCENE_OT_freestyle_lineset_paste); WM_operatortype_append(SCENE_OT_freestyle_lineset_remove); WM_operatortype_append(SCENE_OT_freestyle_lineset_move); WM_operatortype_append(SCENE_OT_freestyle_linestyle_new); diff --git a/source/blender/editors/render/render_shading.c b/source/blender/editors/render/render_shading.c index 1343eb2947d..b3817002b2c 100644 --- a/source/blender/editors/render/render_shading.c +++ b/source/blender/editors/render/render_shading.c @@ -718,7 +718,7 @@ void SCENE_OT_freestyle_lineset_copy(wmOperatorType *ot) /* identifiers */ ot->name= "Copy Line Set"; ot->idname= "SCENE_OT_freestyle_lineset_copy"; - ot->description="Create a copy of the active line set"; + ot->description="Copy the active line set to a buffer"; /* api callbacks */ ot->exec= freestyle_lineset_copy_exec; @@ -727,6 +727,34 @@ void SCENE_OT_freestyle_lineset_copy(wmOperatorType *ot) /* flags */ ot->flag= OPTYPE_REGISTER|OPTYPE_UNDO; } + +static int freestyle_lineset_paste_exec(bContext *C, wmOperator *op) +{ + Scene *scene= CTX_data_scene(C); + SceneRenderLayer *srl = (SceneRenderLayer*) BLI_findlink(&scene->r.layers, scene->r.actlay); + + FRS_paste_active_lineset(&srl->freestyleConfig); + + WM_event_add_notifier(C, NC_SCENE|ND_RENDER_OPTIONS, scene); + + return OPERATOR_FINISHED; +} + +void SCENE_OT_freestyle_lineset_paste(wmOperatorType *ot) +{ + /* identifiers */ + ot->name= "Paste Line Set"; + ot->idname= "SCENE_OT_freestyle_lineset_paste"; + ot->description="Paste the buffer content to the active line set"; + + /* api callbacks */ + ot->exec= freestyle_lineset_paste_exec; + ot->poll= freestyle_active_lineset_poll; + + /* flags */ + ot->flag= OPTYPE_REGISTER|OPTYPE_UNDO; +} + static int freestyle_lineset_remove_exec(bContext *C, wmOperator *UNUSED(op)) { Scene *scene= CTX_data_scene(C); |