From 805d8c622372bbf7adaf639bdb447203f93bb59d Mon Sep 17 00:00:00 2001 From: Kovid Goyal Date: Fri, 18 Jan 2013 20:00:23 +0530 Subject: [PATCH] E-book viewer: Allow entries in the Table of Contents that do not point anywhere, instead of just ignoring them. --- src/calibre/ebooks/metadata/toc.py | 11 +++++------ src/calibre/gui2/viewer/toc.py | 14 ++++++++------ 2 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/calibre/ebooks/metadata/toc.py b/src/calibre/ebooks/metadata/toc.py index 0f22603a8b..25eb154b74 100644 --- a/src/calibre/ebooks/metadata/toc.py +++ b/src/calibre/ebooks/metadata/toc.py @@ -194,12 +194,11 @@ class TOC(list): content = content_path(np) if content and text: content = content[0] - src = get_attr(content, attr='src') - if src: - purl = urlparse(content.get('src')) - href, fragment = unquote(purl[2]), unquote(purl[5]) - nd = dest.add_item(href, fragment, text) - nd.play_order = play_order + # if get_attr(content, attr='src'): + purl = urlparse(content.get('src')) + href, fragment = unquote(purl[2]), unquote(purl[5]) + nd = dest.add_item(href, fragment, text) + nd.play_order = play_order for c in np_path(np): process_navpoint(c, nd) diff --git a/src/calibre/gui2/viewer/toc.py b/src/calibre/gui2/viewer/toc.py index b0e97bea65..094191308e 100644 --- a/src/calibre/gui2/viewer/toc.py +++ b/src/calibre/gui2/viewer/toc.py @@ -56,7 +56,7 @@ class TOCItem(QStandardItem): self.title = text self.parent = parent QStandardItem.__init__(self, text if text else '') - self.abspath = toc.abspath + self.abspath = toc.abspath if toc.href else None self.fragment = toc.fragment all_items.append(self) self.bold_font = QFont(self.font()) @@ -70,11 +70,13 @@ class TOCItem(QStandardItem): if si == self.abspath: spos = i break - try: - am = getattr(spine[i], 'anchor_map', {}) - except UnboundLocalError: - # Spine was empty? - am = {} + 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