moment/src/qml/Chat/Chat.qml

149 lines
4.2 KiB
QML
Raw Normal View History

2019-03-22 14:28:14 +11:00
import QtQuick 2.7
import QtQuick.Layouts 1.3
import "../Base"
import "Banners"
2019-07-03 12:29:09 +10:00
import "Timeline"
2019-05-13 03:17:42 +10:00
import "RoomSidePane"
2019-03-22 14:28:14 +11:00
2019-05-13 03:17:42 +10:00
HColumnLayout {
2019-04-22 00:44:04 +10:00
property string userId: ""
property string category: ""
2019-04-22 00:44:04 +10:00
property string roomId: ""
2019-03-22 14:28:14 +11:00
2019-07-05 06:01:44 +10:00
readonly property var roomInfo: rooms.getWhere(
{"userId": userId, "roomId": roomId, "category": category}, 1
)[0]
2019-04-15 06:12:07 +10:00
readonly property var sender: //TODO: info$
users.getUser(userId)
readonly property bool hasUnknownDevices: false
//category == "Rooms" ?
//Backend.clients.get(userId).roomHasUnknownDevices(roomId) : false
id: chatPage
2019-03-22 14:28:14 +11:00
onFocusChanged: sendBox.setFocus()
//Component.onCompleted: Backend.signals.roomCategoryChanged.connect(
//function(forUserId, forRoomId, previous, now) {
//if (chatPage && forUserId == userId && forRoomId == roomId) {
//chatPage.category = now
//}
//}
//)
2019-05-13 03:17:42 +10:00
RoomHeader {
id: roomHeader
displayName: roomInfo.displayName
topic: roomInfo.topic
2019-05-13 03:17:42 +10:00
Layout.fillWidth: true
Layout.preferredHeight: theme.avatar.size
2019-05-13 03:17:42 +10:00
}
2019-04-22 00:44:04 +10:00
2019-05-13 03:17:42 +10:00
HSplitView {
id: chatSplitView
2019-05-13 03:17:42 +10:00
Layout.fillWidth: true
Layout.fillHeight: true
HColumnLayout {
Layout.fillWidth: true
2019-04-22 00:44:04 +10:00
2019-07-03 12:29:09 +10:00
EventList {
2019-05-13 03:17:42 +10:00
Layout.fillWidth: true
Layout.fillHeight: true
}
2019-07-07 07:29:32 +10:00
TypingMembersBar {
Layout.fillWidth: true
}
InviteBanner {
visible: category == "Invites"
inviterId: roomInfo.inviterId
}
//UnknownDevicesBanner {
//visible: category == "Rooms" && hasUnknownDevices
//}
2019-05-13 03:17:42 +10:00
SendBox {
id: sendBox
visible: category == "Rooms" && ! hasUnknownDevices
}
LeftBanner {
visible: category == "Left"
userId: chatPage.userId
}
}
// RoomSidePane {
//id: roomSidePane
//activeView: roomHeader.activeButton
//property int oldWidth: width
//onActiveViewChanged:
//activeView ? restoreAnimation.start() : hideAnimation.start()
//HNumberAnimation {
//id: hideAnimation
//target: roomSidePane
//properties: "width"
//from: target.width
//to: 0
//onStarted: {
//target.oldWidth = target.width
//target.Layout.minimumWidth = 0
//}
//}
//HNumberAnimation {
//id: restoreAnimation
//target: roomSidePane
//properties: "width"
//from: 0
//to: target.oldWidth
//onStopped: target.Layout.minimumWidth = Qt.binding(
//function() { return theme.avatar.size }
//)
//}
//collapsed: width < theme.avatar.size + 8
//property bool wasSnapped: false
//property int referenceWidth: roomHeader.buttonsWidth
//onReferenceWidthChanged: {
//if (chatSplitView.canAutoSize || wasSnapped) {
//if (wasSnapped) { chatSplitView.canAutoSize = true }
//width = referenceWidth
//}
//}
//property int currentWidth: width
//onCurrentWidthChanged: {
//if (referenceWidth != width &&
//referenceWidth - 15 < width &&
//width < referenceWidth + 15)
//{
//currentWidth = referenceWidth
//width = referenceWidth
//wasSnapped = true
//currentWidth = Qt.binding(
//function() { return roomSidePane.width }
//)
//} else {
//wasSnapped = false
//}
//}
//width: referenceWidth // Initial width
//Layout.minimumWidth: theme.avatar.size
//Layout.maximumWidth: parent.width
//}
2019-04-22 00:44:04 +10:00
}
2019-03-22 14:28:14 +11:00
}