moment/harmonyqml/components/side_pane/RoomDelegate.qml

75 lines
2.3 KiB
QML
Raw Normal View History

2019-03-22 14:28:14 +11:00
import QtQuick 2.7
import QtQuick.Controls 2.0
import QtQuick.Layouts 1.4
import "../base" as Base
2019-03-22 14:28:14 +11:00
MouseArea {
2019-03-26 09:29:46 +11:00
id: "root"
width: roomList.width
2019-03-26 09:29:46 +11:00
height: Math.max(roomLabel.height + subtitleLabel.height, avatar.height)
2019-03-22 14:28:14 +11:00
onClicked: pageStack.show_room(
roomList.user_id,
roomList.model.get(index)
)
2019-03-22 14:28:14 +11:00
RowLayout {
anchors.fill: parent
id: row
spacing: 1
Base.Avatar { id: avatar; name: display_name; dimmension: 36 }
2019-03-22 14:28:14 +11:00
ColumnLayout {
spacing: 0
Base.HLabel {
2019-03-22 14:28:14 +11:00
id: roomLabel
text: display_name
elide: Text.ElideRight
maximumLineCount: 1
Layout.maximumWidth: row.width - row.spacing - avatar.width
verticalAlignment: Qt.AlignVCenter
2019-03-26 09:29:46 +11:00
topPadding: -2
bottomPadding: subtitleLabel.visible ? 0 : topPadding
leftPadding: 5
rightPadding: leftPadding
2019-03-22 14:28:14 +11:00
}
Base.HLabel {
function get_text() {
var msgs = Backend.models.messages.get(room_id)
if (! msgs || msgs.count < 1) { return "" }
var msg = msgs.get(-1)
var color_ = (msg.sender_id === roomList.user_id ?
"darkblue" : "purple")
var client = Backend.clientManager.clients[RoomList.for_user_id]
return "<font color=\"" + color_ + "\">" +
client.getUser(room_id, msg.sender_id).display_name +
":</font> " +
msg.content
}
2019-03-22 14:28:14 +11:00
id: subtitleLabel
visible: text !== ""
text: Backend.models.messages.get(room_id).reloadThis, get_text()
textFormat: Text.StyledText
2019-03-22 14:28:14 +11:00
font.pixelSize: smallSize
elide: Text.ElideRight
maximumLineCount: 1
Layout.maximumWidth: roomLabel.Layout.maximumWidth
2019-03-26 09:29:46 +11:00
topPadding: -2
bottomPadding: topPadding
leftPadding: 5
rightPadding: leftPadding
2019-03-22 14:28:14 +11:00
}
}
Item { Layout.fillWidth: true }
}
}