[Bf-blender-cvs] [68bd8431cf7] builtin-simulation-nodes: some cleanup
Jacques Lucke
noreply at git.blender.org
Mon Mar 23 13:28:24 CET 2020
Commit: 68bd8431cf795496d46f74e8a69e54f00e91da23
Author: Jacques Lucke
Date: Mon Mar 23 11:49:55 2020 +0100
Branches: builtin-simulation-nodes
https://developer.blender.org/rB68bd8431cf795496d46f74e8a69e54f00e91da23
some cleanup
===================================================================
M release/scripts/modules/builtin_node_groups.py
M release/scripts/startup/bl_operators/node.py
===================================================================
diff --git a/release/scripts/modules/builtin_node_groups.py b/release/scripts/modules/builtin_node_groups.py
index 12d892529b2..72494c04a3d 100644
--- a/release/scripts/modules/builtin_node_groups.py
+++ b/release/scripts/modules/builtin_node_groups.py
@@ -258,3 +258,33 @@ def get_json_data_for_all_groups_to_load(main_group_name):
load(main_group_name)
return json_data_by_group_name
+
+def export_builtin_node_group(group):
+ file_path = group_name_to_file_path(group.name)
+ save_group_as_json(group, file_path)
+
+def get_builtin_group_items_cb(node_tree_idname):
+ # TODO: save strings
+ def items_generator(self, context):
+ if not os.path.exists(builtin_node_group_directory):
+ return [('NONE', "None", "")]
+ items = []
+ for file_name in os.listdir(builtin_node_group_directory):
+ if not file_name.endswith(".json"):
+ continue
+ group_name = file_name_to_group_name(file_name)
+ items.append((file_name, group_name, ""))
+ if len(items) == 0:
+ items.append(('NONE', "None", ""))
+ return items
+ return items_generator
+
+def import_builtin_node_group_with_dependencies(group_name):
+ json_data_by_group_name = get_json_data_for_all_groups_to_load(group_name)
+ loaded_group_by_name = dict()
+
+ for group_name, json_data in json_data_by_group_name.items():
+ group = get_or_create_node_group(json_data, loaded_group_by_name, json_data_by_group_name)
+ loaded_group_by_name[group_name] = group
+
+ return loaded_group_by_name[group_name]
diff --git a/release/scripts/startup/bl_operators/node.py b/release/scripts/startup/bl_operators/node.py
index 2918b5fdedf..450e63007d7 100644
--- a/release/scripts/startup/bl_operators/node.py
+++ b/release/scripts/startup/bl_operators/node.py
@@ -34,12 +34,10 @@ from bpy.props import (
StringProperty,
)
from builtin_node_groups import (
- builtin_node_group_directory,
- group_name_to_file_path,
- get_json_data_for_all_groups_to_load,
- get_or_create_node_group,
- save_group_as_json,
file_name_to_group_name,
+ export_builtin_node_group,
+ get_builtin_group_items_cb,
+ import_builtin_node_group_with_dependencies,
)
class NodeSetting(PropertyGroup):
@@ -317,28 +315,7 @@ class NODE_OT_export_group_template(Operator):
def execute(self, context):
group = context.space_data.edit_tree
- file_path = group_name_to_file_path(group.name)
- save_group_as_json(group, file_path)
- return {'FINISHED'}
-
-
-
-
-class NODE_OT_import_group_template(Operator):
- bl_idname = "node.import_group_template"
- bl_label = "Import Node Group Template"
- bl_options = {'INTERNAL'}
-
- group_name: StringProperty()
-
- def execute(self, context):
- json_data_by_group_name = get_json_data_for_all_groups_to_load(self.group_name)
- loaded_group_by_name = dict()
-
- for group_name, json_data in json_data_by_group_name.items():
- group = get_or_create_node_group(json_data, loaded_group_by_name, json_data_by_group_name)
- loaded_group_by_name[group_name] = group
-
+ export_builtin_node_group(group)
return {'FINISHED'}
class NODE_OT_import_group_template_search(bpy.types.Operator):
@@ -346,21 +323,7 @@ class NODE_OT_import_group_template_search(bpy.types.Operator):
bl_label = "Import Node Group Template Search"
bl_property = "item"
- def get_group_name_items(self, context):
- if not os.path.exists(builtin_node_group_directory):
- return [('NONE', "None", "")]
- items = []
- for file_name in os.listdir(builtin_node_group_directory):
- if not file_name.endswith(".json"):
- continue
- group_name = file_name_to_group_name(file_name)
- items.append((file_name, group_name, ""))
- if len(items) == 0:
- items.append(('NONE', "None", ""))
- return items
-
-
- item: EnumProperty(items=get_group_name_items)
+ item: EnumProperty(items=get_builtin_group_items_cb("SimulationNodeTree"))
def invoke(self, context, event):
context.window_manager.invoke_search_popup(self)
@@ -371,7 +334,7 @@ class NODE_OT_import_group_template_search(bpy.types.Operator):
return {'CANCELLED'}
else:
group_name = file_name_to_group_name(self.item)
- bpy.ops.node.import_group_template(group_name=group_name)
+ import_builtin_node_group_with_dependencies(group_name)
return {'FINISHED'}
classes = (
@@ -383,6 +346,5 @@ classes = (
NODE_OT_collapse_hide_unused_toggle,
NODE_OT_tree_path_parent,
NODE_OT_export_group_template,
- NODE_OT_import_group_template,
NODE_OT_import_group_template_search,
)
More information about the Bf-blender-cvs
mailing list