Revision control

Copy as Markdown

// Copyright (C) 2026 The Qt Company Ltd.
// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR BSD-3-Clause
import QtQuick
import QtQuick.Controls
import QtQuick.Controls.Material
import chat_example
Rectangle {
id: root
anchors.centerIn: parent
color: Material.backgroundColor
signal closePage()
signal openChatPage()
ScrollView {
id: textBgScroll
width: parent.width * 0.9
height: parent.height * 0.8
anchors.top: parent.top
anchors.topMargin: 20
anchors.horizontalCenter: parent.horizontalCenter
background: Rectangle {
color: "#1E1E1E"
radius: 10
gradient: Gradient {
GradientStop { position: 0.0; color: "#4A148C" }
GradientStop { position: 1.0; color: "#7B1FA2" }
}
Behavior on gradient {
NumberAnimation { duration: 150 }
}
}
ScrollBar.vertical: ScrollBar {
id: vbar
anchors.top: parent.top
anchors.topMargin: 19
anchors.right: parent.right
anchors.rightMargin: 13
anchors.bottom: parent.bottom
anchors.bottomMargin: 7
width: 15
height: parent.height
policy: ScrollBar.AsNeeded
contentItem: Rectangle {
radius: 10
color: vbar.pressed ? "#4DA8C7E6" : "#4D8FB3D9"
}
background: Rectangle {
color: "#33FFFFFF"
radius: 9
}
}
TextArea {
id: messageField
font.pointSize: 14
placeholderText: qsTr("Describe a person you want to talk to")
wrapMode: TextArea.Wrap
}
}
Button {
id: cancelButton
anchors.left: textBgScroll.left
anchors.top: textBgScroll.bottom
anchors.topMargin: 10
text: qsTr("Cancel")
font.pointSize: 16
onClicked: {
messageField.text = ""
root.closePage()
}
}
Button {
id: sendButton
anchors.right: textBgScroll.right
anchors.top: textBgScroll.bottom
anchors.topMargin: 10
width: cancelButton.width
height: cancelButton.height
text: qsTr("Send")
font.pointSize: 16
enabled: messageField.length > 0
onClicked: {
OpenAIChatManager.customUserCharacter = messageField.text
OpenAIChatManager.characterId = OpenAIChatManager.UserCharacter
messageField.text = ""
root.openChatPage()
}
}
}