Merge remote-tracking branch 'upstream/main' into layout_service

This commit is contained in:
end-4
2025-07-23 22:18:22 +07:00
parent ffeb27f04e
commit 5870632c19
319 changed files with 12426 additions and 4803 deletions
@@ -0,0 +1,58 @@
import qs.modules.common
import qs.modules.common.widgets
import QtQuick
import QtQuick.Layouts
RippleButton {
id: button
property string buttonIcon
property string buttonText
property bool keyboardDown: false
property real size: 120
buttonRadius: (button.focus || button.down) ? size / 2 : Appearance.rounding.verylarge
colBackground: button.keyboardDown ? Appearance.colors.colSecondaryContainerActive :
button.focus ? Appearance.colors.colPrimary :
Appearance.colors.colSecondaryContainer
colBackgroundHover: Appearance.colors.colPrimary
colRipple: Appearance.colors.colPrimaryActive
property color colText: (button.down || button.keyboardDown || button.focus || button.hovered) ?
Appearance.m3colors.m3onPrimary : Appearance.colors.colOnLayer0
Layout.alignment: Qt.AlignHCenter | Qt.AlignVCenter
background.implicitHeight: size
background.implicitWidth: size
Behavior on buttonRadius {
animation: Appearance.animation.elementMoveFast.numberAnimation.createObject(this)
}
Keys.onPressed: (event) => {
if (event.key === Qt.Key_Return || event.key === Qt.Key_Enter) {
keyboardDown = true
button.clicked()
event.accepted = true;
}
}
Keys.onReleased: (event) => {
if (event.key === Qt.Key_Return || event.key === Qt.Key_Enter) {
keyboardDown = false
event.accepted = true;
}
}
contentItem: MaterialSymbol {
id: icon
anchors.fill: parent
color: button.colText
horizontalAlignment: Text.AlignHCenter
iconSize: 45
text: buttonIcon
}
StyledToolTip {
content: buttonText
}
}