63 lines
1.9 KiB
Python
63 lines
1.9 KiB
Python
|
|
import sys
|
|
import os
|
|
import platform
|
|
from PyQt6.QtWidgets import QApplication
|
|
from PyQt6.QtGui import QIcon, QImageReader
|
|
from teletext.ui import MainWindow
|
|
|
|
def resource_path(relative_path):
|
|
""" Get absolute path to resource, works for dev and for PyInstaller """
|
|
try:
|
|
# PyInstaller creates a temp folder and stores path in _MEIPASS
|
|
base_path = sys._MEIPASS
|
|
except Exception:
|
|
base_path = os.path.abspath(".")
|
|
|
|
return os.path.join(base_path, relative_path)
|
|
|
|
def main():
|
|
# Fix for Windows Taskbar Icon
|
|
if platform.system() == 'Windows':
|
|
import ctypes
|
|
myappid = 'ddybing.teletexteditor.1.0' # arbitrary string
|
|
ctypes.windll.shell32.SetCurrentProcessExplicitAppUserModelID(myappid)
|
|
|
|
app = QApplication(sys.argv)
|
|
app.setApplicationName("TeletextEditor")
|
|
app.setOrganizationName("DanielDybing")
|
|
app.setDesktopFileName("no.ddybing.TeletextEditor") # Helps Linux DEs group windows
|
|
|
|
# Debug Image Formats
|
|
supported_formats = [str(fmt, 'utf-8') for fmt in QImageReader.supportedImageFormats()]
|
|
print(f"DEBUG: Supported Image Formats: {supported_formats}")
|
|
|
|
# Set App Icon
|
|
icon_path = resource_path("app_icon.png")
|
|
print(f"DEBUG: Looking for icon at: {icon_path}")
|
|
|
|
if os.path.exists(icon_path):
|
|
print("DEBUG: Icon file found.")
|
|
app_icon = QIcon(icon_path)
|
|
app.setWindowIcon(app_icon)
|
|
|
|
# Verify icon loaded
|
|
if app_icon.isNull():
|
|
print("DEBUG: QIcon is null (failed to load image data)")
|
|
else:
|
|
print(f"DEBUG: QIcon loaded. Available sizes: {app_icon.availableSizes()}")
|
|
|
|
else:
|
|
print("DEBUG: Icon file NOT found.")
|
|
|
|
window = MainWindow()
|
|
# Ensure window inherits the icon
|
|
if os.path.exists(icon_path):
|
|
window.setWindowIcon(QIcon(icon_path))
|
|
|
|
window.show()
|
|
sys.exit(app.exec())
|
|
|
|
if __name__ == "__main__":
|
|
main()
|