def __init__(self, toc, depth, all_items, normal_font, emphasis_font, parent=None): text = toc.get('title') or '' self.href = (toc.get('dest') or '') if toc.get('frag'): self.href += '#' + toc['frag'] if text: text = re.sub(r'\s', ' ', text) self.title = text self.parent = parent self.node_id = toc['id'] QStandardItem.__init__(self, text) all_items.append(self) self.normal_font, self.emphasis_font = normal_font, emphasis_font for t in toc['children']: self.appendRow( TOCItem(t, depth + 1, all_items, normal_font, emphasis_font, parent=self)) self.setFlags(Qt.ItemFlag.ItemIsEnabled) self.is_current_search_result = False self.depth = depth self.set_being_viewed(False)
def __init__(self, spine, toc, depth, all_items, parent=None): text = toc.text if text: text = re.sub(r'\s', ' ', text) self.title = text self.parent = parent QStandardItem.__init__(self, text if text else '') self.abspath = toc.abspath if toc.href else None self.fragment = toc.fragment all_items.append(self) self.emphasis_font = QFont(self.font()) self.emphasis_font.setBold(True), self.emphasis_font.setItalic(True) self.normal_font = self.font() for t in toc: self.appendRow(TOCItem(spine, t, depth+1, all_items, parent=self)) self.setFlags(Qt.ItemIsEnabled) self.is_current_search_result = False spos = 0 for i, si in enumerate(spine): if si == self.abspath: spos = i break am = {} if self.abspath is not None: try: am = getattr(spine[i], 'anchor_map', {}) except UnboundLocalError: # Spine was empty? pass frag = self.fragment if (self.fragment and self.fragment in am) else None self.starts_at = spos self.start_anchor = frag self.start_src_offset = am.get(frag, 0) self.depth = depth self.is_being_viewed = False