2015-10-27 1 views
1

J'ai implémenté un générateur Quick Look qui peut afficher plusieurs types d'images, y compris les fichiers JPEG.Le Finder n'invoque pas mon générateur Quick Look pour le type de fichier JPEG (public.jpeg)

Il est appelé par le système pour rendre les vignettes et les aperçus des types de fichiers qui apparaissent dans sa liste de propriétés, à l'exception d'un: public.jpeg.

<key>CFBundleDocumentTypes</key> 
<array> 
    <dict> 
     <key>CFBundleTypeName</key> 
     <string></string> 
     <key>CFBundleTypeRole</key> 
     <string>QLGenerator</string> 
     <key>LSItemContentTypes</key> 
     <array> 
      <string>public.jpeg</string> 
      <string>com.canon.cr2-raw-image</string> 
      <string>com.sony.arw-raw-image</string> 
     </array> 
    </dict> 
</array> 

Compte tenu du fragment de liste de propriétés ci-dessus, mon générateur serait appelé avec succès pour les fichiers .CR2 et .ARW, mais jamais pour les fichiers .JPG. J'ai réinitialisé la base de données du générateur Quick Look avec qlmanage et confirmé en utilisant qlmanage -m que mon générateur est associé à l'UTI public.jpeg (comme dans le cas des deux autres UTI dans cet exemple).

qlmanage -m | grep jpeg 
public.jpeg -> /Applications/MyApp.app/Contents/Library/QuickLook/MyQLGenerator.qlgenerator (123) 

Néanmoins, lorsque je sélectionne un fichier JPEG dans le Finder, puis appuyez sur la barre d'espace, Quick Look invoque toujours le générateur par défaut:

10/26/15 6:23:49.343 PM com.apple.quicklook.satellite[21978]: [QL] <QLThumbnailRequest testfile.jpg>. Content type UTI: public.jpeg. Generator used: <QLGenerator /System/Library/QuickLook/Image.qlgenerator> 

Quick Look invoque même le générateur par défaut lorsque je demande spécifiquement d'invoquer le mien à la place:

qlmanage -p -c public.jpeg -g "/Applications/MyApp.app/Contents/Library/QuickLook/MyQLGenerator.qlgenerator" testfile.jpg 
Testing Quick Look preview with files: 
    testfile.jpg 
    - force using content type UTI: public.jpeg 
    - force using generator at path: 
    /Applications/MyApp.app/Contents/Library/QuickLook/MyQLGenerator.qlgenerator 

2015-10-26 18:43:34.450 qlmanage[22054:507] *** CFMessagePort: bootstrap_register(): failed 1100 (0x44c) 'Permission denied', port = 0x8c27, name = 'com.apple.tsm.portname' 
See /usr/include/servers/bootstrap_defs.h for the error codes. 
2015-10-26 18:43:34.475 qlmanage[22054:507] *** CFMessagePort: bootstrap_register(): failed 1100 (0x44c) 'Permission denied', port = 0x8d47, name = 'com.apple.CFPasteboardClient' 
See /usr/include/servers/bootstrap_defs.h for the error codes. 
2015-10-26 18:43:34.475 qlmanage[22054:507] Failed to allocate communication port for com.apple.CFPasteboardClient; this is likely due to sandbox restrictions  

(Les erreurs bootstrap_register() semblent omniprésents avec Quick look et apparaissent également lors de la prévisualisation d'autres types de fichiers, mais ceux qui travaillent comme attendent ed.)

Existe-t-il un moyen pour que Quick Look invoque mon générateur pour les fichiers JPEG?

Répondre

0

Cela semble être un bogue dans MacOS 10.9. L'auteur du projet qlImageSize a rencontré le même problème et a déposé un radar report.

Un autre participant de ce qlImageSize discussion thread a remarqué que «Apple a répondu à mon rapport de bogue pour confirmer la résolution dans Yosemite.» Aucune mention de Mavericks.

Ma propre expérience est la même. Le même générateur Quick Look qui n'est pas appelé pour public.jpeg sous 10.9 fonctionne comme prévu sous 10.10 et 10.11.