1 parent
fd14b54d8a
commit
0f370167db
9 files changed
+18
-134
No files matched your search
+1
-20
@@ -4,22 +4,16 @@ import QtQuick
|
||||
import QtQuick.Controls 2.15
|
||||
import QtQuick.Layouts 2.15
|
||||
|
||||
// Выбор сборки Java отдельным окном: слева типы, справа сами версии с поиском.
|
||||
// Устроено так же, как выбор версии Minecraft, но выбранное здесь ещё и
|
||||
// качается — в отличие от версий игры, где загрузку начинает сама сборка.
|
||||
Dialog {
|
||||
id: picker
|
||||
|
||||
required property var backend
|
||||
|
||||
// Сборка, с которой окно открылось: по «Отмене» выбор к ней и возвращается.
|
||||
property string selectedId: ""
|
||||
property string category: "java"
|
||||
property string filterText: ""
|
||||
property bool installedOnly: false
|
||||
|
||||
// Java, ниже которой выбранной версии игры не запуститься. 0 — версия игры
|
||||
// не выбрана, предупреждать не о чем.
|
||||
property int requiredMajor: 0
|
||||
|
||||
signal runtimeChosen(string runtimeId)
|
||||
@@ -43,8 +37,6 @@ Dialog {
|
||||
{ key: "jre", title: Loc.t.common.java.kind.jre, hint: Loc.t.java.filter.temurinJre }
|
||||
]
|
||||
|
||||
// Каталог приходит из C++ уже отсортированным (новые сверху, скачанные
|
||||
// первыми), поэтому здесь только отбор — порядок не трогаем.
|
||||
readonly property var visibleEntries: {
|
||||
const query = picker.filterText.trim().toLowerCase()
|
||||
const source = picker.backend.javaCatalog
|
||||
@@ -107,7 +99,6 @@ Dialog {
|
||||
runtimeList.positionViewAtIndex(index, ListView.Center)
|
||||
}
|
||||
|
||||
// «Выбрать» и скачивает: сборка, которой нет на диске, запуску не поможет.
|
||||
function acceptSelection() {
|
||||
const entry = picker.selectedEntry
|
||||
if (!entry)
|
||||
@@ -138,7 +129,6 @@ Dialog {
|
||||
contentItem: RowLayout {
|
||||
spacing: 0
|
||||
|
||||
// ── Типы сборок ─────────────────────────────────────────────────
|
||||
Rectangle {
|
||||
Layout.preferredWidth: 170
|
||||
Layout.fillHeight: true
|
||||
@@ -195,8 +185,6 @@ Dialog {
|
||||
|
||||
Item { width: 1; height: 8 }
|
||||
|
||||
// Требование выбранной сборки — чтобы не пришлось держать в
|
||||
// голове, какая Java нужна какой версии игры.
|
||||
Text {
|
||||
width: parent.width - 4
|
||||
visible: picker.requiredMajor > 0
|
||||
@@ -215,7 +203,6 @@ Dialog {
|
||||
color: "#333333"
|
||||
}
|
||||
|
||||
// ── Версии ──────────────────────────────────────────────────────
|
||||
Item {
|
||||
Layout.fillWidth: true
|
||||
Layout.fillHeight: true
|
||||
@@ -317,8 +304,7 @@ Dialog {
|
||||
required property int index
|
||||
|
||||
readonly property bool chosen: picker.selectedId === runtimeRow.modelData.id
|
||||
// Сборка ниже требования игры выбирается, но помечается: она
|
||||
// может пригодиться для другой сборки.
|
||||
|
||||
readonly property bool tooOld: picker.requiredMajor > 0
|
||||
&& runtimeRow.modelData.major < picker.requiredMajor
|
||||
|
||||
@@ -353,8 +339,6 @@ Dialog {
|
||||
}
|
||||
|
||||
Text {
|
||||
// Колонка растянута якорями, поэтому её ширина
|
||||
// задана, а не выведена из детей — цикла тут нет.
|
||||
width: parent.width
|
||||
elide: Text.ElideRight
|
||||
color: runtimeRow.chosen ? "#1e1e1e"
|
||||
@@ -388,8 +372,6 @@ Dialog {
|
||||
anchors.verticalCenter: parent.verticalCenter
|
||||
}
|
||||
|
||||
// Сборки весят по двести мегабайт — удалять их нужно
|
||||
// прямо здесь, иначе папка лаунчера растёт молча.
|
||||
Image {
|
||||
visible: runtimeRow.modelData.installed
|
||||
source: "images/Trash.svg"
|
||||
@@ -430,7 +412,6 @@ Dialog {
|
||||
}
|
||||
}
|
||||
|
||||
// Пустая категория, ничего не нашлось или каталог ещё не пришёл.
|
||||
Text {
|
||||
anchors.centerIn: runtimeList
|
||||
width: runtimeList.width - 20
|
||||
|
||||
Reference in new issue
Block a user