61 lines
1.8 KiB
QML
61 lines
1.8 KiB
QML
|
import QtQuick 2.7
|
||
|
import QtQuick.Controls 2.2
|
||
|
import QtQuick.Layouts 1.4
|
||
|
|
||
|
Rectangle {
|
||
|
function setFocus() { textArea.forceActiveFocus() }
|
||
|
|
||
|
id: "root"
|
||
|
Layout.fillWidth: true
|
||
|
Layout.minimumHeight: textArea.implicitHeight
|
||
|
// parent.height / 2 causes binding loop?
|
||
|
Layout.maximumHeight: pageStack.height / 2
|
||
|
color: "#BBB"
|
||
|
|
||
|
RowLayout {
|
||
|
anchors.fill: parent
|
||
|
spacing: 0
|
||
|
|
||
|
Avatar {
|
||
|
id: "avatar"
|
||
|
username: Backend.getUser(chatPage.room.account_id).display_name
|
||
|
dimmension: root.Layout.minimumHeight
|
||
|
visible: textArea.text === ""
|
||
|
}
|
||
|
|
||
|
ScrollView {
|
||
|
Layout.fillHeight: true
|
||
|
Layout.fillWidth: true
|
||
|
id: sendBoxScrollView
|
||
|
clip: true
|
||
|
|
||
|
TextArea {
|
||
|
id: textArea
|
||
|
placeholderText: qsTr("Type a message...")
|
||
|
wrapMode: TextEdit.Wrap
|
||
|
selectByMouse: true
|
||
|
font.family: "Roboto"
|
||
|
font.pixelSize: 16
|
||
|
focus: true
|
||
|
|
||
|
Keys.onReturnPressed: {
|
||
|
event.accepted = true
|
||
|
|
||
|
if (event.modifiers & Qt.ShiftModifier ||
|
||
|
event.modifiers & Qt.ControlModifier ||
|
||
|
event.modifiers & Qt.AltModifier) {
|
||
|
textArea.insert(textArea.cursorPosition, "\n")
|
||
|
return
|
||
|
}
|
||
|
|
||
|
Backend.sendMessage(chatPage.room.account_id,
|
||
|
chatPage.room.room_id,
|
||
|
textArea.text)
|
||
|
textArea.clear()
|
||
|
}
|
||
|
Keys.onEnterPressed: Keys.onReturnPressed(event) // numpad enter
|
||
|
}
|
||
|
}
|
||
|
}
|
||
|
}
|