Bring back room subtitles
Show last appropriate room message/event as subtitle
This commit is contained in:
@@ -2,6 +2,7 @@ import QtQuick 2.7
|
||||
import QtQuick.Controls 2.0
|
||||
import QtQuick.Layouts 1.4
|
||||
import "../base" as Base
|
||||
import "utils.js" as SidePaneJS
|
||||
|
||||
MouseArea {
|
||||
id: "root"
|
||||
@@ -38,24 +39,10 @@ MouseArea {
|
||||
rightPadding: leftPadding
|
||||
}
|
||||
Base.HLabel {
|
||||
property var msgModel: Backend.models.roomEvents.get(room_id)
|
||||
|
||||
function get_text() {
|
||||
if (msgModel.count < 1) { return "" }
|
||||
|
||||
var msg = msgModel.get(-1)
|
||||
var color_ = (msg.sender_id === roomList.user_id ?
|
||||
"darkblue" : "purple")
|
||||
|
||||
return "<font color=\"" + color_ + "\">" +
|
||||
Backend.getUser(msg.sender_id).display_name +
|
||||
":</font> " +
|
||||
msg.content
|
||||
}
|
||||
|
||||
id: subtitleLabel
|
||||
visible: text !== ""
|
||||
//text: msgModel.reloadThis, get_text()
|
||||
text: Backend.models.roomEvents.get(room_id).reloadThis,
|
||||
SidePaneJS.get_last_room_event_text(room_id)
|
||||
textFormat: Text.StyledText
|
||||
|
||||
font.pixelSize: smallSize
|
||||
|
42
harmonyqml/components/side_pane/utils.js
Normal file
42
harmonyqml/components/side_pane/utils.js
Normal file
@@ -0,0 +1,42 @@
|
||||
.import "../chat/utils.js" as ChatJS
|
||||
|
||||
|
||||
function get_last_room_event_text(room_id) {
|
||||
var eventsModel = Backend.models.roomEvents.get(room_id)
|
||||
|
||||
for (var i = -1; i >= -eventsModel.count; i--) {
|
||||
var ev = eventsModel.get(i)
|
||||
|
||||
if (ev.type !== "RoomMemberEvent") {
|
||||
var found = true
|
||||
break
|
||||
}
|
||||
}
|
||||
|
||||
if (! found) { return "" }
|
||||
|
||||
var name = Backend.getUser(ev.dict.sender).display_name
|
||||
var undecryptable = ev.type === "OlmEvent" || ev.type === "MegolmEvent"
|
||||
|
||||
if (undecryptable || ev.type.startsWith("RoomMessage")) {
|
||||
var color = ev.dict.sender === roomList.for_user_id ?
|
||||
"darkblue" : "purple"
|
||||
|
||||
return "<font color='" +
|
||||
color +
|
||||
"'>" +
|
||||
name +
|
||||
":</font> " +
|
||||
(undecryptable ?
|
||||
"<font color='darkred'>Undecryptable<font>" :
|
||||
ev.dict.body)
|
||||
} else {
|
||||
return "<font color='" +
|
||||
(undecryptable ? "darkred" : "#444") +
|
||||
"'>" +
|
||||
name +
|
||||
" " +
|
||||
ChatJS.get_event_text(ev.type, ev.dict) +
|
||||
"</font>"
|
||||
}
|
||||
}
|
Reference in New Issue
Block a user