Linux installer: Install application and mimetype icons in multiple sizes. Fixes #1489654 [A few misc patches](https://bugs.launchpad.net/calibre/+bug/1489654)

This commit is contained in:
Kovid Goyal 2015-08-28 08:41:47 +05:30
parent 40666c900c
commit 541a426361

View File

@ -776,35 +776,36 @@ class PostInstall:
env['LD_LIBRARY_PATH'] = os.pathsep.join(npaths) env['LD_LIBRARY_PATH'] = os.pathsep.join(npaths)
cc = partial(check_call, env=env) cc = partial(check_call, env=env)
with TemporaryDirectory() as tdir, CurrentDir(tdir), \ with TemporaryDirectory() as tdir, CurrentDir(tdir), PreserveMIMEDefaults():
PreserveMIMEDefaults():
render_img('mimetypes/lrf.png', 'calibre-lrf.png') def install_single_icon(iconsrc, basename, size, context, is_last_icon=False):
cc('xdg-icon-resource install --noupdate --context mimetypes --size 128 calibre-lrf.png application-lrf', shell=True) filename = '%s-%s.png' % (basename, size)
self.icon_resources.append(('mimetypes', 'application-lrf', '128')) render_img(iconsrc, filename, width=int(size), height=int(size))
cc('xdg-icon-resource install --noupdate --context mimetypes --size 128 calibre-lrf.png text-lrs', shell=True) cmd = ['xdg-icon-resource', 'install', '--noupdate', '--context', context, '--size', str(size), filename, basename]
self.icon_resources.append(('mimetypes', 'application-lrs', if is_last_icon:
'128')) del cmd[2]
render_img('mimetypes/mobi.png', 'calibre-mobi.png') cc(cmd)
cc('xdg-icon-resource install --noupdate --context mimetypes --size 128 calibre-mobi.png application-x-mobipocket-ebook', shell=True) self.icon_resources.append((context, basename, str(size)))
self.icon_resources.append(('mimetypes', 'application-x-mobipocket-ebook', '128'))
render_img('mimetypes/tpz.png', 'calibre-tpz.png') def install_icons(iconsrc, basename, context, is_last_icon=False):
cc('xdg-icon-resource install --noupdate --context mimetypes --size 128 calibre-tpz.png application-x-topaz-ebook', shell=True) sizes = (16, 32, 48, 64, 128, 256)
self.icon_resources.append(('mimetypes', 'application-x-topaz-ebook', '128')) for size in sizes:
render_img('mimetypes/azw2.png', 'calibre-azw2.png') install_single_icon(iconsrc, basename, size, context, is_last_icon and size is sizes[-1])
cc('xdg-icon-resource install --noupdate --context mimetypes --size 128 calibre-azw2.png application-x-kindle-application', shell=True)
self.icon_resources.append(('mimetypes', 'application-x-kindle-application', '128')) icons = filter(None, [x.strip() for x in '''\
render_img('mimetypes/azw3.png', 'calibre-azw3.png') mimetypes/lrf.png application-lrf mimetypes
cc('xdg-icon-resource install --noupdate --context mimetypes --size 128 calibre-azw3.png application-x-mobi8-ebook', shell=True) mimetypes/lrf.png text-lrs mimetypes
self.icon_resources.append(('mimetypes', 'application-x-mobi8-ebook', '128')) mimetypes/mobi.png application-x-mobipocket-ebook mimetypes
render_img('lt.png', 'calibre-gui.png', width=256, height=256) mimetypes/tpz.png application-x-topaz-ebook mimetypes
cc('xdg-icon-resource install --noupdate --size 256 calibre-gui.png calibre-gui', shell=True) mimetypes/azw2.png application-x-kindle-application mimetypes
self.icon_resources.append(('apps', 'calibre-gui', '256')) mimetypes/azw3.png application-x-mobi8-ebook mimetypes
render_img('viewer.png', 'calibre-viewer.png', width=256, height=256) lt.png calibre-gui apps
cc('xdg-icon-resource install --noupdate --size 256 calibre-viewer.png calibre-viewer', shell=True) viewer.png calibre-viewer apps
self.icon_resources.append(('apps', 'calibre-viewer', '256')) tweak.png calibre-ebook-edit apps
render_img('tweak.png', 'calibre-ebook-edit.png', width=256, height=256) '''.splitlines()])
cc('xdg-icon-resource install --size 256 calibre-ebook-edit.png calibre-ebook-edit', shell=True) for line in icons:
self.icon_resources.append(('apps', 'calibre-ebook-edit', '256')) iconsrc, basename, context = line.split()
install_icons(iconsrc, basename, context, is_last_icon=line is icons[-1])
mimetypes = set() mimetypes = set()
for x in all_input_formats(): for x in all_input_formats():