1
Fork 0
mirror of https://github.com/redstrate/Astra.git synced 2025-04-20 11:47:46 +00:00
astra/launcher/ui/Pages/StatusPage.qml
Joshua Goins 81bd81e1b6 Improve patching experience further
Now there is more visible and consistent information such as the number
of patches and how far you're into the patching process. It's harder to
close or quit the window while patching to prevent errors, and
installing patches no longer freezes the window.

And fixes an issue where the boot component would never properly update.
2023-10-11 17:45:02 -04:00

85 lines
No EOL
2.2 KiB
QML

// SPDX-FileCopyrightText: 2023 Joshua Goins <josh@redstrate.com>
// SPDX-License-Identifier: GPL-3.0-or-later
import QtQuick
import org.kde.kirigami as Kirigami
import zone.xiv.astra
Kirigami.Page {
property var gameInstaller
title: i18n("Logging in...")
onBackRequested: (event) => {
if (LauncherCore.isPatching()) {
// Prevent going back
applicationWindow().showPassiveNotification(i18n("Please do not quit while patching!"));
event.accepted = true;
}
}
Kirigami.LoadingPlaceholder {
id: placeholder
text: "Logging in..."
anchors.centerIn: parent
}
Kirigami.PromptDialog {
id: errorDialog
title: i18n("Login Error")
showCloseButton: false
standardButtons: Kirigami.Dialog.Ok
onAccepted: applicationWindow().pageStack.layers.pop()
onRejected: applicationWindow().pageStack.layers.pop()
}
Kirigami.PromptDialog {
id: dalamudErrorDialog
title: i18n("Dalamud Error")
showCloseButton: false
standardButtons: Kirigami.Dialog.Yes | Kirigami.Dialog.Cancel
onAccepted: {
LauncherCore.currentProfile.dalamudEnabled = false;
applicationWindow().pageStack.layers.pop()
}
onRejected: applicationWindow().pageStack.layers.pop()
}
Connections {
target: LauncherCore
function onStageChanged(message, explanation) {
placeholder.text = message
placeholder.explanation = explanation
}
function onStageIndeterminate() {
placeholder.determinate = false
}
function onStageDeterminate(min, max, value) {
placeholder.determinate = true
placeholder.progressBar.value = value
placeholder.progressBar.from = min
placeholder.progressBar.to = max
}
function onLoginError(message) {
errorDialog.subtitle = message
errorDialog.open()
}
function onDalamudError(message) {
dalamudErrorDialog.subtitle = i18n("An error occured while updating Dalamud:\n\n%1.\n\nWould you like to disable Dalamud?", message);
dalamudErrorDialog.open();
}
}
}