2026-10-11 22:32:13 +03:00
|
|
|
|
# VersionPickerDialog.qml
|
2026-09-03 09:16:56 +03:00
|
|
|
|
|
2026-10-11 22:32:13 +03:00
|
|
|
|
Окно выбора версии Minecraft. Слева категории, справа список версий выбранной категории с поиском.
|
2026-09-03 09:16:56 +03:00
|
|
|
|
|
2026-10-11 22:32:13 +03:00
|
|
|
|
Раньше на этом месте был выпадающий список на тысячу версий, и найти в нём, например, бету 1.7
|
|
|
|
|
|
можно было только набрав точный номер. Категории делят каталог на части разумного размера, а поиск
|
|
|
|
|
|
работает внутри выбранной.
|
2026-09-03 09:16:56 +03:00
|
|
|
|
|
2026-10-11 22:32:13 +03:00
|
|
|
|
Используется в [BuildsDialog](BuildsDialog.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` | `release`, `snapshot`, `old_beta`, `old_alpha` или `other` |
|
|
|
|
|
|
| `filterText` | строка поиска |
|
|
|
|
|
|
| `installedOnly` | показывать только скачанные |
|
|
|
|
|
|
| `openFor(versionId)` | открыть с этой версией |
|
|
|
|
|
|
| `versionChosen(versionId)` | выбор подтверждён |
|
2026-09-03 09:16:56 +03:00
|
|
|
|
|
2026-10-11 22:32:13 +03:00
|
|
|
|
Сигнал называется не `accepted`, потому что такой сигнал у `Dialog` уже есть, и переопределить его
|
|
|
|
|
|
нельзя.
|
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()` сбрасывает поиск, переключается на категорию переданной версии (а не всегда на
|
|
|
|
|
|
релизы), просит бэкенд обновить каталог (`refreshVersionCatalog()`) и прокручивает список к
|
|
|
|
|
|
выбранной строке. Если версии нет в каталоге, окно открывается на релизах. По «Отмене» ничего не
|
|
|
|
|
|
меняется: результат уходит наружу только через `versionChosen`.
|
2026-09-03 09:16:56 +03:00
|
|
|
|
|
2026-10-11 22:32:13 +03:00
|
|
|
|
`versionCatalog` приходит из C++ уже отсортированным, новые сверху. `visibleEntries` только
|
|
|
|
|
|
отбирает строки по категории, флажку «только скачанные» и подстроке в поле `search`, а порядок не
|
|
|
|
|
|
меняет. В «Прочие» попадают профили модлоадеров и всё, чего нет в манифесте Mojang.
|
2026-09-03 09:16:56 +03:00
|
|
|
|
|
2026-10-11 22:32:13 +03:00
|
|
|
|
С клавиатуры: фокус сразу в поиске, стрелки вверх и вниз двигают выбор, Enter подтверждает, Esc
|
|
|
|
|
|
закрывает. Мышью выбор подтверждается двойным щелчком или кнопкой.
|
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
|
|
|
|
## Удаление версии
|
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
|
|
|
|
`askRemove(versionId)` берёт `versionRemovalInfo()` и открывает подтверждение. В нём указаны
|
|
|
|
|
|
размер, профили модлоадеров, которые без этой версии не запустятся (`dependents`), и сборки,
|
|
|
|
|
|
которые на неё ссылаются (`builds`). id запоминается в окне подтверждения: к моменту ответа под
|
|
|
|
|
|
курсором может оказаться другая строка.
|
2026-09-03 09:16:56 +03:00
|
|
|
|
|
2026-10-11 22:32:13 +03:00
|
|
|
|
`performRemove(versionId)` вызывает `removeVersion()`. Если удалили выбранный профиль модлоадера,
|
|
|
|
|
|
он пропадает из каталога совсем (он был в нём только потому, что установлен), и выбор
|
|
|
|
|
|
сбрасывается.
|
2026-09-03 09:16:56 +03:00
|
|
|
|
|
|
|
|
|
|
---
|
|
|
|
|
|
|
|
|
|
|
|
При создании этого документа использовался ИИ.
|