Files
BiLauncher/doc/qml/JavaPickerDialog.md
T

49 lines
3.2 KiB
Markdown
Raw Permalink Normal View History

2026-10-11 22:32:13 +03:00
# JavaPickerDialog.qml
2026-09-03 09:16:56 +03:00
2026-10-11 22:32:13 +03:00
Окно выбора сборки Java. Устроено как [VersionPickerDialog](VersionPickerDialog.md): слева виды,
справа список с поиском. Отличие в том, что выбранная здесь сборка сразу и скачивается. Версии игры
качает сборка, а Java, которой нет на диске, игре ничем не поможет.
2026-09-03 09:16:56 +03:00
2026-10-11 22:32:13 +03:00
Открывается из диалога настроек в [Main](Main.md).
2026-09-03 09:16:56 +03:00
2026-10-11 22:32:13 +03:00
## Интерфейс
2026-09-03 09:16:56 +03:00
2026-10-11 22:32:13 +03:00
| | |
|---|---|
| `backend` (required) | `LauncherBackend` |
| `selectedId` | выбранная сборка |
| `category` | `java` (Mojang), `jdk`, `jre` (Temurin) |
| `filterText`, `installedOnly` | поиск и «только скачанные» |
| `requiredMajor` | минимальная Java для версии игры активной сборки; 0 — версия не выбрана |
| `openFor(runtimeId, requiredMajor)` | открыть |
| `runtimeChosen(runtimeId)` | выбор подтверждён |
2026-09-03 09:16:56 +03:00
2026-10-11 22:32:13 +03:00
## Как работает
2026-09-03 09:16:56 +03:00
2026-10-11 22:32:13 +03:00
`openFor()` сбрасывает поиск, открывает категорию переданной сборки и просит бэкенд обновить
каталог Java. По «Отмене» ничего не меняется.
2026-09-03 09:16:56 +03:00
2026-10-11 22:32:13 +03:00
Под категориями слева написано, какая Java нужна выбранной версии игры, чтобы не держать это в
голове.
2026-09-03 09:16:56 +03:00
2026-10-11 22:32:13 +03:00
`javaCatalog` приходит из C++ уже отсортированным: скачанное первым, потом новые версии сверху.
Окно только отбирает строки.
2026-09-03 09:16:56 +03:00
2026-10-11 22:32:13 +03:00
В строке: версия, пометка LTS, какие версии игры она потянет (`coverage`), размер и галочка у
скачанных. Сборка ниже `requiredMajor` не прячется, а помечается красноватым и подписью «слишком
старая для этой версии». Она может понадобиться другой сборке.
2026-09-03 09:16:56 +03:00
2026-10-11 22:32:13 +03:00
Кнопка внизу называется «Скачать», если выбранной сборки нет на диске, и «Выбрать», если есть.
`acceptSelection()` испускает `runtimeChosen` и, если сборки нет на диске, вызывает
`installJavaRuntime()`. Ход загрузки показывает панель главного окна.
2026-09-03 09:16:56 +03:00
2026-10-11 22:32:13 +03:00
## Удаление
2026-09-03 09:16:56 +03:00
2026-10-11 22:32:13 +03:00
У скачанных сборок есть корзина, и удаление происходит **без подтверждения**:
`removeJavaRuntime()` вызывается сразу. Сборка весит около двухсот мегабайт, и без корзины здесь
папка лаунчера росла бы незаметно для пользователя. Если удалили сборку, выбранную в настройках,
бэкенд очистит `javaRuntime`.
2026-09-03 09:16:56 +03:00
---
При создании этого документа использовался ИИ.