From 043a0052699176f4f2c9f2f5bbc98cd5b24128ed Mon Sep 17 00:00:00 2001 From: Harley Acheson Date: Tue, 22 Jan 2019 20:34:06 +0100 Subject: UI: disable scene and view layer delete buttons when not available. Differential Revision: https://developer.blender.org/D4210 --- source/blender/editors/render/render_shading.c | 7 +++++++ source/blender/editors/scene/scene_edit.c | 7 +++++++ 2 files changed, 14 insertions(+) diff --git a/source/blender/editors/render/render_shading.c b/source/blender/editors/render/render_shading.c index bc92a45391c..53fc82e3482 100644 --- a/source/blender/editors/render/render_shading.c +++ b/source/blender/editors/render/render_shading.c @@ -718,6 +718,12 @@ void SCENE_OT_view_layer_add(wmOperatorType *ot) ot->flag = OPTYPE_REGISTER | OPTYPE_UNDO | OPTYPE_INTERNAL; } +static bool view_layer_remove_poll(bContext *C) +{ + Scene *scene = CTX_data_scene(C); + return (scene->view_layers.first != scene->view_layers.last); +} + static int view_layer_remove_exec(bContext *C, wmOperator *UNUSED(op)) { Main *bmain = CTX_data_main(C); @@ -742,6 +748,7 @@ void SCENE_OT_view_layer_remove(wmOperatorType *ot) /* api callbacks */ ot->exec = view_layer_remove_exec; + ot->poll = view_layer_remove_poll; /* flags */ ot->flag = OPTYPE_REGISTER | OPTYPE_UNDO | OPTYPE_INTERNAL; diff --git a/source/blender/editors/scene/scene_edit.c b/source/blender/editors/scene/scene_edit.c index 60f16835cf3..ddd319fa424 100644 --- a/source/blender/editors/scene/scene_edit.c +++ b/source/blender/editors/scene/scene_edit.c @@ -238,6 +238,12 @@ static void SCENE_OT_new(wmOperatorType *ot) ot->prop = RNA_def_enum(ot->srna, "type", type_items, 0, "Type", ""); } +static bool scene_delete_poll(bContext *C) +{ + Scene *scene = CTX_data_scene(C); + return (scene->id.prev || scene->id.next); +} + static int scene_delete_exec(bContext *C, wmOperator *UNUSED(op)) { Scene *scene = CTX_data_scene(C); @@ -263,6 +269,7 @@ static void SCENE_OT_delete(wmOperatorType *ot) /* api callbacks */ ot->exec = scene_delete_exec; + ot->poll = scene_delete_poll; /* flags */ ot->flag = OPTYPE_REGISTER | OPTYPE_UNDO; -- cgit v1.2.3