def execute(self, context): if len(context.space_data.path) > 1: self.report({"WARNING"}, "Import is not supported inside node groups") return {'CANCELLED'} if not self.id_tree: ng_name = self.new_nodetree_name ng_params = { 'name': ng_name or 'unnamed_tree', 'type': 'SverchCustomTreeType' } ng = bpy.data.node_groups.new(**ng_params) else: ng = bpy.data.node_groups[self.id_tree] if self.gist_id == 'clipboard': self.gist_id = context.window_manager.clipboard nodes_json = load_json_from_gist(self.gist_id.strip(), self) if not nodes_json: return {'CANCELLED'} # import tree and set new node tree to active JSONImporter(nodes_json).import_into_tree(ng) context.space_data.node_tree = ng return {'FINISHED'}
def execute(self, context): if not self.preset_name: msg = "Preset name is not specified" error(msg) self.report({'ERROR'}, msg) return {'CANCELLED'} if not self.gist_id: msg = "Gist ID is not specified" error(msg) self.report({'ERROR'}, msg) return {'CANCELLED'} gist_data = sv_IO_panel_tools.load_json_from_gist(self.gist_id, self) target_path = get_preset_path(self.preset_name) if os.path.exists(target_path): msg = "Preset named `{}' already exists. Refusing to rewrite existing preset.".format(self.preset_name) error(msg) self.report({'ERROR'}, msg) return {'CANCELLED'} with open(target_path, 'wb') as jsonfile: gist_data = json.dumps(gist_data, sort_keys=True, indent=2).encode('utf8') jsonfile.write(gist_data) msg = "Imported `{}' as `{}'".format(self.gist_id, self.preset_name) info(msg) self.report({'INFO'}, msg) return {'FINISHED'}
def execute(self, context): if not self.id_tree: ng_name = self.new_nodetree_name ng_params = { 'name': ng_name or 'unnamed_tree', 'type': 'SverchCustomTreeType'} ng = bpy.data.node_groups.new(**ng_params) else: ng = bpy.data.node_groups[self.id_tree] if self.gist_id == 'clipboard': self.gist_id = context.window_manager.clipboard nodes_json = load_json_from_gist(self.gist_id.strip(), self) if not nodes_json: return {'CANCELLED'} # import tree and set new node tree to active import_tree(ng, nodes_json=nodes_json) context.space_data.node_tree = ng return {'FINISHED'}