From 088431b20dafe75b25da0675718cffdd8718b5f6 Mon Sep 17 00:00:00 2001 From: ItsLemmy Date: Thu, 20 Nov 2025 21:38:00 -0500 Subject: [PATCH] Autoformatting + translations --- Assets/Translations/de.json | 29 +++++------ Assets/Translations/en.json | 28 +++++----- Assets/Translations/es.json | 29 +++++------ Assets/Translations/fr.json | 29 +++++------ Assets/Translations/nl.json | 29 +++++------ Assets/Translations/pt.json | 29 +++++------ Assets/Translations/ru.json | 29 +++++------ Assets/Translations/tr.json | 29 +++++------ Assets/Translations/uk-UA.json | 29 +++++------ Assets/Translations/zh-CN.json | 29 +++++------ Commons/Settings.qml | 2 +- Modules/Bar/Widgets/Microphone.qml | 8 +-- Modules/Bar/Widgets/Volume.qml | 8 +-- Modules/LockScreen/LockScreen.qml | 11 +--- Modules/Panels/Changelog/ChangelogPanel.qml | 17 +++--- .../Tabs/ColorScheme/SchemeDownloader.qml | 2 +- Services/Media/AudioService.qml | 20 +++---- Services/Noctalia/GitHubService.qml | 8 +-- Services/Noctalia/UpdateService.qml | 52 +++++++++---------- shell.qml | 2 +- 20 files changed, 201 insertions(+), 218 deletions(-) diff --git a/Assets/Translations/de.json b/Assets/Translations/de.json index 6b5b58ce2..b292886a9 100644 --- a/Assets/Translations/de.json +++ b/Assets/Translations/de.json @@ -396,29 +396,28 @@ } }, "changelog": { + "error": { + "rate-limit": "GitHub-Limit erreicht. Bitte versuche es in ein paar Minuten erneut." + }, "panel": { - "title": "Was ist neu in {version}", + "buttons": { + "discord": "Unserem Discord beitreten", + "dismiss": "Ok" + }, + "empty": "Es sind noch keine Versionshinweise verfügbar.", + "highlight-title": "Highlights", + "section": { + "released": "Veröffentlicht am {date}", + "version": "Version {version}" + }, "subtitle": { "fresh": "Danke, dass du Noctalia installiert hast! Das ist in diesem Build enthalten.", "updated": "Aktualisiert von {previousVersion}" }, + "title": "Was ist neu in {version}", "version": { "new-user": "Neuinstallation" - }, - "highlight-title": "Highlights", - "empty": "Es sind noch keine Versionshinweise verfügbar.", - "section": { - "version": "Version {version}", - "released": "Veröffentlicht am {date}" - }, - "buttons": { - "discord": "Unserem Discord beitreten", - "feedback": "Feedback senden", - "dismiss": "Ok" } - }, - "error": { - "rate-limit": "GitHub-Limit erreicht. Bitte versuche es in ein paar Minuten erneut." } }, "clock": { diff --git a/Assets/Translations/en.json b/Assets/Translations/en.json index 7ef497cf9..c4b6a4124 100644 --- a/Assets/Translations/en.json +++ b/Assets/Translations/en.json @@ -396,28 +396,28 @@ } }, "changelog": { + "error": { + "rate-limit": "GitHub rate limit exceeded. Please try again in a few minutes." + }, "panel": { - "title": "What's new in {version}", + "buttons": { + "discord": "Join our Discord", + "dismiss": "Ok" + }, + "empty": "Release notes are not available yet.", + "highlight-title": "Highlights", + "section": { + "released": "Released on {date}", + "version": "Version {version}" + }, "subtitle": { "fresh": "Thanks for installing Noctalia! Here is what’s included in this build.", "updated": "Updated from {previousVersion}" }, + "title": "What's new in {version}", "version": { "new-user": "Fresh install" - }, - "highlight-title": "Highlights", - "empty": "Release notes are not available yet.", - "section": { - "version": "Version {version}", - "released": "Released on {date}" - }, - "buttons": { - "discord": "Join our Discord", - "dismiss": "Ok" } - }, - "error": { - "rate-limit": "GitHub rate limit exceeded. Please try again in a few minutes." } }, "clock": { diff --git a/Assets/Translations/es.json b/Assets/Translations/es.json index 285ceff94..e368baa58 100644 --- a/Assets/Translations/es.json +++ b/Assets/Translations/es.json @@ -396,29 +396,28 @@ } }, "changelog": { + "error": { + "rate-limit": "Se alcanzó el límite de GitHub. Inténtalo de nuevo en unos minutos." + }, "panel": { - "title": "Novedades en {version}", + "buttons": { + "discord": "Únete a nuestro Discord", + "dismiss": "Ok" + }, + "empty": "Las notas de la versión aún no están disponibles.", + "highlight-title": "Cambios destacados", + "section": { + "released": "Publicado el {date}", + "version": "Versión {version}" + }, "subtitle": { "fresh": "Gracias por instalar Noctalia. Esto es lo que incluye esta compilación.", "updated": "Actualizado desde {previousVersion}" }, + "title": "Novedades en {version}", "version": { "new-user": "Instalación nueva" - }, - "highlight-title": "Cambios destacados", - "empty": "Las notas de la versión aún no están disponibles.", - "section": { - "version": "Versión {version}", - "released": "Publicado el {date}" - }, - "buttons": { - "discord": "Únete a nuestro Discord", - "feedback": "Enviar comentarios", - "dismiss": "Ok" } - }, - "error": { - "rate-limit": "Se alcanzó el límite de GitHub. Inténtalo de nuevo en unos minutos." } }, "clock": { diff --git a/Assets/Translations/fr.json b/Assets/Translations/fr.json index fdde3a3ac..8087a5fd5 100644 --- a/Assets/Translations/fr.json +++ b/Assets/Translations/fr.json @@ -396,29 +396,28 @@ } }, "changelog": { + "error": { + "rate-limit": "Limite de GitHub atteinte. Réessayez dans quelques minutes." + }, "panel": { - "title": "Quoi de neuf dans {version}", + "buttons": { + "discord": "Rejoindre notre Discord", + "dismiss": "Ok" + }, + "empty": "Les notes de version ne sont pas encore disponibles.", + "highlight-title": "Points importants", + "section": { + "released": "Publié le {date}", + "version": "Version {version}" + }, "subtitle": { "fresh": "Merci d’avoir installé Noctalia ! Voici ce que contient cette version.", "updated": "Mise à jour depuis {previousVersion}" }, + "title": "Quoi de neuf dans {version}", "version": { "new-user": "Nouvelle installation" - }, - "highlight-title": "Points importants", - "empty": "Les notes de version ne sont pas encore disponibles.", - "section": { - "version": "Version {version}", - "released": "Publié le {date}" - }, - "buttons": { - "discord": "Rejoindre notre Discord", - "feedback": "Envoyer un retour", - "dismiss": "Ok" } - }, - "error": { - "rate-limit": "Limite de GitHub atteinte. Réessayez dans quelques minutes." } }, "clock": { diff --git a/Assets/Translations/nl.json b/Assets/Translations/nl.json index 3b81242ec..b28366c96 100644 --- a/Assets/Translations/nl.json +++ b/Assets/Translations/nl.json @@ -396,29 +396,28 @@ } }, "changelog": { + "error": { + "rate-limit": "GitHub-limiet bereikt. Probeer het over enkele minuten opnieuw." + }, "panel": { - "title": "Wat is er nieuw in {version}", + "buttons": { + "discord": "Word lid van onze Discord", + "dismiss": "Ok" + }, + "empty": "Er zijn nog geen release-opmerkingen beschikbaar.", + "highlight-title": "Hoogtepunten", + "section": { + "released": "Uitgebracht op {date}", + "version": "Versie {version}" + }, "subtitle": { "fresh": "Bedankt voor het installeren van Noctalia! Dit zit er in deze build.", "updated": "Bijgewerkt vanaf {previousVersion}" }, + "title": "Wat is er nieuw in {version}", "version": { "new-user": "Nieuwe installatie" - }, - "highlight-title": "Hoogtepunten", - "empty": "Er zijn nog geen release-opmerkingen beschikbaar.", - "section": { - "version": "Versie {version}", - "released": "Uitgebracht op {date}" - }, - "buttons": { - "discord": "Word lid van onze Discord", - "feedback": "Feedback verzenden", - "dismiss": "Ok" } - }, - "error": { - "rate-limit": "GitHub-limiet bereikt. Probeer het over enkele minuten opnieuw." } }, "clock": { diff --git a/Assets/Translations/pt.json b/Assets/Translations/pt.json index bc1c73c9d..9388521ed 100644 --- a/Assets/Translations/pt.json +++ b/Assets/Translations/pt.json @@ -396,29 +396,28 @@ } }, "changelog": { + "error": { + "rate-limit": "Limite do GitHub atingido. Tente novamente em alguns minutos." + }, "panel": { - "title": "Novidades na {version}", + "buttons": { + "discord": "Entre no nosso Discord", + "dismiss": "Ok" + }, + "empty": "As notas da versão ainda não estão disponíveis.", + "highlight-title": "Destaques", + "section": { + "released": "Lançado em {date}", + "version": "Versão {version}" + }, "subtitle": { "fresh": "Obrigado por instalar o Noctalia! Veja o que está incluído nesta compilação.", "updated": "Atualizado a partir da {previousVersion}" }, + "title": "Novidades na {version}", "version": { "new-user": "Nova instalação" - }, - "highlight-title": "Destaques", - "empty": "As notas da versão ainda não estão disponíveis.", - "section": { - "version": "Versão {version}", - "released": "Lançado em {date}" - }, - "buttons": { - "discord": "Entre no nosso Discord", - "feedback": "Enviar feedback", - "dismiss": "Ok" } - }, - "error": { - "rate-limit": "Limite do GitHub atingido. Tente novamente em alguns minutos." } }, "clock": { diff --git a/Assets/Translations/ru.json b/Assets/Translations/ru.json index 1b38f8514..c89fdecd2 100644 --- a/Assets/Translations/ru.json +++ b/Assets/Translations/ru.json @@ -396,29 +396,28 @@ } }, "changelog": { + "error": { + "rate-limit": "Превышен лимит GitHub. Попробуйте снова через несколько минут." + }, "panel": { - "title": "Что нового в {version}", + "buttons": { + "discord": "Присоединиться к нашему Discord", + "dismiss": "Ок" + }, + "empty": "Примечания к выпуску пока недоступны.", + "highlight-title": "Основные изменения", + "section": { + "released": "Выпущено {date}", + "version": "Версия {version}" + }, "subtitle": { "fresh": "Спасибо за установку Noctalia! Вот что входит в этот билд.", "updated": "Обновлено с {previousVersion}" }, + "title": "Что нового в {version}", "version": { "new-user": "Новая установка" - }, - "highlight-title": "Основные изменения", - "empty": "Примечания к выпуску пока недоступны.", - "section": { - "version": "Версия {version}", - "released": "Выпущено {date}" - }, - "buttons": { - "discord": "Присоединиться к нашему Discord", - "feedback": "Отправить отзыв", - "dismiss": "Ок" } - }, - "error": { - "rate-limit": "Превышен лимит GitHub. Попробуйте снова через несколько минут." } }, "clock": { diff --git a/Assets/Translations/tr.json b/Assets/Translations/tr.json index ff31b078b..43028a337 100644 --- a/Assets/Translations/tr.json +++ b/Assets/Translations/tr.json @@ -396,29 +396,28 @@ } }, "changelog": { + "error": { + "rate-limit": "GitHub sınırına ulaşıldı. Lütfen birkaç dakika sonra tekrar dene." + }, "panel": { - "title": "{version} sürümünde neler yeni", + "buttons": { + "discord": "Discord sunucumuza katıl", + "dismiss": "Tamam" + }, + "empty": "Sürüm notları henüz hazır değil.", + "highlight-title": "Öne çıkanlar", + "section": { + "released": "{date} tarihinde yayımlandı", + "version": "Sürüm {version}" + }, "subtitle": { "fresh": "Noctalia’yı kurduğun için teşekkürler! Bu sürümde gelenler bunlar.", "updated": "{previousVersion} sürümünden güncellendi" }, + "title": "{version} sürümünde neler yeni", "version": { "new-user": "Yeni kurulum" - }, - "highlight-title": "Öne çıkanlar", - "empty": "Sürüm notları henüz hazır değil.", - "section": { - "version": "Sürüm {version}", - "released": "{date} tarihinde yayımlandı" - }, - "buttons": { - "discord": "Discord sunucumuza katıl", - "feedback": "Geri bildirim gönder", - "dismiss": "Tamam" } - }, - "error": { - "rate-limit": "GitHub sınırına ulaşıldı. Lütfen birkaç dakika sonra tekrar dene." } }, "clock": { diff --git a/Assets/Translations/uk-UA.json b/Assets/Translations/uk-UA.json index a5b9165e1..19ee1346c 100644 --- a/Assets/Translations/uk-UA.json +++ b/Assets/Translations/uk-UA.json @@ -396,29 +396,28 @@ } }, "changelog": { + "error": { + "rate-limit": "Перевищено ліміт GitHub. Спробуйте ще раз за кілька хвилин." + }, "panel": { - "title": "Що нового у {version}", + "buttons": { + "discord": "Приєднатися до нашого Discord", + "dismiss": "Ок" + }, + "empty": "Примітки до релізу ще недоступні.", + "highlight-title": "Основні зміни", + "section": { + "released": "Випущено {date}", + "version": "Версія {version}" + }, "subtitle": { "fresh": "Дякуємо, що встановили Noctalia! Ось що містить цей білд.", "updated": "Оновлено з {previousVersion}" }, + "title": "Що нового у {version}", "version": { "new-user": "Нове встановлення" - }, - "highlight-title": "Основні зміни", - "empty": "Примітки до релізу ще недоступні.", - "section": { - "version": "Версія {version}", - "released": "Випущено {date}" - }, - "buttons": { - "discord": "Приєднатися до нашого Discord", - "feedback": "Надіслати відгук", - "dismiss": "Ок" } - }, - "error": { - "rate-limit": "Перевищено ліміт GitHub. Спробуйте ще раз за кілька хвилин." } }, "clock": { diff --git a/Assets/Translations/zh-CN.json b/Assets/Translations/zh-CN.json index ec203be59..c8c253b3a 100644 --- a/Assets/Translations/zh-CN.json +++ b/Assets/Translations/zh-CN.json @@ -396,29 +396,28 @@ } }, "changelog": { + "error": { + "rate-limit": "已达到 GitHub 速率限制,请稍后再试。" + }, "panel": { - "title": "{version} 有哪些更新", + "buttons": { + "discord": "加入我们的 Discord", + "dismiss": "确定" + }, + "empty": "暂时没有可用的发行说明。", + "highlight-title": "重点更新", + "section": { + "released": "{date} 发布", + "version": "版本 {version}" + }, "subtitle": { "fresh": "感谢安装 Noctalia!以下是本次构建包含的内容。", "updated": "已从 {previousVersion} 更新" }, + "title": "{version} 有哪些更新", "version": { "new-user": "全新安装" - }, - "highlight-title": "重点更新", - "empty": "暂时没有可用的发行说明。", - "section": { - "version": "版本 {version}", - "released": "{date} 发布" - }, - "buttons": { - "discord": "加入我们的 Discord", - "feedback": "发送反馈", - "dismiss": "确定" } - }, - "error": { - "rate-limit": "已达到 GitHub 速率限制,请稍后再试。" } }, "clock": { diff --git a/Commons/Settings.qml b/Commons/Settings.qml index 2c7bf8a51..fd5973884 100644 --- a/Commons/Settings.qml +++ b/Commons/Settings.qml @@ -828,4 +828,4 @@ Singleton { const widgetAfter = JSON.stringify(widget); return (widgetAfter !== widgetBefore); } -} \ No newline at end of file +} diff --git a/Modules/Bar/Widgets/Microphone.qml b/Modules/Bar/Widgets/Microphone.qml index 232c170be..2da15fe1f 100644 --- a/Modules/Bar/Widgets/Microphone.qml +++ b/Modules/Bar/Widgets/Microphone.qml @@ -144,10 +144,10 @@ Item { forceClose: displayMode === "alwaysHide" tooltipText: I18n.tr("tooltips.microphone-volume-at", { "volume": (() => { - const maxVolume = Settings.data.audio.volumeOverdrive ? 1.5 : 1.0; - const displayVolume = Math.min(maxVolume, AudioService.inputVolume); - return Math.round(displayVolume * 100); - })() + const maxVolume = Settings.data.audio.volumeOverdrive ? 1.5 : 1.0; + const displayVolume = Math.min(maxVolume, AudioService.inputVolume); + return Math.round(displayVolume * 100); + })() }) onWheel: function (delta) { diff --git a/Modules/Bar/Widgets/Volume.qml b/Modules/Bar/Widgets/Volume.qml index 37faf7dd2..72f453b49 100644 --- a/Modules/Bar/Widgets/Volume.qml +++ b/Modules/Bar/Widgets/Volume.qml @@ -127,10 +127,10 @@ Item { forceClose: displayMode === "alwaysHide" tooltipText: I18n.tr("tooltips.volume-at", { "volume": (() => { - const maxVolume = Settings.data.audio.volumeOverdrive ? 1.5 : 1.0; - const displayVolume = Math.min(maxVolume, AudioService.volume); - return Math.round(displayVolume * 100); - })() + const maxVolume = Settings.data.audio.volumeOverdrive ? 1.5 : 1.0; + const displayVolume = Math.min(maxVolume, AudioService.volume); + return Math.round(displayVolume * 100); + })() }) onWheel: function (delta) { diff --git a/Modules/LockScreen/LockScreen.qml b/Modules/LockScreen/LockScreen.qml index 7884ad9ee..f5af0071c 100644 --- a/Modules/LockScreen/LockScreen.qml +++ b/Modules/LockScreen/LockScreen.qml @@ -602,12 +602,7 @@ Loader { } // Calculate maximum width needed - property real maxTextWidth: Math.max( - logoutText.implicitWidth, - Math.max(suspendText.implicitWidth, - Math.max(hibernateText.implicitWidth, - Math.max(rebootText.implicitWidth, - shutdownText.implicitWidth)))) + property real maxTextWidth: Math.max(logoutText.implicitWidth, Math.max(suspendText.implicitWidth, Math.max(hibernateText.implicitWidth, Math.max(rebootText.implicitWidth, shutdownText.implicitWidth)))) property real minButtonWidth: maxTextWidth + iconSize + spacing + padding } @@ -615,9 +610,7 @@ Loader { // Button row needs: margins + 5 buttons + 4 spacings + margins // Plus ColumnLayout margins (14 on each side = 28 total) // Add extra buffer to ensure password input has proper padding - property real minButtonRowWidth: buttonRowTextMeasurer.minButtonWidth > 0 - ? (5 * buttonRowTextMeasurer.minButtonWidth) + 40 + (2 * Style.marginM) + 28 + (2 * Style.marginM) - : 750 + property real minButtonRowWidth: buttonRowTextMeasurer.minButtonWidth > 0 ? (5 * buttonRowTextMeasurer.minButtonWidth) + 40 + (2 * Style.marginM) + 28 + (2 * Style.marginM) : 750 width: Math.max(750, minButtonRowWidth) ColumnLayout { diff --git a/Modules/Panels/Changelog/ChangelogPanel.qml b/Modules/Panels/Changelog/ChangelogPanel.qml index 8c275f45c..e9259bd4c 100644 --- a/Modules/Panels/Changelog/ChangelogPanel.qml +++ b/Modules/Panels/Changelog/ChangelogPanel.qml @@ -21,8 +21,8 @@ SmartPanel { readonly property bool hasPreviousVersion: previousVersion && previousVersion.length > 0 readonly property var releaseHighlights: UpdateService.releaseHighlights || [] readonly property string subtitleText: hasPreviousVersion ? I18n.tr("changelog.panel.subtitle.updated", { - "previousVersion": previousVersion - }) : I18n.tr("changelog.panel.subtitle.fresh") + "previousVersion": previousVersion + }) : I18n.tr("changelog.panel.subtitle.fresh") panelContent: Rectangle { color: Color.mSurfaceVariant @@ -51,8 +51,8 @@ SmartPanel { NText { text: I18n.tr("changelog.panel.title", { - "version": currentVersion || UpdateService.currentVersion - }) + "version": currentVersion || UpdateService.currentVersion + }) pointSize: Style.fontSizeXL font.weight: Style.fontWeightBold color: Color.mPrimary @@ -149,8 +149,8 @@ SmartPanel { NText { text: I18n.tr("changelog.panel.section.version", { - "version": modelData.version || I18n.tr("system.unknown-version") - }) + "version": modelData.version || I18n.tr("system.unknown-version") + }) font.weight: Style.fontWeightBold color: Color.mOnSurface } @@ -158,8 +158,8 @@ SmartPanel { NText { visible: modelData.date && modelData.date.length > 0 text: I18n.tr("changelog.panel.section.released", { - "date": root.formatReleaseDate(modelData.date) - }) + "date": root.formatReleaseDate(modelData.date) + }) color: Color.mOnSurfaceVariant pointSize: Style.fontSizeXS } @@ -262,4 +262,3 @@ SmartPanel { } } } - diff --git a/Modules/Panels/Settings/Tabs/ColorScheme/SchemeDownloader.qml b/Modules/Panels/Settings/Tabs/ColorScheme/SchemeDownloader.qml index f647e2758..532a90028 100644 --- a/Modules/Panels/Settings/Tabs/ColorScheme/SchemeDownloader.qml +++ b/Modules/Panels/Settings/Tabs/ColorScheme/SchemeDownloader.qml @@ -938,4 +938,4 @@ Popup { } } } -} \ No newline at end of file +} diff --git a/Services/Media/AudioService.qml b/Services/Media/AudioService.qml index 466076394..6fb76e29c 100644 --- a/Services/Media/AudioService.qml +++ b/Services/Media/AudioService.qml @@ -94,11 +94,11 @@ Singleton { if (vol > maxVolume) { root.isClampingOutput = true; Qt.callLater(() => { - if (root.sink?.audio) { - root.sink.audio.volume = maxVolume; - } - root.isClampingOutput = false; - }); + if (root.sink?.audio) { + root.sink.audio.volume = maxVolume; + } + root.isClampingOutput = false; + }); return; } } @@ -131,11 +131,11 @@ Singleton { if (vol > maxVolume) { root.isClampingInput = true; Qt.callLater(() => { - if (root.source?.audio) { - root.source.audio.volume = maxVolume; - } - root.isClampingInput = false; - }); + if (root.source?.audio) { + root.source.audio.volume = maxVolume; + } + root.isClampingInput = false; + }); return; } } diff --git a/Services/Noctalia/GitHubService.qml b/Services/Noctalia/GitHubService.qml index 01d353cfe..41b2f265a 100644 --- a/Services/Noctalia/GitHubService.qml +++ b/Services/Noctalia/GitHubService.qml @@ -227,10 +227,10 @@ Singleton { const parsed = responseText ? JSON.parse(responseText) : []; if (Array.isArray(parsed) && parsed.length > 0) { const mapped = parsed.map(rel => ({ - "version": rel.tag_name || "", - "createdAt": rel.published_at || rel.created_at || "", - "body": rel.body || "" - })).filter(rel => rel.version !== ""); + "version": rel.tag_name || "", + "createdAt": rel.published_at || rel.created_at || "", + "body": rel.body || "" + })).filter(rel => rel.version !== ""); releasesAccumulator = releasesAccumulator.concat(mapped); if (parsed.length === perPage) { diff --git a/Services/Noctalia/UpdateService.qml b/Services/Noctalia/UpdateService.qml index e72986a68..c65f61e24 100644 --- a/Services/Noctalia/UpdateService.qml +++ b/Services/Noctalia/UpdateService.qml @@ -33,7 +33,7 @@ Singleton { property string changelogLastSeenVersion: "" property bool changelogStateLoaded: false property bool pendingShowRequest: false - + // Fix for FileView race condition property bool saveInProgress: false property bool pendingSave: false @@ -108,7 +108,7 @@ Singleton { function handleChangelogRequest() { const fromVersion = changelogFromVersion || ""; const toVersion = changelogToVersion || ""; - + if (!toVersion) return; @@ -165,10 +165,10 @@ Singleton { continue; selected.push({ - "version": tag, - "date": rel.createdAt || "", - "entries": entries - }); + "version": tag, + "date": rel.createdAt || "", + "entries": entries + }); } } @@ -176,10 +176,10 @@ Singleton { const fallback = parseReleaseNotes(GitHubService ? GitHubService.releaseNotes : ""); if (fallback.length > 0) { selected.push({ - "version": toVersion, - "date": "", - "entries": fallback - }); + "version": toVersion, + "date": "", + "entries": fallback + }); fetchError = ""; } } @@ -412,25 +412,25 @@ Singleton { try { changelogStateAdapter.lastSeenVersion = changelogLastSeenVersion || ""; - + // Ensure cache directory exists Quickshell.execDetached(["mkdir", "-p", Settings.cacheDir]); - + // Small delay to ensure directory creation completes Qt.callLater(() => { - try { - changelogStateFileView.writeAdapter(); - saveInProgress = false; - - // Check if another save was queued while we were saving - if (pendingSave) { - Qt.callLater(executeSave); - } - } catch (writeError) { - Logger.e("UpdateService", "Failed to write changelog state:", writeError); - saveInProgress = false; - } - }); + try { + changelogStateFileView.writeAdapter(); + saveInProgress = false; + + // Check if another save was queued while we were saving + if (pendingSave) { + Qt.callLater(executeSave); + } + } catch (writeError) { + Logger.e("UpdateService", "Failed to write changelog state:", writeError); + saveInProgress = false; + } + }); } catch (error) { Logger.e("UpdateService", "Failed to save changelog state:", error); saveInProgress = false; @@ -441,4 +441,4 @@ Singleton { // Immediate save (backward compatibility) debouncedSaveChangelogState(); } -} \ No newline at end of file +} diff --git a/shell.qml b/shell.qml index ffb7191d5..24fa38f6f 100644 --- a/shell.qml +++ b/shell.qml @@ -26,11 +26,11 @@ import qs.Services.Control import qs.Services.Hardware import qs.Services.Location import qs.Services.Networking +import qs.Services.Noctalia import qs.Services.Power import qs.Services.System import qs.Services.Theming import qs.Services.UI -import qs.Services.Noctalia ShellRoot { id: shellRoot