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
|
|
|
|
|
|
|
|
---
|
|
|
|
|
|
|
|
|
|
При создании этого документа использовался ИИ.
|