Bring back room subtitles

Show last appropriate room message/event as subtitle
This commit is contained in:
miruka
2019-04-14 14:09:54 -04:00
parent 9c66166c4f
commit d36cbbc7df
7 changed files with 58 additions and 26 deletions

View File

@@ -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

View 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>"
}
}