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 __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)
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])
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])