diff --git a/src/calibre/gui2/actions/view.py b/src/calibre/gui2/actions/view.py index a8dfd08caa..df402c1481 100644 --- a/src/calibre/gui2/actions/view.py +++ b/src/calibre/gui2/actions/view.py @@ -24,6 +24,16 @@ from calibre.utils.config import prefs, tweaks from polyglot.builtins import as_bytes, unicode_type +def preferred_format(formats): + formats = tuple(x.upper() for x in formats if x) + fmt = formats[0] + for format in prefs['input_format_order']: + if format in formats: + fmt = format + break + return fmt + + class HistoryAction(QAction): view_historical = pyqtSignal(object) @@ -303,19 +313,13 @@ class ViewAction(InterfaceAction): self.update_history([], remove={id_}) continue - formats = db.formats(id_, index_is_id=True) + formats = db.new_api.formats(id_, verify_formats=True) if not formats: error_dialog(self.gui, _('Cannot view'), _('%s has no available formats.')%(title,), show=True) continue - formats = formats.upper().split(',') - - fmt = formats[0] - for format in prefs['input_format_order']: - if format in formats: - fmt = format - break + fmt = preferred_format(formats) views.append((id_, title)) self.view_format_by_id(id_, fmt)