Files
PortProtonQt/portprotonqt/app.py
Boris Yumankulov 8e11dac987
Some checks failed
Code check / Check code (push) Successful in 1m27s
Build AppImage, Arch and Fedora Packages / Build AppImage (push) Successful in 3m15s
Build AppImage, Arch and Fedora Packages / Build Arch Package (push) Successful in 1m50s
Build AppImage, Arch and Fedora Packages / Build Fedora RPM (41) (push) Successful in 1m14s
Build AppImage, Arch and Fedora Packages / Build Fedora RPM (42) (push) Successful in 1m6s
Build AppImage, Arch and Fedora Packages / Build Fedora RPM (rawhide) (push) Successful in 1m53s
Build AppImage, Arch and Fedora Packages / Create and Publish Release (push) Failing after 48s
Fetch Data / build (push) Failing after 20s
chore: v0.1.5
Signed-off-by: Boris Yumankulov <boria138@altlinux.org>
2025-08-31 16:08:43 +05:00

55 lines
1.6 KiB
Python

import sys
from PySide6.QtCore import QLocale, QTranslator, QLibraryInfo
from PySide6.QtWidgets import QApplication
from PySide6.QtGui import QIcon
from portprotonqt.main_window import MainWindow
from portprotonqt.config_utils import save_fullscreen_config
from portprotonqt.logger import get_logger
from portprotonqt.cli import parse_args
logger = get_logger(__name__)
__app_id__ = "ru.linux_gaming.PortProtonQt"
__app_name__ = "PortProtonQt"
__app_version__ = "0.1.5"
def main():
app = QApplication(sys.argv)
app.setWindowIcon(QIcon.fromTheme(__app_id__))
app.setDesktopFileName(__app_id__)
app.setApplicationName(__app_name__)
app.setApplicationVersion(__app_version__)
system_locale = QLocale.system()
qt_translator = QTranslator()
translations_path = QLibraryInfo.path(QLibraryInfo.LibraryPath.TranslationsPath)
if qt_translator.load(system_locale, "qtbase", "_", translations_path):
app.installTranslator(qt_translator)
else:
logger.error(f"Qt translations for {system_locale.name()} not found in {translations_path}")
args = parse_args()
window = MainWindow(app_name=__app_name__)
if args.fullscreen:
logger.info("Launching in fullscreen mode due to --fullscreen flag")
save_fullscreen_config(True)
window.showFullScreen()
def cleanup_on_exit():
nonlocal window
app.aboutToQuit.disconnect()
if window:
window.close()
app.quit()
app.aboutToQuit.connect(cleanup_on_exit)
window.show()
sys.exit(app.exec())
if __name__ == '__main__':
main()