separate dashboard and settings changes to new branch
C++ / fmt (pull_request) Successful in 6s
C++ / build (pull_request) Failing after 10s
C++ / clang-tidy (pull_request) Failing after 9s
JS/TS / fmt (pull_request) Successful in 11s
JS/TS / lint (pull_request) Successful in 9s
Python / static (pull_request) Successful in 28s
Rust / build (pull_request) Successful in 49s
Python / verify (pull_request) Successful in 1m40s
Rust / fmt (pull_request) Successful in 26s
Rust / clippy (pull_request) Successful in 46s

This commit is contained in:
2026-09-30 15:11:51 +02:00
parent 83bc153ee3
commit 4f797a9741
6 changed files with 185 additions and 5 deletions
@@ -170,7 +170,7 @@ Item {
Layout.fillWidth: ChatState.isWindow ? false : true
Layout.alignment: ChatState.isWindow ? Qt.AlignCenter : Qt.AlignLeft | Qt.AlignVCenter
elide: Text.ElideRight
font.pointSize: Tokens.font.size.larger
font: Tokens.font.title.medium
text: qsTr(root.chatData.title)
}
}
@@ -346,7 +346,7 @@ Item {
id: scrollToBottom
anchors.centerIn: parent
font.pointSize: Tokens.font.size.large
font: Tokens.font.icon.large
icon: "arrow_downward"
isRound: true
padding: Tokens.padding.extraSmall
@@ -455,7 +455,7 @@ Item {
MaterialIcon {
anchors.centerIn: parent
font.pointSize: Tokens.font.size.extraLarge
font.pointSize: Tokens.font.size.large
text: thumb.fileIcon(thumb.modelData?.mimeType ?? "")
visible: !thumb.modelData?.isImage ?? false
}
@@ -537,13 +537,15 @@ Item {
anchors.bottom: parent.bottom
anchors.left: parent.left
anchors.right: parent.right
anchors.margins: Tokens.padding.medium
bg.border.color: Colors.palette.m3outlineVariant
bg.color: Colors.tPalette.m3surfaceContainerLowest
font.pointSize: Tokens.font.size.normal
fastGlow: Chat.busy
font: Tokens.font.body.small
implicitHeight: Math.min(root.height / 5, contentHeight + topPadding + bottomPadding)
focus: true
placeholderText: qsTr("Send a message")
sendIcon.font.pointSize: Tokens.font.size.large
sendIcon.font: Tokens.font.icon.medium
sendIcon.icon: "arrow_upward"
sendIcon.padding: Tokens.padding.extraSmall
@@ -9,6 +9,8 @@ TextAreaBase {
readonly property alias bg: bg
readonly property alias sendIcon: sendIcon
property bool fastGlow: false
signal sendPressed
bottomPadding: Tokens.padding.large
@@ -17,6 +19,16 @@ TextAreaBase {
topPadding: Tokens.padding.large
wrapMode: TextAreaBase.Wrap
onFastGlowChanged: {
if (fastGlow) {
resetAnim.stop();
boostAnim.restart();
} else {
boostAnim.stop();
resetAnim.restart();
}
}
background: CustomRect {
id: bg
@@ -24,6 +36,47 @@ TextAreaBase {
color: Colors.tPalette.m3surfaceContainer
radius: Tokens.rounding.extraLarge
GeminiGlow {
id: glow
glowSize: 32
opacity: root.activeFocus ? 1 : 0
visible: opacity > 0
Behavior on opacity {
Anim {}
}
SequentialAnimation {
id: boostAnim
NumberAnimation {
target: glow
property: "speed"
to: 4.0
duration: 250
easing.type: Easing.OutCubic
}
NumberAnimation {
target: glow
property: "speed"
to: 2.25
duration: 1500
easing.type: Easing.InOutQuad
}
}
// Ease back down to normal once fastGlow is false
NumberAnimation {
id: resetAnim
target: glow
property: "speed"
to: 1.0
duration: 800
easing.type: Easing.InOutQuad
}
}
StateLayer {
id: stateLayer