2019-03-22 14:28:14 +11:00
|
|
|
import QtQuick 2.7
|
2019-05-03 04:20:21 +10:00
|
|
|
import QtQuick.Layouts 1.3
|
2019-04-29 05:18:36 +10:00
|
|
|
import "../Base"
|
2019-04-29 04:34:29 +10:00
|
|
|
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: ""
|
2019-05-03 04:20:21 +10:00
|
|
|
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(
|
2019-07-03 03:59:52 +10:00
|
|
|
{"userId": userId, "roomId": roomId, "category": category}, 1
|
|
|
|
)[0]
|
2019-04-15 06:12:07 +10:00
|
|
|
|
2019-07-03 03:59:52 +10:00
|
|
|
readonly property var sender:
|
2019-07-05 06:01:44 +10:00
|
|
|
users.getWhere({"userId": userId}, 1)[0]
|
2019-05-12 05:52:56 +10:00
|
|
|
|
2019-07-03 03:59:52 +10:00
|
|
|
readonly property bool hasUnknownDevices: false
|
|
|
|
//category == "Rooms" ?
|
|
|
|
//Backend.clients.get(userId).roomHasUnknownDevices(roomId) : false
|
2019-05-09 03:45:25 +10:00
|
|
|
|
2019-04-21 07:45:51 +10:00
|
|
|
id: chatPage
|
2019-03-22 14:28:14 +11:00
|
|
|
onFocusChanged: sendBox.setFocus()
|
|
|
|
|
2019-07-03 03:59:52 +10:00
|
|
|
//Component.onCompleted: Backend.signals.roomCategoryChanged.connect(
|
|
|
|
//function(forUserId, forRoomId, previous, now) {
|
|
|
|
//if (chatPage && forUserId == userId && forRoomId == roomId) {
|
|
|
|
//chatPage.category = now
|
|
|
|
//}
|
|
|
|
//}
|
|
|
|
//)
|
2019-05-07 04:06:28 +10:00
|
|
|
|
2019-05-13 03:17:42 +10:00
|
|
|
RoomHeader {
|
|
|
|
id: roomHeader
|
|
|
|
displayName: roomInfo.displayName
|
2019-07-05 08:37:15 +10:00
|
|
|
topic: roomInfo.topic
|
2019-05-13 03:17:42 +10:00
|
|
|
|
2019-05-03 04:20:21 +10:00
|
|
|
Layout.fillWidth: true
|
2019-05-13 05:57:18 +10:00
|
|
|
Layout.preferredHeight: HStyle.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 {
|
2019-05-13 06:01:18 +10:00
|
|
|
id: chatSplitView
|
2019-05-13 03:17:42 +10:00
|
|
|
Layout.fillWidth: true
|
|
|
|
Layout.fillHeight: true
|
|
|
|
|
|
|
|
HColumnLayout {
|
2019-05-12 07:51:00 +10:00
|
|
|
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-05-09 03:45:25 +10:00
|
|
|
|
2019-07-07 07:29:32 +10:00
|
|
|
TypingMembersBar {
|
|
|
|
Layout.fillWidth: true
|
|
|
|
//Layout.preferredHeight: text ? implicitHeight : 0
|
|
|
|
}
|
2019-05-12 07:51:00 +10:00
|
|
|
|
2019-07-06 06:48:30 +10:00
|
|
|
InviteBanner {
|
|
|
|
visible: category === "Invites"
|
|
|
|
inviterId: roomInfo.inviterId
|
|
|
|
}
|
2019-05-12 07:51:00 +10:00
|
|
|
|
2019-07-03 12:22:29 +10:00
|
|
|
//UnknownDevicesBanner {
|
|
|
|
//visible: category == "Rooms" && hasUnknownDevices
|
|
|
|
//}
|
2019-05-13 03:17:42 +10:00
|
|
|
|
|
|
|
SendBox {
|
|
|
|
id: sendBox
|
|
|
|
visible: category == "Rooms" && ! hasUnknownDevices
|
|
|
|
}
|
2019-05-12 07:51:00 +10:00
|
|
|
|
2019-07-03 12:22:29 +10:00
|
|
|
//LeftBanner {
|
|
|
|
//visible: category === "Left"
|
|
|
|
//leftEvent: roomInfo.leftEvent
|
|
|
|
//}
|
|
|
|
//}
|
2019-04-22 05:20:20 +10:00
|
|
|
|
2019-07-03 03:59:52 +10:00
|
|
|
// RoomSidePane {
|
|
|
|
//id: roomSidePane
|
|
|
|
|
|
|
|
//activeView: roomHeader.activeButton
|
|
|
|
//property int oldWidth: width
|
|
|
|
//onActiveViewChanged:
|
|
|
|
//activeView ? restoreAnimation.start() : hideAnimation.start()
|
|
|
|
|
2019-07-07 07:42:04 +10:00
|
|
|
//HNumberAnimation {
|
2019-07-03 03:59:52 +10:00
|
|
|
//id: hideAnimation
|
|
|
|
//target: roomSidePane
|
|
|
|
//properties: "width"
|
|
|
|
//from: target.width
|
|
|
|
//to: 0
|
|
|
|
|
|
|
|
//onStarted: {
|
|
|
|
//target.oldWidth = target.width
|
|
|
|
//target.Layout.minimumWidth = 0
|
|
|
|
//}
|
|
|
|
//}
|
|
|
|
|
2019-07-07 07:42:04 +10:00
|
|
|
//HNumberAnimation {
|
2019-07-03 03:59:52 +10:00
|
|
|
//id: restoreAnimation
|
|
|
|
//target: roomSidePane
|
|
|
|
//properties: "width"
|
|
|
|
//from: 0
|
|
|
|
//to: target.oldWidth
|
|
|
|
|
|
|
|
//onStopped: target.Layout.minimumWidth = Qt.binding(
|
|
|
|
//function() { return HStyle.avatar.size }
|
|
|
|
//)
|
|
|
|
//}
|
|
|
|
|
|
|
|
//collapsed: width < HStyle.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: HStyle.avatar.size
|
|
|
|
//Layout.maximumWidth: parent.width
|
|
|
|
//}
|
2019-07-03 12:22:29 +10:00
|
|
|
}
|
2019-04-22 00:44:04 +10:00
|
|
|
}
|
2019-03-22 14:28:14 +11:00
|
|
|
}
|