[Bf-blender-cvs] [043a0052699] master: UI: disable scene and view layer delete buttons when not available.

Harley Acheson noreply at git.blender.org
Tue Jan 22 20:36:21 CET 2019


Commit: 043a0052699176f4f2c9f2f5bbc98cd5b24128ed
Author: Harley Acheson
Date:   Tue Jan 22 20:34:06 2019 +0100
Branches: master
https://developer.blender.org/rB043a0052699176f4f2c9f2f5bbc98cd5b24128ed

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

Differential Revision: https://developer.blender.org/D4210

===================================================================

M	source/blender/editors/render/render_shading.c
M	source/blender/editors/scene/scene_edit.c

===================================================================

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;



More information about the Bf-blender-cvs mailing list