import sys from pathlib import Path from PySide6.QtQml import QQmlApplicationEngine from PySide6.QtQuickControls2 import QQuickStyle from PySide6.QtWidgets import QApplication from backend.local_settings_model import LocalSettingsModel from backend.file_browser import FileBrowser # ===== Application Entry Point ===== if __name__ == "__main__": # ===== UI Style Setup ===== # Use a non-native controls style so our custom QML button backgrounds are supported. QQuickStyle.setStyle("Basic") # ===== Qt Bootstrap ===== # Minimal Qt bootstrap: load the ISC QML module and exit if it fails. app = QApplication(sys.argv) engine = QQmlApplicationEngine() # ===== Shared Models ===== settings_model = LocalSettingsModel() select_file_dialog_model = FileBrowser() settings_model.loadSettings() engine.rootContext().setContextProperty("settingsModel", settings_model) engine.rootContext().setContextProperty("file_browser", select_file_dialog_model) # ===== QML Startup ===== engine.addImportPath(Path(__file__).parent) engine.loadFromModule("ISC", "Main") # ===== Exit Handling ===== if not engine.rootObjects(): sys.exit(-1) sys.exit(app.exec())