Example #1
0
    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()
Example #2
0
    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)