def __references_changed__(self): old_refs = copy.deepcopy(self.references) self.references = [] for ref_list in self.highlighter.references: for ref in ref_list: self.references.append(ref[0]) self.references = make_unique(self.references) if not self.references == old_refs: self.refs_edited.emit() ### EOF ###
def consolidate_tree_items(tree_items): if len(tree_items) == 0: return tree_items headers = [] item_map = {} for item in tree_items: header = common.qt_to_unicode(item.text(0)) headers.append(header) if not header in item_map: item_map[header] = [] item_map[header].append(item) # We only want one of each header. headers = make_unique(headers) headers.sort() new_tree_items = [] for header in headers: tree_item = QtGui.QTreeWidgetItem() tree_item.setText(0, header) children = [] for item in item_map[header]: for index in range(item.childCount()): children.append(item.child(index)) children = consolidate_tree_items(children) for child in children: tree_item.addChild(child) new_tree_items.append(tree_item) return new_tree_items