diff --git a/src/calibre/ebooks/metadata/book/render.py b/src/calibre/ebooks/metadata/book/render.py index b1ff212793..59e704b908 100644 --- a/src/calibre/ebooks/metadata/book/render.py +++ b/src/calibre/ebooks/metadata/book/render.py @@ -131,15 +131,16 @@ def mi_to_html(mi, field_list=None, default_author_link=None, use_roman_numbers= elif field == 'formats': if isdevice: continue - path = '' - if mi.path: - h, t = os.path.split(mi.path) - path = '/'.join((os.path.basename(h), t)) + path = mi.path or '' + bpath = '' + if path: + h, t = os.path.split(path) + bpath = '/'.join((os.path.basename(h), t)) data = ({ 'fmt':x, 'path':a(path or ''), 'fname':a(mi.format_files.get(x, '')), - 'ext':x.lower(), 'id':mi.id + 'ext':x.lower(), 'id':mi.id, 'bpath':bpath, } for x in mi.formats) - fmts = [u'{fmt}'.format(**x) for x in data] + fmts = [u'{fmt}'.format(**x) for x in data] ans.append((field, row % (name, u', '.join(fmts)))) elif field == 'identifiers': urls = urls_from_identifiers(mi.identifiers) diff --git a/src/calibre/gui2/book_details.py b/src/calibre/gui2/book_details.py index 34433b76d6..442c64f091 100644 --- a/src/calibre/gui2/book_details.py +++ b/src/calibre/gui2/book_details.py @@ -441,6 +441,11 @@ class BookInfo(QWebView): m.addAction(_('Add other application for %s files...') % fmt.upper(), partial(self.choose_open_with, book_id, fmt)) m.addAction(_('Edit Open With applications...'), partial(edit_programs, fmt, self)) menu.addMenu(m) + ac = self.copy_link_action + ac.current_url = r.linkElement().attribute('data-full-path') + if ac.current_url: + ac.setText(_('&Copy path to file')) + menu.addAction(ac) else: el = r.linkElement() author = el.toPlainText() if unicode(el.attribute('calibre-data')) == u'authors' else None