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:
Diffstat (limited to 'release/scripts/startup/bl_ui/space_node.py')
-rw-r--r--release/scripts/startup/bl_ui/space_node.py63
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,