UI: disable scene and view layer delete buttons when not available.

Differential Revision: https://developer.blender.org/D4210
This commit is contained in:
Harley Acheson 2019-01-22 20:34:06 +01:00 committed by Brecht Van Lommel
parent ccc48bf27e
commit 043a005269
2 changed files with 14 additions and 0 deletions

View File

@ -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;

View File

@ -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;