From 4b2c386c951f427e6a69fbf8745f60e883e326cf Mon Sep 17 00:00:00 2001 From: Kovid Goyal Date: Thu, 4 Feb 2021 13:21:12 +0530 Subject: [PATCH] Make logic to get preferred view format re-useable --- src/calibre/gui2/actions/view.py | 20 ++++++++++++-------- 1 file changed, 12 insertions(+), 8 deletions(-) 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)