Skip to content
2 changes: 2 additions & 0 deletions src/tagstudio/core/utils/missing_files.py
Original file line number Diff line number Diff line change
Expand Up @@ -50,6 +50,8 @@ def match_missing_file_entry(self, match_entry: Entry) -> list[Path]:
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)
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -39,7 +39,9 @@ def __get_image_stats(self, filepath: Path) -> FileAttributeData:
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()
Expand Down
2 changes: 2 additions & 0 deletions src/tagstudio/qt/helpers/file_deleter.py
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand Down
6 changes: 4 additions & 2 deletions src/tagstudio/qt/helpers/file_opener.py
Original file line number Diff line number Diff line change
Expand Up @@ -109,11 +109,13 @@ def set_filepath(self, filepath: str | Path):

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):
Expand Down
2 changes: 1 addition & 1 deletion src/tagstudio/qt/widgets/preview/file_attributes.py
Original file line number Diff line number Diff line change
Expand Up @@ -193,7 +193,7 @@ def update_stats(self, filepath: Path | None = None, stats: FileAttributeData |

# 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)

Expand Down
6 changes: 3 additions & 3 deletions src/tagstudio/qt/widgets/thumb_renderer.py
Original file line number Diff line number Diff line change
Expand Up @@ -1454,7 +1454,7 @@ def fetch_cached_image(folder: Path):
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
Expand Down Expand Up @@ -1498,7 +1498,7 @@ def fetch_cached_image(folder: Path):
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
Expand Down Expand Up @@ -1560,7 +1560,7 @@ def _render(
_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 =======================================================
Expand Down