From 54a02123b544aa87cb7fc297105de021ab6afb26 Mon Sep 17 00:00:00 2001 From: Kovid Goyal Date: Sat, 8 Mar 2025 13:02:36 +0530 Subject: [PATCH] Add an icon for KFX and KFX-ZIP files --- resources/images/mimetypes/kfx.png | Bin 0 -> 10912 bytes src/calibre/utils/file_type_icons.py | 2 ++ 2 files changed, 2 insertions(+) create mode 100644 resources/images/mimetypes/kfx.png diff --git a/resources/images/mimetypes/kfx.png b/resources/images/mimetypes/kfx.png new file mode 100644 index 0000000000000000000000000000000000000000..8e1d5c4476e93a1cf69cdeeff6b8b848ede812b8 GIT binary patch literal 10912 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 IjygyEFZ-HoYybcN literal 0 HcmV?d00001 diff --git a/src/calibre/utils/file_type_icons.py b/src/calibre/utils/file_type_icons.py index b4b52d811d..af8e963178 100644 --- a/src/calibre/utils/file_type_icons.py +++ b/src/calibre/utils/file_type_icons.py @@ -37,6 +37,8 @@ EXT_MAP = { 'azw1' : 'tpz', 'azw2' : 'azw2', 'azw3' : 'azw3', + 'kfx' : 'kfx', + 'kfx-zip' : 'kfx', 'azw4' : 'pdf', 'tpz' : 'tpz', 'tan' : 'zero',