Ejemplo n.º 1
0
    def __init__(self, code_presenter=None, ast_root=None, tab_name=None):
        super(AstTreePane, self).__init__()
        self.code_presenter = code_presenter

        self.search_next_index = 0
        self.last_search = ''

        layout = QtGui.QVBoxLayout()

        self.search_box = SearchLineEdit(on_changed=self.search_box_changed,
                                         on_next=self.search_next)
        layout.addWidget(self.search_box)

        self.ast_tree_widget = AstTreeWidget(
            code_presenter=self.code_presenter,
            ast_root=ast_root,
            tab_name=tab_name)
        layout.addWidget(self.ast_tree_widget)

        self.setLayout(layout)
Ejemplo n.º 2
0
    def __init__(self, code_presenter=None, ast_root=None, tab_name=None):
        super(AstTreePane, self).__init__()
        self.code_presenter = code_presenter

        self.search_next_index = 0
        self.last_search = ''

        layout = QtGui.QVBoxLayout()

        self.search_box = SearchLineEdit(on_changed=self.search_box_changed, on_next=self.search_next)
        layout.addWidget(self.search_box)

        self.ast_tree_widget = AstTreeWidget(code_presenter=self.code_presenter, ast_root=ast_root, tab_name=tab_name)
        layout.addWidget(self.ast_tree_widget)

        self.setLayout(layout)
Ejemplo n.º 3
0
class AstTreePane(QtGui.QGroupBox):
    def __init__(self, code_presenter=None, ast_root=None, tab_name=None):
        super(AstTreePane, self).__init__()
        self.code_presenter = code_presenter

        self.search_next_index = 0
        self.last_search = ''

        layout = QtGui.QVBoxLayout()

        self.search_box = SearchLineEdit(on_changed=self.search_box_changed,
                                         on_next=self.search_next)
        layout.addWidget(self.search_box)

        self.ast_tree_widget = AstTreeWidget(
            code_presenter=self.code_presenter,
            ast_root=ast_root,
            tab_name=tab_name)
        layout.addWidget(self.ast_tree_widget)

        self.setLayout(layout)

    def expand_all(self):
        print("got to %s" % self)
        self.ast_tree_widget.expand_descendants()

    def collapse_all(self):
        print("got to %s" % self)
        self.ast_tree_widget.collapse_descendants()

    def make_tree_from(self, syntax_tree, file_name="", display_depth=1):
        self.ast_tree_widget.make_tree_from(syntax_tree,
                                            file_name=file_name,
                                            display_depth=display_depth)

    def search_next(self):
        if self.search_box.text() != self.last_search:
            self.search_next_index = 0
        else:
            self.search_next_index += 1

        self.last_search = self.search_box.text()

        current_tree = self.ast_tree_widget
        items = current_tree.findItems(self.search_box.text(),
                                       QtCore.Qt.MatchContains
                                       | QtCore.Qt.MatchRecursive,
                                       column=AstTreeWidget.COL_NODE)
        # print("Found %d items" % len(items))
        if len(items) > 0:
            if self.search_next_index >= len(items):
                self.search_next_index = 0

            # print(items[0])
            current_tree.setCurrentItem(items[self.search_next_index])
            current_tree.expandItem(items[self.search_next_index])

    def search_box_changed(self):
        if not self.search_box.text():
            return

        current_tree = self.ast_tree_widget
        # print("current tree %s" % current_tree)
        #
        # for widget_index in range(self.ast_tree_tabs.count()):
        #     widget = self.ast_tree_tabs.widget(widget_index)
        #     print("widget %s ast_tree %s" % (widget, widget.ast_root))

        items = current_tree.findItems(self.search_box.text(),
                                       QtCore.Qt.MatchContains
                                       | QtCore.Qt.MatchRecursive,
                                       column=AstTreeWidget.COL_NODE)
        # print("Found %d items" % len(items))
        if len(items) > 0:
            # print(items[0])
            current_tree.setCurrentItem(items[0])
            current_tree.expandItem(items[0])
Ejemplo n.º 4
0
class AstTreePane(QtGui.QGroupBox):
    def __init__(self, code_presenter=None, ast_root=None, tab_name=None):
        super(AstTreePane, self).__init__()
        self.code_presenter = code_presenter

        self.search_next_index = 0
        self.last_search = ''

        layout = QtGui.QVBoxLayout()

        self.search_box = SearchLineEdit(on_changed=self.search_box_changed, on_next=self.search_next)
        layout.addWidget(self.search_box)

        self.ast_tree_widget = AstTreeWidget(code_presenter=self.code_presenter, ast_root=ast_root, tab_name=tab_name)
        layout.addWidget(self.ast_tree_widget)

        self.setLayout(layout)

    def expand_all(self):
        print("got to %s" % self)
        self.ast_tree_widget.expand_descendants()

    def collapse_all(self):
        print("got to %s" % self)
        self.ast_tree_widget.collapse_descendants()

    def make_tree_from(self, syntax_tree, file_name="", display_depth=1):
        self.ast_tree_widget.make_tree_from(syntax_tree, file_name=file_name, display_depth=display_depth)

    def search_next(self):
        if self.search_box.text() != self.last_search:
            self.search_next_index = 0
        else:
            self.search_next_index += 1

        self.last_search = self.search_box.text()

        current_tree = self.ast_tree_widget
        items = current_tree.findItems(
            self.search_box.text(),
            QtCore.Qt.MatchContains | QtCore.Qt.MatchRecursive,
            column=AstTreeWidget.COL_NODE
        )
        # print("Found %d items" % len(items))
        if len(items) > 0:
            if self.search_next_index >= len(items):
                self.search_next_index = 0

            # print(items[0])
            current_tree.setCurrentItem(items[self.search_next_index])
            current_tree.expandItem(items[self.search_next_index])


    def search_box_changed(self):
        if not self.search_box.text():
            return

        current_tree = self.ast_tree_widget
        # print("current tree %s" % current_tree)
        #
        # for widget_index in range(self.ast_tree_tabs.count()):
        #     widget = self.ast_tree_tabs.widget(widget_index)
        #     print("widget %s ast_tree %s" % (widget, widget.ast_root))

        items = current_tree.findItems(
            self.search_box.text(),
            QtCore.Qt.MatchContains | QtCore.Qt.MatchRecursive,
            column=AstTreeWidget.COL_NODE
        )
        # print("Found %d items" % len(items))
        if len(items) > 0:
            # print(items[0])
            current_tree.setCurrentItem(items[0])
            current_tree.expandItem(items[0])