Bug edited path bad mojave 859 (#864)
* Partial fix for #859, missing path edited on Mojave * Fixed annotation issue * Fix for HEIC edited images on Mojave, #859
This commit is contained in:
@@ -285,6 +285,16 @@ class PhotoInfo:
|
|||||||
folder_id, file_id, nn_id = _get_resource_loc(edit_id)
|
folder_id, file_id, nn_id = _get_resource_loc(edit_id)
|
||||||
# figure out what kind it is and build filename
|
# figure out what kind it is and build filename
|
||||||
library = self._db._library_path
|
library = self._db._library_path
|
||||||
|
if uti_edited := self.uti_edited:
|
||||||
|
ext = get_preferred_uti_extension(uti_edited)
|
||||||
|
if ext is not None:
|
||||||
|
filename = f"fullsizeoutput_{file_id}.{ext}"
|
||||||
|
return os.path.join(
|
||||||
|
library, "resources", "media", "version", folder_id, nn_id, filename
|
||||||
|
)
|
||||||
|
|
||||||
|
# if we get here, we couldn't figure out the extension
|
||||||
|
# so try to figure out the type and build the filename
|
||||||
type_ = self._info["type"]
|
type_ = self._info["type"]
|
||||||
if type_ == _PHOTO_TYPE:
|
if type_ == _PHOTO_TYPE:
|
||||||
# it's a photo
|
# it's a photo
|
||||||
|
|||||||
@@ -1,7 +1,6 @@
|
|||||||
__all__ = ["get_preferred_uti_extension", "get_uti_for_extension"]
|
""" get UTI for a given file extension and the preferred extension for a given UTI
|
||||||
""" get UTI for a given file extension and the preferred extension for a given UTI """
|
|
||||||
|
|
||||||
""" Implementation note: runs only on macOS
|
Implementation note: runs only on macOS
|
||||||
|
|
||||||
On macOS <= 11 (Big Sur), uses objective C CoreServices methods
|
On macOS <= 11 (Big Sur), uses objective C CoreServices methods
|
||||||
UTTypeCopyPreferredTagWithClass and UTTypeCreatePreferredIdentifierForTag to retrieve the
|
UTTypeCopyPreferredTagWithClass and UTTypeCreatePreferredIdentifierForTag to retrieve the
|
||||||
@@ -17,6 +16,8 @@ __all__ = ["get_preferred_uti_extension", "get_uti_for_extension"]
|
|||||||
It's a bit hacky but best I can think of to make this robust on different versions of macOS. PRs welcome.
|
It's a bit hacky but best I can think of to make this robust on different versions of macOS. PRs welcome.
|
||||||
"""
|
"""
|
||||||
|
|
||||||
|
from __future__ import annotations
|
||||||
|
|
||||||
import csv
|
import csv
|
||||||
import re
|
import re
|
||||||
import subprocess
|
import subprocess
|
||||||
@@ -27,6 +28,8 @@ import objc
|
|||||||
|
|
||||||
from .utils import _get_os_version
|
from .utils import _get_os_version
|
||||||
|
|
||||||
|
__all__ = ["get_preferred_uti_extension", "get_uti_for_extension"]
|
||||||
|
|
||||||
# cached values of all the UTIs (< 6 chars long) known to my Mac running macOS 10.15.7
|
# cached values of all the UTIs (< 6 chars long) known to my Mac running macOS 10.15.7
|
||||||
UTI_CSV = """extension,UTI,preferred_extension,MIME_type
|
UTI_CSV = """extension,UTI,preferred_extension,MIME_type
|
||||||
c,public.c-source,c,None
|
c,public.c-source,c,None
|
||||||
@@ -565,7 +568,7 @@ def _get_ext_from_uti_dict(uti):
|
|||||||
return None
|
return None
|
||||||
|
|
||||||
|
|
||||||
def get_preferred_uti_extension(uti):
|
def get_preferred_uti_extension(uti: str) -> str | None:
|
||||||
"""get preferred extension for a UTI type
|
"""get preferred extension for a UTI type
|
||||||
uti: UTI str, e.g. 'public.jpeg'
|
uti: UTI str, e.g. 'public.jpeg'
|
||||||
returns: preferred extension as str or None if cannot be determined"""
|
returns: preferred extension as str or None if cannot be determined"""
|
||||||
@@ -582,7 +585,7 @@ def get_preferred_uti_extension(uti):
|
|||||||
|
|
||||||
# on MacOS 10.12, HEIC files are not supported and UTTypeCopyPreferredTagWithClass will return None for HEIC
|
# on MacOS 10.12, HEIC files are not supported and UTTypeCopyPreferredTagWithClass will return None for HEIC
|
||||||
if uti == "public.heic":
|
if uti == "public.heic":
|
||||||
return "HEIC"
|
return "heic"
|
||||||
|
|
||||||
return None
|
return None
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user