async def show_tracker(app: QtWidgets.QApplication): from randovania.gui.auto_tracker_window import AutoTrackerWindow options = await _load_options() if options is None: app.exit(1) return app.tracker = AutoTrackerWindow(app.game_connection, options) logger.info("Displaying auto tracker") app.tracker.show()
async def qt_main(app: QtWidgets.QApplication, data_dir: Path, args): app.setQuitOnLastWindowClosed(False) app.network_client = None logging.info("Loading server client...") from randovania.gui.lib.qt_network_client import QtNetworkClient logging.info("Configuring server client...") app.network_client = QtNetworkClient(data_dir) logging.info("Server client ready.") if args.login_as_guest: logging.info("Logging as %s", args.login_as_guest) await app.network_client.login_as_guest(args.login_as_guest) options = await _load_options() if options is None: app.exit(1) return executor = create_memory_executor(args.debug_game_backend, options) logging.info("Configuring game connection with the backend...") from randovania.game_connection.game_connection import GameConnection app.game_connection = GameConnection(executor) logging.info("Configuring qasync...") import qasync @qasync.asyncClose async def _on_last_window_closed(): if app.quitOnLastWindowClosed(): await app.network_client.disconnect_from_server() await app.game_connection.stop() logger.info("Last QT window closed") else: logger.warning( "Last Qt window closed, but currently not doing anything") app.setQuitOnLastWindowClosed(True) app.lastWindowClosed.connect(_on_last_window_closed, QtCore.Qt.QueuedConnection) await asyncio.gather(app.game_connection.start(), display_window_for(app, options, args.command, args))