diff --git a/Assets/Translations/de.json b/Assets/Translations/de.json index 58b3effb..c0175e18 100644 --- a/Assets/Translations/de.json +++ b/Assets/Translations/de.json @@ -1750,6 +1750,10 @@ "disabled": "Hintergrundbild-Farben deaktiviert", "not-installed": "Matugen nicht installiert - erforderlich für Hintergrundbild-Farbextraktion" }, + "matugen": { + "failed": "Matugen-Verarbeitung fehlgeschlagen", + "failed-general": "Matugen ist beim Verarbeiten der Vorlagen auf einen Fehler gestoßen" + }, "recording": { "stopping": "Aufnahme wird gestoppt…", "started": "Aufnahme gestartet", diff --git a/Assets/Translations/en.json b/Assets/Translations/en.json index 295ec78d..e3a75c26 100644 --- a/Assets/Translations/en.json +++ b/Assets/Translations/en.json @@ -1710,6 +1710,10 @@ "disabled": "Wallpaper colors disabled", "not-installed": "Matugen not installed - required for wallpaper color extraction" }, + "matugen": { + "failed": "Matugen processing failed", + "failed-general": "Matugen encountered an error while processing templates" + }, "recording": { "stopping": "Stopping recording…", "started": "Recording started", diff --git a/Assets/Translations/es.json b/Assets/Translations/es.json index c45e5b29..6788c60a 100644 --- a/Assets/Translations/es.json +++ b/Assets/Translations/es.json @@ -1710,6 +1710,10 @@ "disabled": "Colores del fondo de pantalla desactivados", "not-installed": "Matugen no instalado - requerido para extraer colores del fondo de pantalla" }, + "matugen": { + "failed": "Error en el procesamiento de Matugen", + "failed-general": "Matugen encontró un error al procesar las plantillas" + }, "recording": { "stopping": "Deteniendo grabación...", "started": "Grabación iniciada", diff --git a/Assets/Translations/fr.json b/Assets/Translations/fr.json index bfe75b6f..e15dd8c8 100644 --- a/Assets/Translations/fr.json +++ b/Assets/Translations/fr.json @@ -1710,6 +1710,10 @@ "disabled": "Couleurs du fond d'écran désactivées", "not-installed": "Matugen non installé - requis pour l'extraction des couleurs du fond d'écran" }, + "matugen": { + "failed": "Échec du traitement Matugen", + "failed-general": "Matugen a rencontré une erreur lors du traitement des modèles" + }, "recording": { "stopping": "Arrêt de l'enregistrement...", "started": "Enregistrement démarré", diff --git a/Assets/Translations/pt.json b/Assets/Translations/pt.json index 287d55b3..40a34a6b 100644 --- a/Assets/Translations/pt.json +++ b/Assets/Translations/pt.json @@ -1710,6 +1710,10 @@ "disabled": "Cores do papel de parede desativadas", "not-installed": "Matugen não instalado - necessário para extração de cores do papel de parede" }, + "matugen": { + "failed": "Falha no processamento do Matugen", + "failed-general": "Matugen encontrou um erro ao processar os modelos" + }, "recording": { "stopping": "Parando gravação…", "started": "Gravação iniciada", diff --git a/Assets/Translations/zh-CN.json b/Assets/Translations/zh-CN.json index d931e996..00dd8bf7 100644 --- a/Assets/Translations/zh-CN.json +++ b/Assets/Translations/zh-CN.json @@ -1710,6 +1710,10 @@ "disabled": "壁纸颜色已禁用", "not-installed": "Matugen 未安装 - 壁纸颜色提取所需" }, + "matugen": { + "failed": "Matugen 处理失败", + "failed-general": "Matugen 在处理模板时遇到错误" + }, "recording": { "stopping": "正在停止录制…", "started": "录制已开始", diff --git a/Services/AppThemeService.qml b/Services/AppThemeService.qml index 5d02ffae..f04c78f1 100644 --- a/Services/AppThemeService.qml +++ b/Services/AppThemeService.qml @@ -454,6 +454,30 @@ Singleton { id: generateProcess workingDirectory: Quickshell.shellDir running: false + + onExited: function (exitCode) { + if (exitCode !== 0) { + // Capture error output from stderr first, then stdout, or use fallback message + const errorMsg = (stderr.text && stderr.text.trim() !== "") + ? stderr.text.trim() + : ((stdout.text && stdout.text.trim() !== "") + ? stdout.text.trim() + : I18n.tr("toast.matugen.failed-general")) + Logger.e("AppThemeService", "Matugen process failed with exit code:", exitCode) + if (stderr.text && stderr.text.trim() !== "") { + Logger.e("AppThemeService", "Matugen stderr:", stderr.text) + } + if (stdout.text && stdout.text.trim() !== "") { + Logger.e("AppThemeService", "Matugen stdout:", stdout.text) + } + ToastService.showError( + I18n.tr("toast.matugen.failed"), + errorMsg, + 6000 + ) + } + } + stdout: StdioCollector { onStreamFinished: { if (this.text) {