From 6cea84a15f0bd708d0cdd6f3bb4e1dbe754344fe Mon Sep 17 00:00:00 2001 From: "Marshall T. Vandegrift" Date: Wed, 23 Jul 2008 10:26:29 -0400 Subject: [PATCH] Fix NCX playOrder in TOC generated from HTML --- src/calibre/ebooks/metadata/toc.py | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/src/calibre/ebooks/metadata/toc.py b/src/calibre/ebooks/metadata/toc.py index 0069505f79..5cecda1c6d 100644 --- a/src/calibre/ebooks/metadata/toc.py +++ b/src/calibre/ebooks/metadata/toc.py @@ -20,7 +20,7 @@ class NCXSoup(BeautifulStoneSoup): class TOC(list): - def __init__(self, href=None, fragment=None, text=None, parent=None, play_order=1, + def __init__(self, href=None, fragment=None, text=None, parent=None, play_order=0, base_path=os.getcwd()): self.href = href self.fragment = fragment @@ -30,7 +30,9 @@ class TOC(list): self.play_order = play_order def add_item(self, href, fragment, text): - self.append(TOC(href=href, fragment=fragment, text=text, parent=self, base_path=self.base_path)) + play_order = (self[-1].play_order if len(self) else self.play_order) + 1 + self.append(TOC(href=href, fragment=fragment, text=text, parent=self, + base_path=self.base_path, play_order=play_order)) return self[-1] def top_level_items(self): @@ -151,4 +153,4 @@ class TOC(list): template = MarkupTemplate(ncx_template) raw = template.generate(uid=uid, toc=self, __appname__=__appname__) raw = raw.render(doctype=doctype) - stream.write(raw) \ No newline at end of file + stream.write(raw)