diff options
author | Philipp Oeser <info@graphics-engineer.com> | 2022-04-07 11:31:52 +0300 |
---|---|---|
committer | Philipp Oeser <info@graphics-engineer.com> | 2022-04-11 19:49:16 +0300 |
commit | 4aac251b421b4576b06635d969f802db1d9a3d84 (patch) | |
tree | ea3f3b5f51ccf373d21a756e9b47095a0019fa39 /release | |
parent | e7a69b438f0f731e817a90b6df6b08d3951ab342 (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')
-rw-r--r-- | release/scripts/startup/bl_operators/node.py | 6 |
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? |