mirror of
https://github.com/TagStudioDev/TagStudio.git
synced 2026-02-01 07:39:10 +00:00
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:
@@ -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)
|
||||
|
||||
@@ -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()
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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):
|
||||
|
||||
@@ -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)
|
||||
|
||||
|
||||
@@ -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 =======================================================
|
||||
|
||||
Reference in New Issue
Block a user