[Bf-blender-cvs] [6a82b2f4c64] temp-node-tree-pages-prototype: start with page 1 and show current page
Jacques Lucke
noreply at git.blender.org
Thu Mar 18 16:40:56 CET 2021
Commit: 6a82b2f4c64e0c841307a70a2e063ad03c6505bb
Author: Jacques Lucke
Date: Thu Mar 18 15:37:12 2021 +0100
Branches: temp-node-tree-pages-prototype
https://developer.blender.org/rB6a82b2f4c64e0c841307a70a2e063ad03c6505bb
start with page 1 and show current page
===================================================================
M release/scripts/startup/bl_operators/node.py
M release/scripts/startup/bl_ui/space_node.py
===================================================================
diff --git a/release/scripts/startup/bl_operators/node.py b/release/scripts/startup/bl_operators/node.py
index 86bf48ec135..63d8a475418 100644
--- a/release/scripts/startup/bl_operators/node.py
+++ b/release/scripts/startup/bl_operators/node.py
@@ -344,19 +344,32 @@ class NODE_OT_follow_portal(Operator):
bpy.ops.node.view_selected()
return {'FINISHED'}
-PAGE_SIZE = 10000
+PAGE_SIZE = 20000
def get_page_center(page):
- return Vector((page * PAGE_SIZE, 0))
+ return Vector(((page - 1) * PAGE_SIZE, 0))
-def node_is_on_page(node, page):
+def position_is_on_page(pos, page):
page_center = get_page_center(page)
- return (abs(page_center.x - node.location.x) < PAGE_SIZE / 2
- and abs(page_center.y - node.location.y) < PAGE_SIZE / 2)
+ return (abs(page_center.x - pos[0]) < PAGE_SIZE / 2
+ and abs(page_center.y - pos[1]) < PAGE_SIZE / 2)
+
+def node_is_on_page(node, page):
+ return position_is_on_page(node.location, page)
def get_nodes_on_page(ntree, page):
return [n for n in ntree.nodes if node_is_on_page(n, page)]
+def get_current_page(context):
+ for region in context.area.regions:
+ if region.type != 'WINDOW':
+ continue
+ pos = region.view2d.region_to_view(0, 0)
+ for page in range(10):
+ if position_is_on_page(pos, page):
+ return page
+ return None
+
class NODE_OT_goto_page(Operator):
'''Goto page'''
bl_idname = "node.goto_page"
diff --git a/release/scripts/startup/bl_ui/space_node.py b/release/scripts/startup/bl_ui/space_node.py
index b6a85dd8fd8..d8f85eef885 100644
--- a/release/scripts/startup/bl_ui/space_node.py
+++ b/release/scripts/startup/bl_ui/space_node.py
@@ -168,9 +168,14 @@ class NODE_HT_header(Header):
else:
row.template_ID(snode, "node_tree", new="node.new_geometry_nodes_modifier")
+ import bl_operators.node as node_module
+ current_page = node_module.get_current_page(context)
+
row = layout.row(align=True)
- for page in range(5):
- props = row.operator("node.goto_page", text=str(page))
+ for page in range(1, 6):
+ subrow = row.row(align=True)
+ subrow.enabled = page != current_page
+ props = subrow.operator("node.goto_page", text=str(page))
props.page = page
row = layout.row(align=True)
More information about the Bf-blender-cvs
mailing list