SchemeDownloader: display proper errors

This commit is contained in:
Ly-sec
2025-11-19 23:11:30 +01:00
parent da8fa306a1
commit 19672a3d46

View File

@@ -18,6 +18,7 @@ Popup {
property string downloadError: ""
property string downloadingScheme: ""
property string pendingApplyScheme: "" // Scheme name to apply after reload
property string lastStderrOutput: "" // Store stderr from download process
property real lastApiFetchTime: 0 // Track when we last fetched from API to prevent rapid calls
property int minApiFetchInterval: 60 // Minimum seconds between API fetches (1 minute)
@@ -547,6 +548,7 @@ Popup {
Logger.d("ColorSchemeDownload", "Downloading", files.length, "files for scheme", schemeName);
// Execute download script
var stderrOutput = "";
var downloadProcess = Qt.createQmlObject(`
import QtQuick
import Quickshell.Io
@@ -557,6 +559,7 @@ Popup {
onStreamFinished: {
if (text && text.trim()) {
Logger.e("ColorSchemeDownload", "Download stderr:", text);
root.lastStderrOutput = text.trim();
}
}
}
@@ -576,16 +579,21 @@ Popup {
downloading = false;
downloadingScheme = "";
} else {
var errorDetails = "Exit code: " + exitCode;
if (root.lastStderrOutput) {
errorDetails += " - " + root.lastStderrOutput;
}
downloadError = I18n.tr("settings.color-scheme.download.error.download-failed", {
"code": exitCode
});
}) + "\n" + errorDetails;
Logger.e("ColorSchemeDownload", downloadError);
ToastService.showError(I18n.tr("settings.color-scheme.download.error.title"), I18n.tr("settings.color-scheme.download.error.description", {
"scheme": schemeName
}));
}) + "\n" + errorDetails);
downloading = false;
downloadingScheme = "";
}
root.lastStderrOutput = "";
downloadProcess.destroy();
});
@@ -930,4 +938,4 @@ Popup {
}
}
}
}
}