background: add option to only show clock when locked (#2387)

This commit is contained in:
end-4
2025-11-09 13:57:29 +01:00
parent 8b5a790d54
commit 14c115f80a
3 changed files with 15 additions and 4 deletions
@@ -148,6 +148,7 @@ Singleton {
property JsonObject widgets: JsonObject {
property JsonObject clock: JsonObject {
property bool enable: true
property bool showOnlyWhenLocked: false
property string placementStrategy: "leastBusy" // "free", "leastBusy", "mostBusy"
property real x: 100
property real y: 100
@@ -16,8 +16,9 @@ AbstractBackgroundWidget {
implicitHeight: contentColumn.implicitHeight
implicitWidth: contentColumn.implicitWidth
property string clockStyle: Config.options.background.widgets.clock.style
property bool forceCenter: (GlobalStates.screenLocked && Config.options.lock.centerClock)
readonly property string clockStyle: Config.options.background.widgets.clock.style
readonly property bool forceCenter: (GlobalStates.screenLocked && Config.options.lock.centerClock)
readonly property bool shouldShow: (!Config.options.background.widgets.clock.showOnlyWhenLocked || GlobalStates.screenLocked)
property bool wallpaperSafetyTriggered: false
needsColText: clockStyle === "digital"
x: forceCenter ? ((root.screenWidth - root.width) / 2) : targetX
@@ -42,7 +43,7 @@ AbstractBackgroundWidget {
FadeLoader {
id: cookieClockLoader
anchors.horizontalCenter: parent.horizontalCenter
shown: root.clockStyle === "cookie"
shown: root.clockStyle === "cookie" && (root.shouldShow)
sourceComponent: Column {
CookieClock {
anchors.horizontalCenter: parent.horizontalCenter
@@ -58,7 +59,7 @@ AbstractBackgroundWidget {
FadeLoader {
id: digitalClockLoader
anchors.horizontalCenter: parent.horizontalCenter
shown: root.clockStyle === "digital"
shown: root.clockStyle === "digital" && (root.shouldShow)
sourceComponent: ColumnLayout {
id: clockColumn
spacing: 6
@@ -97,6 +97,15 @@ ContentPage {
}
}
ConfigSwitch {
buttonIcon: "lock_clock"
text: Translation.tr("Show only when locked")
checked: Config.options.background.widgets.clock.showOnlyWhenLocked
onCheckedChanged: {
Config.options.background.widgets.clock.showOnlyWhenLocked = checked;
}
}
ContentSubsection {
title: Translation.tr("Clock style")
ConfigSelectionArray {