def import_nodes(self, j_nodes, dir): print('importing nodes') o_nodes = json.loads(j_nodes) nodes_list = o_nodes['nodes'] for n in nodes_list: print('parsing node', n['title']) new_node = Node() new_node.title = n['title'] new_node.description = n['description'] new_node.type = n['type'] new_node.module_name = n['module name'] new_node.class_name = n['class name'] new_node.design_style = n['design style'] new_node.color = n['color'] new_node.has_main_widget = n['has main widget'] if new_node.has_main_widget: new_node.widget_position = n['widget position'] new_node.custom_input_widgets = n['custom input widgets'] new_node.inputs = n['inputs'] new_node.outputs = n['outputs'] # load custom files module_name_separator = '___' # main code node_path = dir + '/' + new_node.module_name print(new_node.module_name) f = open(node_path + '/' + new_node.module_name + module_name_separator + 'METACODE.py') new_node.meta_code = f.read() f.close() node_widgets_path = node_path + '/widgets' # main widget code if new_node.has_main_widget: f = open(node_widgets_path + '/' + new_node.module_name + module_name_separator + 'main_widget' + module_name_separator + 'METACODE.py') new_node.main_widget_content = f.read() f.close() # custom input widgets for ciw in new_node.custom_input_widgets: f = open(node_widgets_path + '/' + new_node.module_name + module_name_separator + ciw + module_name_separator + 'METACODE.py') new_node.custom_input_widget_contents.append(f.read()) f.close() new_node_content_widget = NodeContentWidget() new_node.title_changed.connect( self.update_nodes_list_names) # this will update the list view new_node_content_widget.load_node(new_node) new_node.content_widget = new_node_content_widget self.nodes.append(new_node) print('finished parsing') print(self.nodes) self.rebuild_nodes_list()
def add_new_node_pushButton_clicked(self): node_content_widget = NodeContentWidget() new_node = Node(node_content_widget) node_content_widget.load_node(new_node) new_node.title_changed.connect(self.update_node_name) # this will update the list view self.nodes.append(new_node) self.nodes_list_widget.add_node(new_node) self.set_current_node(-1)