fix: folders with names of unlinked entries are linked (#1027)

* fix: render folder entries as unlinked

* fix: hide file size for linked folders

* fix: linked folders can be revealed in explorer

* fix: linked folders can be opened

* fix: linked folders can be deleted

* fix: skip rendering thumbnails in `ThumbRenderer._render`

* fix: skip getting image metadata for folders

* fix: conflicts

* style: ruff
This commit is contained in:
purpletennisball
2025-08-25 14:39:21 -04:00
committed by GitHub
parent acba9c3c33
commit 6c257f9671
6 changed files with 15 additions and 7 deletions

View File

@@ -50,6 +50,8 @@ class MissingRegistry:
flags=PATH_GLOB_FLAGS,
exclude=ignore_patterns,
):
if path.is_dir():
continue
if path.name == match_entry.path.name:
new_path = Path(path).relative_to(self.library.library_dir)
matches.append(new_path)

View File

@@ -39,7 +39,9 @@ class PreviewThumb(PreviewThumbView):
stats = FileAttributeData()
ext = filepath.suffix.lower()
if MediaCategories.IMAGE_RAW_TYPES.contains(ext, mime_fallback=True):
if filepath.is_dir():
pass
elif MediaCategories.IMAGE_RAW_TYPES.contains(ext, mime_fallback=True):
try:
with rawpy.imread(str(filepath)) as raw:
rgb = raw.postprocess()

View File

@@ -21,6 +21,8 @@ def delete_file(path: str | Path) -> bool:
"""
_path = Path(path)
try:
if _path.is_dir():
return False
logger.info(f"[delete_file] Sending to Trash: {_path}")
send2trash(_path)
return True

View File

@@ -109,11 +109,13 @@ class FileOpenerHelper:
def open_file(self):
"""Open the file in the default application."""
open_file(self.filepath)
if Path(self.filepath).is_file():
open_file(self.filepath)
def open_explorer(self):
"""Open the file in the default file explorer."""
open_file(self.filepath, file_manager=True)
if Path(self.filepath).is_file():
open_file(self.filepath, file_manager=True)
class FileOpenerLabel(QLabel):

View File

@@ -193,7 +193,7 @@ class FileAttributes(QWidget):
# Attempt to populate the stat variables
ext_display = ext.upper()[1:] or filepath.stem.upper()
if filepath:
if filepath and filepath.is_file():
try:
file_size = format_size(filepath.stat().st_size)

View File

@@ -1454,7 +1454,7 @@ class ThumbRenderer(QObject):
if not image:
image = (
render_unlinked((adj_size, adj_size), pixel_ratio)
if not filepath.exists()
if not filepath.exists() or filepath.is_dir()
else render_default((adj_size, adj_size), pixel_ratio)
)
render_mask_and_edge = False
@@ -1498,7 +1498,7 @@ class ThumbRenderer(QObject):
if not image:
image = (
render_unlinked((512, 512), 2)
if not filepath.exists()
if not filepath.exists() or filepath.is_dir()
else render_default((512, 512), 2)
)
render_mask_and_edge = False
@@ -1560,7 +1560,7 @@ class ThumbRenderer(QObject):
_filepath: Path = Path(filepath)
savable_media_type: bool = True
if _filepath:
if _filepath and _filepath.is_file():
try:
ext: str = _filepath.suffix.lower() if _filepath.suffix else _filepath.stem.lower()
# Images =======================================================