[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