Files
BiLauncher/doc/qml/JavaPickerDialog.md
2026-10-11 22:32:13 +03:00

3.2 KiB

JavaPickerDialog.qml

Окно выбора сборки Java. Устроено как VersionPickerDialog: слева виды, справа список с поиском. Отличие в том, что выбранная здесь сборка сразу и скачивается. Версии игры качает сборка, а Java, которой нет на диске, игре ничем не поможет.

Открывается из диалога настроек в Main.

Интерфейс

backend (required) LauncherBackend
selectedId выбранная сборка
category java (Mojang), jdk, jre (Temurin)
filterText, installedOnly поиск и «только скачанные»
requiredMajor минимальная Java для версии игры активной сборки; 0 — версия не выбрана
openFor(runtimeId, requiredMajor) открыть
runtimeChosen(runtimeId) выбор подтверждён

Как работает

openFor() сбрасывает поиск, открывает категорию переданной сборки и просит бэкенд обновить каталог Java. По «Отмене» ничего не меняется.

Под категориями слева написано, какая Java нужна выбранной версии игры, чтобы не держать это в голове.

javaCatalog приходит из C++ уже отсортированным: скачанное первым, потом новые версии сверху. Окно только отбирает строки.

В строке: версия, пометка LTS, какие версии игры она потянет (coverage), размер и галочка у скачанных. Сборка ниже requiredMajor не прячется, а помечается красноватым и подписью «слишком старая для этой версии». Она может понадобиться другой сборке.

Кнопка внизу называется «Скачать», если выбранной сборки нет на диске, и «Выбрать», если есть. acceptSelection() испускает runtimeChosen и, если сборки нет на диске, вызывает installJavaRuntime(). Ход загрузки показывает панель главного окна.

Удаление

У скачанных сборок есть корзина, и удаление происходит без подтверждения: removeJavaRuntime() вызывается сразу. Сборка весит около двухсот мегабайт, и без корзины здесь папка лаунчера росла бы незаметно для пользователя. Если удалили сборку, выбранную в настройках, бэкенд очистит javaRuntime.


При создании этого документа использовался ИИ.