rotated view + wheel inverter

This commit is contained in:
2026-08-26 17:10:34 +02:00
parent 78988700be
commit c33dbc147f
7 changed files with 341 additions and 135 deletions
@@ -11,7 +11,7 @@ import qs.Services
MouseArea {
id: root
readonly property ChatGeneration current: modelData.activeGeneration
property ChatGeneration current: modelData.activeGeneration
required property int index
readonly property bool isUser: modelData.role === ChatMessage.Role.User
required property ChatMessage modelData
@@ -60,22 +60,79 @@ MouseArea {
}
}
}
return blocks;
}
implicitWidth: ListView.view.width
hoverEnabled: true
preventStealing: true
preventStealing: false
implicitHeight: layout.implicitHeight + Tokens.padding.medium
Binding {
property: "contentY"
restoreMode: Binding.RestoreNone
target: root.ListView.view
value: root.y - Tokens.padding.large * 2
when: root.reasoningExpanded && root.ListView.view && ((root.y - Tokens.padding.large * 2) < root.ListView.view.contentY)
Behavior on current {
id: changeAnim
property var object: targetProperty
readonly property bool next: {
const cond = root.modelData.generations.indexOf(current) < root.modelData.generations.indexOf(changeAnim.targetValue);
return cond;
}
animation: SequentialAnimation {
ParallelAnimation {
Anim {
target: root
property: "x"
to: changeAnim.next ? -root.width / 2 : root.width / 2
from: 0
}
Anim {
target: root
property: "opacity"
from: 1
to: 0
}
}
PropertyAction {}
ParallelAnimation {
Anim {
target: root
property: "x"
from: changeAnim.next ? root.width / 2 : -root.width / 2
to: 0
}
Anim {
target: root
property: "opacity"
from: 0
to: 1
}
}
}
}
// Behavior on implicitHeight {
// enabled: !root.isUser && root.current.streaming
//
// Anim {}
// }
onCurrentChanged: {
console.log(modelData.generations.indexOf(current));
}
// Binding {
// property: "contentY"
// restoreMode: Binding.RestoreNone
// target: root.ListView.view
// value: root.y - Tokens.padding.large * 2
// when: root.reasoningExpanded && root.ListView.view && ((root.y - Tokens.padding.large * 2) < root.ListView.view.contentY)
// }
Anim {
id: restoreAnim
@@ -91,6 +148,20 @@ MouseArea {
anchors.left: parent.left
anchors.right: parent.right
// onImplicitHeightChanged: console.log("LAYOUT:", layout.implicitHeight)
// add: Transition {
// Anim {
// from: 10
// property: "y"
// }
// }
// move: Transition {
// Anim {
// property: "y"
// }
// }
Repeater {
id: segmentRep
@@ -105,12 +176,8 @@ MouseArea {
roleValue: "process"
delegate: ProcessBlock {
required property int index
required property var modelData
segments: modelData.segments
isActive: index === root.blocks.length - 1
width: root.width
blocks: root.blocks
onExpandedChanged: root.handleReasoningToggle(expanded)
}