mirror of
https://github.com/kovidgoyal/calibre.git
synced 2025-07-09 03:04:10 -04:00
E-book viewer: Fix the show metadata button not reading EPUB 3 metadata
This commit is contained in:
parent
428b7a1135
commit
464979673a
@ -620,6 +620,9 @@ class OPF(object): # {{{
|
||||
self._user_metadata_ = temp.get_all_user_metadata(True)
|
||||
|
||||
def to_book_metadata(self):
|
||||
if self.package_version >= 3.0:
|
||||
from calibre.ebooks.metadata.opf3 import read_metadata
|
||||
return read_metadata(self.root)
|
||||
ans = MetaInformation(self)
|
||||
for n, v in self._user_metadata_.items():
|
||||
ans.set_user_metadata(n, v)
|
||||
|
@ -139,9 +139,10 @@ class EbookIterator(BookmarksMixin):
|
||||
self.book_format, self.pathtoopf, input_fmt = run_extract_book(
|
||||
self.pathtoebook, self.base, only_input_plugin=only_input_plugin, view_kepub=view_kepub, processed=processed)
|
||||
self.opf = OPF(self.pathtoopf, os.path.dirname(self.pathtoopf))
|
||||
self.language = self.opf.language
|
||||
if self.language:
|
||||
self.language = self.language.lower()
|
||||
self.mi = self.opf.to_book_metadata()
|
||||
self.language = None
|
||||
if self.mi.languages:
|
||||
self.language = self.mi.languages[0].lower()
|
||||
ordered = [i for i in self.opf.spine if i.is_linear] + \
|
||||
[i for i in self.opf.spine if not i.is_linear]
|
||||
self.spine = []
|
||||
|
@ -953,10 +953,9 @@ class EbookViewer(MainWindow):
|
||||
det_msg=tb, show=True)
|
||||
self.close_progress_indicator()
|
||||
else:
|
||||
self.metadata.show_opf(self.iterator.opf,
|
||||
self.iterator.book_format)
|
||||
self.metadata.show_metadata(self.iterator.mi, self.iterator.book_format)
|
||||
self.view.current_language = self.iterator.language
|
||||
title = self.iterator.opf.title
|
||||
title = self.iterator.mi.title
|
||||
if not title:
|
||||
title = os.path.splitext(os.path.basename(pathtoebook))[0]
|
||||
if self.iterator.toc:
|
||||
|
@ -80,14 +80,13 @@ class Metadata(QWebView): # {{{
|
||||
def update_layout(self):
|
||||
self.setGeometry(0, 0, self.parent().width(), self.parent().height())
|
||||
|
||||
def show_opf(self, opf, ext=''):
|
||||
def show_metadata(self, mi, ext=''):
|
||||
from calibre.gui2.book_details import render_html, css
|
||||
from calibre.ebooks.metadata.book.render import mi_to_html
|
||||
|
||||
def render_data(mi, use_roman_numbers=True, all_fields=False):
|
||||
return mi_to_html(mi, use_roman_numbers=use_roman_numbers, rating_font=rating_font(), rtl=is_rtl())
|
||||
|
||||
mi = opf.to_book_metadata()
|
||||
html = render_html(mi, css(), True, self, render_data_func=render_data)
|
||||
self.setHtml(html)
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user