diff --git a/lib/model/mime_types.dart b/lib/model/mime_types.dart index 0af76645f..02f954ae4 100644 --- a/lib/model/mime_types.dart +++ b/lib/model/mime_types.dart @@ -44,14 +44,21 @@ class MimeTypes { static const List undecodable = [crw, psd]; // TODO TLAD make it dynamic if it depends on OS/lib versions static String displayType(String mime) { - final patterns = [ - RegExp('.*/'), // remove type, keep subtype - RegExp('(X-|VND.(WAP.)?)'), // noisy prefixes - '+XML', // noisy suffix - RegExp('ADOBE\\\.'), // for PSD - ]; - mime = mime.toUpperCase(); - patterns.forEach((pattern) => mime = mime.replaceFirst(pattern, '')); - return mime; + switch (mime) { + case 'image/x-icon': + return 'ICO'; + case 'image/vnd.adobe.photoshop': + case 'image/x-photoshop': + return 'PSD'; + default: + final patterns = [ + RegExp('.*/'), // remove type, keep subtype + RegExp('(X-|VND.(WAP.)?)'), // noisy prefixes + '+XML', // noisy suffix + ]; + mime = mime.toUpperCase(); + patterns.forEach((pattern) => mime = mime.replaceFirst(pattern, '')); + return mime; + } } } diff --git a/lib/utils/xmp.dart b/lib/utils/xmp.dart index 53e7c962a..55ddc7eda 100644 --- a/lib/utils/xmp.dart +++ b/lib/utils/xmp.dart @@ -2,7 +2,9 @@ class XMP { static const namespaceSeparator = ':'; static const structFieldSeparator = '/'; + // cf https://exiftool.org/TagNames/XMP.html static const Map namespaces = { + 'aux': 'Auxiliary Exif', 'Camera': 'Camera', 'crs': 'Camera Raw Settings', 'dc': 'Dublin Core', @@ -12,6 +14,7 @@ class XMP { 'Iptc4xmpCore': 'IPTC Core', 'lr': 'Lightroom', 'MicrosoftPhoto': 'Microsoft Photo', + 'panorama': 'Panorama', 'pdf': 'PDF', 'pdfx': 'PDF/X', 'photomechanic': 'Photo Mechanic', diff --git a/lib/widgets/collection/thumbnail/error.dart b/lib/widgets/collection/thumbnail/error.dart index 3bfeb9b1c..3054616cf 100644 --- a/lib/widgets/collection/thumbnail/error.dart +++ b/lib/widgets/collection/thumbnail/error.dart @@ -15,7 +15,9 @@ class ErrorThumbnail extends StatelessWidget { @override Widget build(BuildContext context) { - return Center( + return Container( + alignment: Alignment.center, + color: Colors.black, child: Tooltip( message: tooltip, preferBelow: false,