[Bf-blender-cvs] [d40126d636b] geometry-nodes: Geometry Nodes: Use ID template node group selector in the modifier
Hans Goudey
noreply at git.blender.org
Thu Nov 26 18:49:16 CET 2020
Commit: d40126d636b261850a2c2790caf46a3efb7d3d38
Author: Hans Goudey
Date: Thu Nov 26 12:49:09 2020 -0500
Branches: geometry-nodes
https://developer.blender.org/rBd40126d636b261850a2c2790caf46a3efb7d3d38
Geometry Nodes: Use ID template node group selector in the modifier
This puts the same controls as in the node editor header
in the modifier panel.
===================================================================
M release/scripts/startup/bl_operators/geometry_nodes.py
M source/blender/modifiers/intern/MOD_nodes.cc
===================================================================
diff --git a/release/scripts/startup/bl_operators/geometry_nodes.py b/release/scripts/startup/bl_operators/geometry_nodes.py
index 0d4eb89494f..23926f28ab0 100644
--- a/release/scripts/startup/bl_operators/geometry_nodes.py
+++ b/release/scripts/startup/bl_operators/geometry_nodes.py
@@ -33,10 +33,7 @@ def geometry_node_group_empty_new(context):
return group
-def node_editor_geometry_modifier_poll(context) -> bool:
- if not (context.area.type == 'NODE_EDITOR' and context.space_data.tree_type == 'GeometryNodeTree'):
- return False
-
+def geometry_modifier_poll(context) -> bool:
ob = context.object
# Test object support for geometry node modifier (No volume or hair object support yet)
@@ -54,7 +51,7 @@ class NewGeometryNodeModifier(bpy.types.Operator):
@classmethod
def poll(cls, context):
- return node_editor_geometry_modifier_poll(context)
+ return geometry_modifier_poll(context)
def execute(self, context):
modifier = context.object.modifiers.new("Empty", "NODES")
@@ -65,7 +62,6 @@ class NewGeometryNodeModifier(bpy.types.Operator):
group = geometry_node_group_empty_new(context)
modifier.node_group = group
- context.space_data.node_tree = group
return {'FINISHED'}
@@ -78,7 +74,7 @@ class NewGeometryNodeTreeAssign(bpy.types.Operator):
@classmethod
def poll(cls, context):
- return node_editor_geometry_modifier_poll(context)
+ return geometry_modifier_poll(context)
def execute(self, context):
modifier = context.object.modifiers.active
@@ -88,7 +84,6 @@ class NewGeometryNodeTreeAssign(bpy.types.Operator):
group = geometry_node_group_empty_new(context)
modifier.node_group = group
- context.space_data.node_tree = group
return {'FINISHED'}
diff --git a/source/blender/modifiers/intern/MOD_nodes.cc b/source/blender/modifiers/intern/MOD_nodes.cc
index c1660cb80f4..86efd086f6f 100644
--- a/source/blender/modifiers/intern/MOD_nodes.cc
+++ b/source/blender/modifiers/intern/MOD_nodes.cc
@@ -940,7 +940,7 @@ static void draw_property_for_socket(uiLayout *layout,
}
}
-static void panel_draw(const bContext *UNUSED(C), Panel *panel)
+static void panel_draw(const bContext *C, Panel *panel)
{
uiLayout *layout = panel->layout;
@@ -948,9 +948,19 @@ static void panel_draw(const bContext *UNUSED(C), Panel *panel)
NodesModifierData *nmd = static_cast<NodesModifierData *>(ptr->data);
uiLayoutSetPropSep(layout, true);
+ /* This should be removed, but animation currently doesn't work with the IDProperties. */
uiLayoutSetPropDecorate(layout, false);
- uiItemR(layout, ptr, "node_group", 0, nullptr, ICON_NODETREE);
+ uiTemplateID(layout,
+ C,
+ ptr,
+ "node_group",
+ "node.new_geometry_node_group_assign",
+ nullptr,
+ nullptr,
+ 0,
+ ICON_NONE,
+ nullptr);
if (nmd->node_group != nullptr && nmd->settings.properties != nullptr) {
PointerRNA settings_ptr;
More information about the Bf-blender-cvs
mailing list