Make logic to get preferred view format re-useable

This commit is contained in:
Kovid Goyal 2021-02-04 13:21:12 +05:30
parent ac97fe16ac
commit 4b2c386c95
No known key found for this signature in database
GPG Key ID: 06BC317B515ACE7C

View File

@ -24,6 +24,16 @@ from calibre.utils.config import prefs, tweaks
from polyglot.builtins import as_bytes, unicode_type 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): class HistoryAction(QAction):
view_historical = pyqtSignal(object) view_historical = pyqtSignal(object)
@ -303,19 +313,13 @@ class ViewAction(InterfaceAction):
self.update_history([], remove={id_}) self.update_history([], remove={id_})
continue continue
formats = db.formats(id_, index_is_id=True) formats = db.new_api.formats(id_, verify_formats=True)
if not formats: if not formats:
error_dialog(self.gui, _('Cannot view'), error_dialog(self.gui, _('Cannot view'),
_('%s has no available formats.')%(title,), show=True) _('%s has no available formats.')%(title,), show=True)
continue continue
formats = formats.upper().split(',') fmt = preferred_format(formats)
fmt = formats[0]
for format in prefs['input_format_order']:
if format in formats:
fmt = format
break
views.append((id_, title)) views.append((id_, title))
self.view_format_by_id(id_, fmt) self.view_format_by_id(id_, fmt)