Files
BiLauncher/doc/qml/SeasonalBuildsDialog.md
T

57 lines
4.0 KiB
Markdown
Raw Permalink Normal View History

2026-10-11 22:32:13 +03:00
# SeasonalBuildsDialog.qml
2026-09-03 09:16:56 +03:00
2026-10-11 22:32:13 +03:00
Каталог сезонных сборок с сервера лаунчера. Таблица показывает всё, что нужно, чтобы решить,
ставить сборку или нет. Остальное делает одна кнопка: создаёт запись сборки, ставит версию игры,
модлоадер и Java и раскладывает файлы. Как это устроено, описано в
[LauncherBackend](../cpp/LauncherBackend.md#сезонные-сборки).
2026-09-03 09:16:56 +03:00
2026-10-11 22:32:13 +03:00
Открывается из [Main](Main.md) кнопкой в правом нижнем углу (`openCatalog()`).
2026-09-03 09:16:56 +03:00
## Свойства
2026-10-11 22:32:13 +03:00
| | |
|---|---|
| `backend` (required) | `LauncherBackend` |
| `selectedId` | выбранная строка, по `id` сборки |
| `columns` | описание колонок: ключ, заголовок, ширина, выравнивание |
2026-09-03 09:16:56 +03:00
2026-10-11 22:32:13 +03:00
Выбранная строка хранится по `id`, а не по индексу: список может обновиться, пока окно открыто,
и индекс начал бы указывать на другую сборку.
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
Колонки: название, версия, модлоадер с версией, число модов, начало и конец сезона, статус
(«не установлена», «установлена», «доступно обновление»). Ширины заданы в одном месте, `columns`,
и их используют и шапка, и строки.
2026-09-03 09:16:56 +03:00
2026-10-11 22:32:13 +03:00
Таблица собрана из `Row` с колонками фиксированной ширины, а не из `TableView`. В проекте нет ни
одной модели на `QAbstractItemModel`, строки приходят из C++ готовыми `QVariantMap`, и заводить
модель ради семи колонок не стоит.
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
Пустой список и ошибка сервера выглядят одинаково пусто, поэтому причина пишется прямо на месте
строк: «загрузка…», «сборок пока нет» или текст `seasonalCatalogError` красным.
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
- **Обновить список** — `refreshSeasonalCatalog(true)`, мимо кэша. Выключена, пока идёт загрузка.
- **Установить / Обновить** — `installSeasonalBuild(id)`. Подпись зависит от `updateAvailable`.
Выключена, пока лаунчер чем-то занят (`busy`): установка занимает и панель загрузки, и
`.minecraft` целиком.
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
Каталог обновляется при каждом открытии окна (`refreshSeasonalCatalog(false)`). Свежий кэш отвечает
без сети.
2026-09-03 09:16:56 +03:00
Окно закрывается по Esc и щелчку мимо него и во время установки: отменить установку можно только
на панели загрузки главного окна, которую модальное окно перекрывает. Установка при закрытии окна
продолжается.
2026-09-03 09:16:56 +03:00
---
При создании этого документа использовался ИИ.