put time column in loader, use fewer Behaviors

This commit is contained in:
end-4
2025-10-11 11:47:36 +02:00
parent 872e0762b6
commit 1e7e3a84c6
2 changed files with 23 additions and 20 deletions
@@ -77,7 +77,8 @@ Item {
anchors.fill: parent
color: root.colOnBackground
}
// Stupid extra hour marks in the middle
FadeLoader {
id: hourMarksLoader
anchors.centerIn: parent
@@ -90,11 +91,20 @@ Item {
}
// Number column in the middle
TimeColumn {
FadeLoader {
id: timeColumnLoader
anchors.centerIn: parent
color: root.colOnBackground
clockNumbers: root.clockNumbers
shown: Config.options.background.clock.cookie.timeIndicators
scale: 1.4 - 0.4 * timeColumnLoader.shown
Behavior on scale {
animation: Appearance.animation.elementResize.numberAnimation.createObject(this)
}
sourceComponent: TimeColumn {
color: root.colOnBackground
}
}
// Hour hand
HourHand {
@@ -10,11 +10,11 @@ import QtQuick.Layouts
ColumnLayout {
id: root
required property list<string> clockNumbers
property list<string> clockNumbers: DateTime.time.split(/[: ]/)
property bool isEnabled: Config.options.background.clock.cookie.timeIndicators
property color color: Appearance.colors.colOnSecondaryContainer
z: 0
property bool hourMarksEnabled: Config.options.background.clock.cookie.hourMarks
spacing: -16
Repeater {
@@ -22,31 +22,24 @@ ColumnLayout {
delegate: StyledText {
required property string modelData
property bool hourMarksEnabled: Config.options.background.clock.cookie.hourMarks
property bool isAmPm: !modelData.match(/\d{2}/i)
property real numberSizeWithoutGlow: isAmPm ? 26 : 68
property real numberSizeWithGlow: isAmPm ? 20 : 40
property real numberSize: root.isEnabled ? (hourMarksEnabled ? numberSizeWithGlow : numberSizeWithoutGlow) : 100 // open/close animation
property real numberSize: root.hourMarksEnabled ? numberSizeWithGlow : numberSizeWithoutGlow
anchors.horizontalCenter: root.horizontalCenter
visible: opacity > 0
color: root.color
opacity: root.isEnabled ? 1.0 : 0
Behavior on opacity {
animation: Appearance.animation.elementMoveFast.numberAnimation.createObject(this)
}
text: modelData.padStart(2, "0")
font {
family: Appearance.font.family.expressive
weight: Font.Bold
pixelSize: numberSize
Behavior on pixelSize {
animation: Appearance.animation.elementResize.numberAnimation.createObject(this)
}
}
Behavior on numberSize {
animation: Appearance.animation.elementResize.numberAnimation.createObject(this)
}
text: modelData.padStart(2, "0")
}
}
}