def _widgets(self): splitter = QSplitter() # -- Left left_splitter = QSplitter(Qt.Vertical) splitter.addWidget(left_splitter) # Top left filetree = FileTree(self._root_path, self._on_filetree_selection_changed) left_splitter.addWidget(filetree) # Bottom left tagging = Tagging() left_splitter.addWidget(tagging) # -- Right image = ImageDisplay() # Wrap it in a resizable scroll area area = QScrollArea() area.setWidget(image) area.setWidgetResizable(True) area.setAlignment(Qt.AlignCenter) splitter.addWidget(area) # A slight hack to split width equally splitter.setSizes([100000, 100000]) return splitter, filetree, tagging, image
def depth_first_traversal(parent_element, elements): """ Depth first traversal helper to generate the parent-child relationships by elements on the document. """ file_tree = FileTree(parent_element.get("paragraph").get("elements")[0] \ .get("textRun").get("content").strip()) # Base elements: elements that are not indented. if "bullet" not in parent_element.get("paragraph"): parent_nesting_level = -1 elif "nestingLevel" not in parent_element.get("paragraph")["bullet"]: parent_nesting_level = 0 else: parent_nesting_level = parent_element.get( "paragraph")["bullet"]["nestingLevel"] for index, element in enumerate(elements): try: cur_nesting_level = element.get( "paragraph")["bullet"]["nestingLevel"] except: cur_nesting_level = 0 # Append direct descendents to the children list of the current node # while recursing on the direct descendent. if cur_nesting_level == parent_nesting_level + 1: file_tree.children.append( depth_first_traversal(element, elements[index + 1::])) # All child elements have been found, exit loop. elif cur_nesting_level <= parent_nesting_level: break return file_tree
def _create_lhs(self, parent): """ Creates the left hand side or top depending on the split. """ self._tree = FileTree(parent, root=os.path.abspath(os.curdir)) self._tree.on_trait_change(self._on_tree_anytrait_changed) return self._tree.control
def _create_lhs(self, parent): """ Creates the left hand side or top depending on the split. """ self._tree = FileTree(parent, root=os.path.abspath(os.curdir)) self._tree.observe( self._on_tree_anytrait_changed, match(lambda name, ctrait: True) # listen to all traits ) return self._tree.control
def parse_document(elements): """ Parses a document with content heirarchy defined by bullet indentation into a tree data structure. """ file_tree = FileTree("Base") for index, element in enumerate(elements[1::]): # Base level only contains elements that are not indented. if "bullet" not in element.get("paragraph"): file_tree.children.append( depth_first_traversal(element, elements[1 + index + 1::])) return file_tree
def _create_content(self, parent): """ Create some context for an expandable panel. """ tree = FileTree(parent, root=os.path.abspath(os.curdir)) return tree.control
def __tree_default(self): return FileTree(root_path=self.root_path, filters=self.filters)
def flatten_file_system2(path): file_tree = FileTree(path) return file_tree.dfs_list()
def flatten_file_system1(path): file_tree = FileTree(path) tree_levels = file_tree.tree_levels() return flatten(tree_levels)
def showFileTree(self): if len(self.Editors): curr_editor = self._get_current_editor() directory = os.path.dirname(self.Filenames[curr_editor]) FileTree(curr_editor, directory)