From e8f62e0e49d2dcca15fa64764a56b636601c6701 Mon Sep 17 00:00:00 2001 From: Kovid Goyal Date: Mon, 23 Nov 2015 20:47:32 +0530 Subject: [PATCH] Add file type icons to icon map --- src/calibre/gui2/__init__.py | 52 +----------------------- src/calibre/srv/metadata.py | 4 ++ src/calibre/utils/file_type_icons.py | 60 ++++++++++++++++++++++++++++ 3 files changed, 66 insertions(+), 50 deletions(-) create mode 100644 src/calibre/utils/file_type_icons.py diff --git a/src/calibre/gui2/__init__.py b/src/calibre/gui2/__init__.py index b60f567777..3f36605f0b 100644 --- a/src/calibre/gui2/__init__.py +++ b/src/calibre/gui2/__init__.py @@ -22,6 +22,7 @@ from calibre.ebooks.metadata import MetaInformation from calibre.utils.date import UNDEFINED_DATE from calibre.utils.localization import get_lang from calibre.utils.filenames import expanduser +from calibre.utils.file_type_icons import EXT_MAP # Setup gprefs {{{ gprefs = JSONConfig('gui') @@ -492,56 +493,7 @@ class GetMetadata(QObject): class FileIconProvider(QFileIconProvider): - ICONS = { - 'default' : 'unknown', - 'dir' : 'dir', - 'zero' : 'zero', - - 'jpeg' : 'jpeg', - 'jpg' : 'jpeg', - 'gif' : 'gif', - 'png' : 'png', - 'bmp' : 'bmp', - 'cbz' : 'cbz', - 'cbr' : 'cbr', - 'svg' : 'svg', - 'html' : 'html', - 'htmlz' : 'html', - 'htm' : 'html', - 'xhtml' : 'html', - 'xhtm' : 'html', - 'lit' : 'lit', - 'lrf' : 'lrf', - 'lrx' : 'lrx', - 'pdf' : 'pdf', - 'pdr' : 'zero', - 'rar' : 'rar', - 'zip' : 'zip', - 'txt' : 'txt', - 'text' : 'txt', - 'prc' : 'mobi', - 'azw' : 'mobi', - 'mobi' : 'mobi', - 'pobi' : 'mobi', - 'mbp' : 'zero', - 'azw1' : 'tpz', - 'azw2' : 'azw2', - 'azw3' : 'azw3', - 'azw4' : 'pdf', - 'tpz' : 'tpz', - 'tan' : 'zero', - 'epub' : 'epub', - 'fb2' : 'fb2', - 'rtf' : 'rtf', - 'odt' : 'odt', - 'snb' : 'snb', - 'djv' : 'djvu', - 'djvu' : 'djvu', - 'xps' : 'xps', - 'oxps' : 'xps', - 'docx' : 'docx', - 'opml' : 'opml', - } + ICONS = EXT_MAP def __init__(self): QFileIconProvider.__init__(self) diff --git a/src/calibre/srv/metadata.py b/src/calibre/srv/metadata.py index 72250d3558..ae5b9d1bcc 100644 --- a/src/calibre/srv/metadata.py +++ b/src/calibre/srv/metadata.py @@ -16,6 +16,7 @@ from calibre.db.categories import Tag from calibre.utils.date import isoformat, UNDEFINED_DATE, local_tz from calibre.utils.config import tweaks, JSONConfig from calibre.utils.formatter import EvalFormatter +from calibre.utils.file_type_icons import EXT_MAP from calibre.utils.icu import collation_order from calibre.library.field_metadata import category_icon_map @@ -124,6 +125,9 @@ def icon_map(): for k, v in custom_icons.iteritems(): if os.access(os.path.join(config_dir, 'tb_icons', v), os.R_OK): _icon_map[k] = '_' + v + _icon_map['file_type_icons'] = { + k:'mimetypes/%s.png' % v for k, v in EXT_MAP.iteritems() + } return _icon_map def categories_settings(query, db): diff --git a/src/calibre/utils/file_type_icons.py b/src/calibre/utils/file_type_icons.py new file mode 100644 index 0000000000..e2252cd606 --- /dev/null +++ b/src/calibre/utils/file_type_icons.py @@ -0,0 +1,60 @@ +#!/usr/bin/env python2 +# vim:fileencoding=utf-8 +# License: GPLv3 Copyright: 2015, Kovid Goyal + +from __future__ import (unicode_literals, division, absolute_import, + print_function) + +EXT_MAP = { + 'default' : 'unknown', + 'dir' : 'dir', + 'zero' : 'zero', + + 'jpeg' : 'jpeg', + 'jpg' : 'jpeg', + 'gif' : 'gif', + 'png' : 'png', + 'bmp' : 'bmp', + 'cbz' : 'cbz', + 'cbr' : 'cbr', + 'svg' : 'svg', + 'html' : 'html', + 'htmlz' : 'html', + 'htm' : 'html', + 'xhtml' : 'html', + 'xhtm' : 'html', + 'lit' : 'lit', + 'lrf' : 'lrf', + 'lrx' : 'lrx', + 'pdf' : 'pdf', + 'pdr' : 'zero', + 'rar' : 'rar', + 'zip' : 'zip', + 'txt' : 'txt', + 'text' : 'txt', + 'prc' : 'mobi', + 'azw' : 'mobi', + 'mobi' : 'mobi', + 'pobi' : 'mobi', + 'mbp' : 'zero', + 'azw1' : 'tpz', + 'azw2' : 'azw2', + 'azw3' : 'azw3', + 'azw4' : 'pdf', + 'tpz' : 'tpz', + 'tan' : 'zero', + 'epub' : 'epub', + 'fb2' : 'fb2', + 'rtf' : 'rtf', + 'odt' : 'odt', + 'snb' : 'snb', + 'djv' : 'djvu', + 'djvu' : 'djvu', + 'xps' : 'xps', + 'oxps' : 'xps', + 'docx' : 'docx', + 'opml' : 'opml', +} + + +