Files
Kemono-Downloader/src/ui/assets.py
Yuvi9587 fbdae61b80 Commit
2025-07-19 03:28:32 -07:00

40 lines
1.3 KiB
Python

import os
import sys
from PyQt5.QtGui import QIcon
_app_icon_cache = None
def get_app_icon_object():
"""
Loads and caches the application icon from the assets folder.
This function is now centralized to prevent circular imports.
Returns:
QIcon: The application icon object.
"""
global _app_icon_cache
if _app_icon_cache and not _app_icon_cache.isNull():
return _app_icon_cache
app_base_dir = ""
if getattr(sys, 'frozen', False):
app_base_dir = os.path.dirname(sys.executable)
else:
app_base_dir = os.path.abspath(os.path.join(os.path.dirname(__file__), '..', '..'))
icon_path = os.path.join(app_base_dir, 'assets', 'Kemono.ico')
if os.path.exists(icon_path):
_app_icon_cache = QIcon(icon_path)
else:
if getattr(sys, 'frozen', False) and hasattr(sys, '_MEIPASS'):
fallback_icon_path = os.path.join(sys._MEIPASS, 'assets', 'Kemono.ico')
if os.path.exists(fallback_icon_path):
_app_icon_cache = QIcon(fallback_icon_path)
return _app_icon_cache
print(f"Warning: Application icon not found at {icon_path}")
_app_icon_cache = QIcon() # Return an empty icon as a fallback
return _app_icon_cache