37 lines
1 KiB
Python
37 lines
1 KiB
Python
#!/usr/bin/env python3
|
|
|
|
import os
|
|
import sys
|
|
import signal
|
|
from PySide6.QtWidgets import QApplication
|
|
from PySide6.QtCore import QUrl
|
|
from PySide6.QtQml import QQmlApplicationEngine
|
|
from leek.mod_list import QAbstractListModel # noqa: F401, needs to be imported for QML
|
|
|
|
|
|
def main():
|
|
"""Initializes and manages the application execution"""
|
|
app: QApplication = QApplication(sys.argv)
|
|
app.setDesktopFileName("xyz.toast003.leek")
|
|
app.setApplicationName("Leek")
|
|
engine = QQmlApplicationEngine()
|
|
|
|
"""Needed to close the app with Ctrl+C"""
|
|
signal.signal(signal.SIGINT, signal.SIG_DFL)
|
|
|
|
"""Needed to get proper KDE style outside of Plasma"""
|
|
if not os.environ.get("QT_QUICK_CONTROLS_STYLE"):
|
|
os.environ["QT_QUICK_CONTROLS_STYLE"] = "org.kde.desktop"
|
|
|
|
base_path = os.path.abspath(os.path.dirname(__file__))
|
|
url = QUrl(f"file://{base_path}/qml/Main.qml")
|
|
engine.load(url)
|
|
|
|
if len(engine.rootObjects()) == 0:
|
|
quit()
|
|
|
|
app.exec()
|
|
|
|
|
|
if __name__ == "__main__":
|
|
main()
|