You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
About dialog enriched — now shows Python version, PySide6 version, platform string, and author(s) as clickable mailto: links read from package metadata.
Menu icons — all menu-bar actions (File, Catalog, Images, Settings, Help) now display icons; new SVG assets created for Quit, Duplicate, Refresh, Catalog configuration, History, Program settings, Keyboard shortcuts, and About.
Context menu icons — the file-list context menu reuses the same QAction objects as the Images menu, ensuring identical icons, labels, shortcuts and enabled/disabled state at all times.
ui/icons.py — shared get_icon(svg_name, theme_name, text_fallback) helper that resolves icons via FreeDesktop theme → bundled SVG → text fallback; consolidates previously duplicated logic from image_viewer.py.
Keyboard shortcuts dialog — added missing entries: Ctrl+Z (Undo rename), Ctrl+O (Open), Ctrl+Shift+O (Open with), Ctrl+N (New catalog), Ctrl+Shift+D (Duplicate catalog); Del and Escape now rendered via QKeySequence.toString(NativeText) for correct localisation.
Undo rename shortcut — Ctrl+Z activates the Undo rename button.
Changed
Version read from package metadata — importlib.metadata replaces the hardcoded version string in __main__.py; the About dialog always shows the installed version.
Context menu selects clicked row — right-clicking an unselected row now selects it before the menu appears, so actions operate on the expected file.
Fixed
PyInstaller bundle crash on startup — email was listed in excludes but is required by importlib.metadata at import time and by email.utils in the About dialog; removed from excludes.
Menu icons missing in PyInstaller bundle — _RESOURCE_DIR in ui/icons.py was computed from __file__, which points inside the package directory in the bundle; now uses sys._MEIPASS when available, matching the actual extraction path of bundled SVG assets.