Welcome to mirror list, hosted at ThFree Co, Russian Federation.

git.blender.org/blender.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPhilipp Oeser <info@graphics-engineer.com>2022-04-07 11:31:52 +0300
committerPhilipp Oeser <info@graphics-engineer.com>2022-04-11 19:49:16 +0300
commit4aac251b421b4576b06635d969f802db1d9a3d84 (patch)
treeea3f3b5f51ccf373d21a756e9b47095a0019fa39 /release/scripts/startup/bl_operators
parente7a69b438f0f731e817a90b6df6b08d3951ab342 (diff)
Fix adding certain nodes can cause python errors
Adding nodes via `NodeAddOperator` could fail if the node's poll fails in `rna_NodeTree_node_new`. Examples are trying to add a RenderLayers node or a Cryptomatte node to a nodegroup. Now except the python error and use blender error reporting only instead of throwing full python stacktraces at the user. Differential Revision: https://developer.blender.org/D14584
Diffstat (limited to 'release/scripts/startup/bl_operators')
-rw-r--r--release/scripts/startup/bl_operators/node.py6
1 files changed, 5 insertions, 1 deletions
diff --git a/release/scripts/startup/bl_operators/node.py b/release/scripts/startup/bl_operators/node.py
index b8368cd1970..60a684ae5e8 100644
--- a/release/scripts/startup/bl_operators/node.py
+++ b/release/scripts/startup/bl_operators/node.py
@@ -73,7 +73,11 @@ class NodeAddOperator:
for n in tree.nodes:
n.select = False
- node = tree.nodes.new(type=node_type)
+ try:
+ node = tree.nodes.new(type=node_type)
+ except RuntimeError as e:
+ self.report({'ERROR'}, str(e))
+ return None
for setting in self.settings:
# XXX catch exceptions here?