Web   ·   Wiki   ·   Activities   ·   Blog   ·   Lists   ·   Chat   ·   Meeting   ·   Bugs   ·   Git   ·   Translate   ·   Archive   ·   People   ·   Donate
summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorSayamindu Dasgupta <sayamindu@gmail.com>2009-07-22 19:50:25 (GMT)
committer Sayamindu Dasgupta <sayamindu@gmail.com>2009-07-22 19:50:25 (GMT)
commitf35a4887ca9f914f6e21ae7aa83755cb3eb3540d (patch)
tree2d41ebdb1657d4b82d0a24b8df2947199d2bab21
parent0957516a88ef7216fc1e23f9ab2224562af3d91c (diff)
Sync to latest epubview
-rw-r--r--epubview/epub.py15
-rw-r--r--epubview/epubview.py4
-rw-r--r--epubview/navmap.py8
-rw-r--r--epubview/widgets.py4
4 files changed, 26 insertions, 5 deletions
diff --git a/epubview/epub.py b/epubview/epub.py
index 81de9d7..f49b0d7 100644
--- a/epubview/epub.py
+++ b/epubview/epub.py
@@ -29,6 +29,7 @@ class _Epub(object):
self._filepath = filepath
self._zobject = None
self._obffile = None
+ self._titlepage = None
self._obfpath = None
self._ncxpath = None
self._ncxfile = None
@@ -40,9 +41,10 @@ class _Epub(object):
self._get_obf()
self._get_ncx()
+ self._get_titlepage()
self._ncxfile = self._zobject.open(self._ncxpath)
- self._navmap = navmap.NavMap(self._ncxfile, self._basepath)
+ self._navmap = navmap.NavMap(self._ncxfile, self._basepath, self._titlepage)
self._obffile = self._zobject.open(self._obfpath)
self._info = epubinfo.EpubInfo(self._obffile)
@@ -94,7 +96,18 @@ class _Epub(object):
obffile.close()
+ def _get_titlepage(self):
+ obffile = self._zobject.open(self._obfpath)
+ tree = etree.parse(obffile)
+ root = tree.getroot()
+
+ for element in root.iterfind('.//{http://www.idpf.org/2007/opf}item'):
+ if element.get('id') == 'titlepage':
+ self._titlepage = self._basepath + element.get('href')
+
+ obffile.close()
+
def _verify(self):
'''
Method to crudely check to verify that what we
diff --git a/epubview/epubview.py b/epubview/epubview.py
index f59fb9c..5c2c7a2 100644
--- a/epubview/epubview.py
+++ b/epubview/epubview.py
@@ -406,6 +406,8 @@ class _View(gtk.HBox):
self._scroll_page()
def _load_next_file(self):
+ if self._loaded_page == self._pagecount:
+ return
cur_file = self._paginator.get_file_for_pageno(self._loaded_page)
pageno = self._loaded_page
while pageno < self._paginator.get_total_pagecount():
@@ -424,6 +426,8 @@ class _View(gtk.HBox):
break
def _load_prev_file(self):
+ if self._loaded_page == 1:
+ return
cur_file = self._paginator.get_file_for_pageno(self._loaded_page)
pageno = self._loaded_page
while pageno > 1:
diff --git a/epubview/navmap.py b/epubview/navmap.py
index 0ba0b8f..cdeb265 100644
--- a/epubview/navmap.py
+++ b/epubview/navmap.py
@@ -18,14 +18,18 @@ class NavPoint(object):
class NavMap(object):
- def __init__(self, file, basepath):
+ def __init__(self, opffile, basepath, titlepage):
self._basepath = basepath
- self._tree = etree.parse(file)
+ self._tree = etree.parse(opffile)
self._root = self._tree.getroot()
self._gtktreestore = gtk.TreeStore(str, str)
self._flattoc = []
self._populate_toc()
+
+ if titlepage and self._flattoc[0][1] != titlepage:
+ self._flattoc.insert(0, ('Title Page', titlepage))
+ self._gtktreestore.insert(None, 0, ['Title Page', titlepage])
def _populate_toc(self):
navmap = self._root.find('{http://www.daisy.org/z3986/2005/ncx/}navMap')
diff --git a/epubview/widgets.py b/epubview/widgets.py
index 19d2dc9..c52d590 100644
--- a/epubview/widgets.py
+++ b/epubview/widgets.py
@@ -1,3 +1,5 @@
+import gtk
+
try:
import webkit
except ImportError:
@@ -5,8 +7,6 @@ except ImportError:
sys.path.append(os.path.join(os.environ['SUGAR_BUNDLE_PATH'], 'epubview', 'modules'))
import webkit
-import gtk
-
class _WebView(webkit.WebView):
def __init__(self):