diff options
Diffstat (limited to 'release/scripts/startup/bl_ui/space_node.py')
-rw-r--r-- | release/scripts/startup/bl_ui/space_node.py | 63 |
1 files changed, 60 insertions, 3 deletions
diff --git a/release/scripts/startup/bl_ui/space_node.py b/release/scripts/startup/bl_ui/space_node.py index f806fc345d1..5cf3a6109d0 100644 --- a/release/scripts/startup/bl_ui/space_node.py +++ b/release/scripts/startup/bl_ui/space_node.py @@ -49,6 +49,7 @@ class NODE_HT_header(Header): scene = context.scene snode = context.space_data + overlay = snode.overlay snode_id = snode.id id_from = snode.id_from tool_settings = context.tool_settings @@ -205,6 +206,13 @@ class NODE_HT_header(Header): if tool_settings.snap_node_element != 'GRID': row.prop(tool_settings, "snap_target", text="") + # Overlay toggle & popover + row = layout.row(align=True) + row.prop(overlay, "show_overlays", icon='OVERLAY', text="") + sub = row.row(align=True) + sub.active = overlay.show_overlays + sub.popover(panel="NODE_PT_overlay", text="") + class NODE_MT_editor_menus(Menu): bl_idname = "NODE_MT_editor_menus" @@ -359,6 +367,17 @@ class NODE_MT_node(Menu): layout.operator("node.read_viewlayers") +class NODE_MT_view_pie(Menu): + bl_label = "View" + + def draw(self, _context): + layout = self.layout + + pie = layout.menu_pie() + pie.operator("node.view_all") + pie.operator("node.view_selected", icon='ZOOM_SELECTED') + + class NODE_PT_active_tool(ToolActivePanelHelper, Panel): bl_space_type = 'NODE_EDITOR' bl_region_type = 'UI' @@ -680,6 +699,34 @@ class NODE_PT_quality(bpy.types.Panel): col.prop(snode, "use_auto_render") +class NODE_PT_overlay(Panel): + bl_space_type = 'NODE_EDITOR' + bl_region_type = 'HEADER' + bl_label = "Overlays" + bl_ui_units_x = 7 + + def draw(self, context): + layout = self.layout + layout.label(text="Node Editor Overlays") + + snode = context.space_data + overlay = snode.overlay + + layout.active = overlay.show_overlays + + col = layout.column() + col.prop(overlay, "show_wire_color", text="Wire Colors") + + col.separator() + + col.prop(overlay, "show_context_path", text="Context Path") + col.prop(snode, "show_annotation", text="Annotations") + + if snode.tree_type == 'GeometryNodeTree': + col.separator() + col.prop(overlay, "show_timing", text="Timings") + + class NODE_UL_interface_sockets(bpy.types.UIList): def draw_item(self, context, layout, _data, item, icon, _active_data, _active_propname, _index): socket = item @@ -755,9 +802,17 @@ class NodeTreeInterfacePanel: if tree.type == 'GEOMETRY': layout.prop(active_socket, "description") field_socket_prefixes = { - "NodeSocketInt", "NodeSocketColor", "NodeSocketVector", "NodeSocketBool", "NodeSocketFloat"} - is_field_type = any(active_socket.bl_socket_idname.startswith(prefix) for prefix in field_socket_prefixes) - if in_out == "OUT" and is_field_type: + "NodeSocketInt", + "NodeSocketColor", + "NodeSocketVector", + "NodeSocketBool", + "NodeSocketFloat", + } + is_field_type = any( + active_socket.bl_socket_idname.startswith(prefix) + for prefix in field_socket_prefixes + ) + if in_out == 'OUT' and is_field_type: layout.prop(active_socket, "attribute_domain") active_socket.draw(context, layout) @@ -838,6 +893,7 @@ classes = ( NODE_MT_node, NODE_MT_node_color_context_menu, NODE_MT_context_menu, + NODE_MT_view_pie, NODE_PT_material_slots, NODE_PT_node_color_presets, NODE_PT_active_node_generic, @@ -848,6 +904,7 @@ classes = ( NODE_PT_backdrop, NODE_PT_quality, NODE_PT_annotation, + NODE_PT_overlay, NODE_UL_interface_sockets, NODE_PT_node_tree_interface_inputs, NODE_PT_node_tree_interface_outputs, |