1 parent
fd14b54d8a
commit
0f370167db
9 files changed
+18
-134
No files matched your search
@@ -4,25 +4,16 @@ import QtQuick
|
||||
import QtQuick.Controls 2.15
|
||||
import QtQuick.Layouts 2.15
|
||||
|
||||
// Выбор версии Minecraft отдельным окном: слева категории, справа сами версии
|
||||
// с поиском сверху.
|
||||
//
|
||||
// Раньше это был выпадающий список на всю тысячу версий: найти в нём бету 1.7
|
||||
// можно было только поиском по точному номеру. Категории делят список на
|
||||
// обозримые части, а поиск работает внутри выбранной.
|
||||
Dialog {
|
||||
id: picker
|
||||
|
||||
required property var backend
|
||||
|
||||
// Версия, с которой окно открылось: по «Отмене» выбор к ней и возвращается.
|
||||
property string selectedId: ""
|
||||
property string category: "release"
|
||||
property string filterText: ""
|
||||
property bool installedOnly: false
|
||||
|
||||
// Выбранная версия подтверждена кнопкой или двойным щелчком. Имя не
|
||||
// accepted(): такой сигнал у Dialog уже есть, и переопределить его нельзя.
|
||||
signal versionChosen(string versionId)
|
||||
|
||||
modal: true
|
||||
@@ -46,8 +37,6 @@ Dialog {
|
||||
{ key: "other", title: Loc.t.version.filter.other }
|
||||
]
|
||||
|
||||
// Каталог приходит из C++ уже отсортированным (новые сверху), поэтому здесь
|
||||
// только отбор — порядок не трогаем.
|
||||
readonly property var visibleEntries: {
|
||||
const query = picker.filterText.trim().toLowerCase()
|
||||
const source = picker.backend.versionCatalog
|
||||
@@ -69,7 +58,6 @@ Dialog {
|
||||
picker.selectedId = versionId
|
||||
picker.filterText = ""
|
||||
searchField.text = ""
|
||||
// Открываемся на категории текущей версии, а не всегда на релизах.
|
||||
picker.category = picker.categoryOf(versionId)
|
||||
picker.backend.refreshVersionCatalog()
|
||||
picker.open()
|
||||
@@ -117,9 +105,6 @@ Dialog {
|
||||
return false
|
||||
}
|
||||
|
||||
// Спрашиваем до удаления: версию придётся качать заново, а профили
|
||||
// модлоадеров поверх неё — переустанавливать. Id запоминаем здесь:
|
||||
// к моменту ответа строка под курсором может быть уже другой.
|
||||
function askRemove(versionId) {
|
||||
const info = picker.backend.versionRemovalInfo(versionId)
|
||||
if (!info || info.installed !== true)
|
||||
@@ -133,8 +118,6 @@ Dialog {
|
||||
|
||||
function performRemove(versionId) {
|
||||
picker.backend.removeVersion(versionId)
|
||||
// Профиль модлоадера был в каталоге только потому, что установлен:
|
||||
// после удаления строка исчезает совсем, и выбор надо снять.
|
||||
if (picker.selectedId === versionId && !picker.catalogHas(versionId))
|
||||
picker.selectedId = ""
|
||||
picker.revealSelected()
|
||||
@@ -305,7 +288,6 @@ Dialog {
|
||||
contentItem: RowLayout {
|
||||
spacing: 0
|
||||
|
||||
// ── Категории ───────────────────────────────────────────────────
|
||||
Rectangle {
|
||||
Layout.preferredWidth: 150
|
||||
Layout.fillHeight: true
|
||||
@@ -358,7 +340,6 @@ Dialog {
|
||||
color: "#333333"
|
||||
}
|
||||
|
||||
// ── Версии ──────────────────────────────────────────────────────
|
||||
Item {
|
||||
Layout.fillWidth: true
|
||||
Layout.fillHeight: true
|
||||
@@ -493,8 +474,6 @@ Dialog {
|
||||
anchors.verticalCenter: parent.verticalCenter
|
||||
}
|
||||
|
||||
// Версия весит от десятков мегабайт, а галочка рядом —
|
||||
// единственное место, где видно, что именно скачано.
|
||||
Image {
|
||||
visible: versionRow.modelData.installed
|
||||
source: "images/Trash.svg"
|
||||
@@ -531,7 +510,6 @@ Dialog {
|
||||
}
|
||||
}
|
||||
|
||||
// Пустая категория, ничего не нашлось или манифест ещё не пришёл.
|
||||
Text {
|
||||
anchors.centerIn: versionList
|
||||
width: versionList.width - 20
|
||||
|
||||
Reference in new issue
Block a user