diff options
author | Lukas Toenne <lukas.toenne@googlemail.com> | 2012-08-14 21:56:33 +0400 |
---|---|---|
committer | Lukas Toenne <lukas.toenne@googlemail.com> | 2012-08-14 21:56:33 +0400 |
commit | e83ef85576a04c41b719176f7797596fe9866a2c (patch) | |
tree | 460f2db930a31524e1678b423f7937e740caa0d9 /release | |
parent | 3220ef9d952b71c397849ea64abb882ea65b4d48 (diff) |
Python node operator for combined node collapsing and hiding unused sockets. Socket hide flag is added to RNA as well, but can only be set when the socket is not connected, to avoid dangling links in editor drawing. Currently this operator has no default hotkey, but can be called from the Node menu.
Diffstat (limited to 'release')
-rw-r--r-- | release/scripts/startup/bl_operators/node.py | 31 | ||||
-rw-r--r-- | release/scripts/startup/bl_ui/space_node.py | 1 |
2 files changed, 32 insertions, 0 deletions
diff --git a/release/scripts/startup/bl_operators/node.py b/release/scripts/startup/bl_operators/node.py index 2f7fc359864..ddbd46df04f 100644 --- a/release/scripts/startup/bl_operators/node.py +++ b/release/scripts/startup/bl_operators/node.py @@ -134,3 +134,34 @@ class NODE_OT_add_search(Operator): context.window_manager.invoke_search_popup(self) return {'CANCELLED'} + + +class NODE_OT_collapse_hide_unused_toggle(Operator): + '''Toggle collapsed nodes and hide unused sockets''' + bl_idname = "node.collapse_hide_unused_toggle" + bl_label = "Collapse and Hide Unused Sockets" + bl_options = {'REGISTER', 'UNDO'} + + @classmethod + def poll(cls, context): + space = context.space_data + # needs active node editor and a tree + return space.type == 'NODE_EDITOR' and space.edit_tree + + def execute(self, context): + space = context.space_data + tree = space.edit_tree + + for node in tree.nodes: + if node.select: + hide = not node.hide + + node.hide = hide + # Note: connected sockets are ignored internally + for socket in node.inputs: + socket.hide = hide + for socket in node.outputs: + socket.hide = hide + + return {'FINISHED'} + diff --git a/release/scripts/startup/bl_ui/space_node.py b/release/scripts/startup/bl_ui/space_node.py index 46baef9b043..5b7ecbfb618 100644 --- a/release/scripts/startup/bl_ui/space_node.py +++ b/release/scripts/startup/bl_ui/space_node.py @@ -182,6 +182,7 @@ class NODE_MT_node(Menu): layout.operator("node.preview_toggle") layout.operator("node.hide_socket_toggle") layout.operator("node.options_toggle") + layout.operator("node.collapse_hide_unused_toggle") layout.separator() |