This commit is contained in:
2026-09-29 09:40:37 +03:00
parent 441021b9a6
commit 6567e731d1
34 changed files with 57 additions and 709 deletions
-25
View File
@@ -4,22 +4,11 @@ import QtQuick
import QtQuick.Controls 2.15
import QtQuick.Layouts 2.15
// Пользовательские сборки одним окном: слева список со сменой активной,
// справа карточка выбранной — имя, сервер, версия Minecraft и модлоадеры.
//
// Карточка сохраняет правки по ходу редактирования, отдельной кнопки
// «Сохранить» нет: иначе появляется неочевидное несохранённое состояние,
// пока пользователь переключается между сборками в левом списке.
Dialog {
id: buildsDialog
required property var backend
// Сборка, открытая в карточке справа. С активной не связана: активную
// меняет отдельная кнопка, чтобы случайный клик по списку не запускал
// архивацию .minecraft.
property int editIndex: -1
// Пока карточка заполняется, обработчики полей не должны писать обратно.
property bool loading: false
modal: true
@@ -48,9 +37,6 @@ Dialog {
buildsDialog.refreshStatus()
}
// Удаление необратимо и уносит с собой архив сборки, поэтому сначала
// спрашиваем. Индекс запоминаем здесь: к моменту ответа строка списка под
// курсором может быть уже другой.
function askRemove(index) {
const info = buildsDialog.backend.customBuildRemovalInfo(index)
if (!info || info.name === undefined)
@@ -251,8 +237,6 @@ Dialog {
onVersionChosen: (versionId) => bdMinecraft.selectedId = versionId
}
// Установка версии или модлоадера меняет комплектность сборки — строка
// состояния должна это заметить, не дожидаясь переоткрытия окна.
Connections {
target: buildsDialog.backend
function onInstalledVersionsChanged() { buildsDialog.refreshStatus() }
@@ -287,7 +271,6 @@ Dialog {
contentItem: RowLayout {
spacing: 0
// ── Список сборок ───────────────────────────────────────────────
Item {
Layout.preferredWidth: 260
Layout.fillHeight: true
@@ -402,7 +385,6 @@ Dialog {
color: "#333333"
}
// ── Карточка выбранной сборки ───────────────────────────────────
Item {
Layout.fillWidth: true
Layout.fillHeight: true
@@ -444,8 +426,6 @@ Dialog {
font.pixelSize: 11
}
// Само поле только показывает выбор: версий около тысячи, и
// разбираться в них удобнее в отдельном окне с категориями.
Rectangle {
id: bdMinecraft
property string selectedId: ""
@@ -494,9 +474,6 @@ Dialog {
font.pixelSize: 11
}
// Лоадеры несовместимы между собой: игра запускается ровно с
// одним профилем versions/<id>. Поэтому отметка одного снимает
// остальные, а «ничего не отмечено» — это чистая ваниль.
Column {
id: loaderPanel
width: parent.width
@@ -530,8 +507,6 @@ Dialog {
buildsDialog.commit({
"loader": row ? row.loaderKey : "",
"loaderVersion": row ? row.selectedVersion : "",
// Профиль появится только после установки: пока
// сборка запускается на чистой ванили.
"resolvedVersionId": ""
})
}