print state events without bubbles, displaynames or avatars and in a smaller font

This commit is contained in:
Malte E 2022-02-07 21:00:51 +01:00
parent 9d194cc2e6
commit 384c9c91e3
6 changed files with 51 additions and 4 deletions

View File

@ -252,9 +252,9 @@ ScrollView {
topPadding: 4
bottomPadding: 4
spacing: 8
visible: (previousMessageUserId !== userId || previousMessageDay !== day)
visible: (previousMessageUserId !== userId || previousMessageDay !== day || previousMessageIsStateEvent) && !isStateEvent
width: parentWidth
height: ((previousMessageDay !== day) ? dateBubble.height + 8 + userName.height : userName.height) + 8
height: ((previousMessageDay !== day) ? dateBubble.height : 0) + (isStateEvent? 0 : userName.height +8 )
Label {
id: dateBubble
@ -317,7 +317,7 @@ ScrollView {
color: TimelineManager.userColor(userId, Nheko.colors.base)
textFormat: Text.RichText
ToolTip.visible: displayNameHover.hovered
ToolTip.delay: Nheko.tooltipDelay
ToolTip.delay: Nheko.tooltipDelay
ToolTip.text: userId
TapHandler {
@ -379,6 +379,8 @@ ScrollView {
required property bool isEncrypted
required property bool isEditable
required property bool isEdited
required property bool isStateEvent
required property bool previousMessageIsStateEvent
required property string replyTo
required property string userId
required property string roomTopic
@ -455,6 +457,8 @@ ScrollView {
property string previousMessageUserId: wrapper.previousMessageUserId
property string day: wrapper.day
property string previousMessageDay: wrapper.previousMessageDay
property bool previousMessageIsStateEvent: wrapper.previousMessageIsStateEvent
property bool isStateEvent: wrapper.isStateEvent
property string userName: wrapper.userName
property date timestamp: wrapper.timestamp
@ -487,6 +491,7 @@ ScrollView {
isEncrypted: wrapper.isEncrypted
isEditable: wrapper.isEditable
isEdited: wrapper.isEdited
isStateEvent: wrapper.isStateEvent
replyTo: wrapper.replyTo
userId: wrapper.userId
userName: wrapper.userName

View File

@ -31,6 +31,7 @@ Item {
required property bool isEncrypted
required property bool isEditable
required property bool isEdited
required property bool isStateEvent
required property string replyTo
required property string userId
required property string userName
@ -89,7 +90,7 @@ Item {
property color bgColor: Nheko.colors.base
color: Qt.rgba(userColor.r*0.1+bgColor.r*0.9,userColor.g*0.1+bgColor.g*0.9,userColor.b*0.1+bgColor.b*0.9,1) //TimelineManager.userColor(userId, Nheko.colors.base)
radius: 4
visible: Settings.bubbles
visible: Settings.bubbles && !isStateEvent
}
GridLayout {
@ -130,6 +131,7 @@ Item {
url: r.relatedEventCacheBuster, fromModel(Room.Url) ?? ""
originalWidth: r.relatedEventCacheBuster, fromModel(Room.OriginalWidth) ?? 0
isOnlyEmoji: r.relatedEventCacheBuster, fromModel(Room.IsOnlyEmoji) ?? false
isStateEvent: r.relatedEventCacheBuster, fromModel(Room.IsStateEvent) ?? false
userId: r.relatedEventCacheBuster, fromModel(Room.UserId) ?? ""
userName: r.relatedEventCacheBuster, fromModel(Room.UserName) ?? ""
thumbnailUrl: r.relatedEventCacheBuster, fromModel(Room.ThumbnailUrl) ?? ""
@ -160,6 +162,7 @@ Item {
thumbnailUrl: r.thumbnailUrl
originalWidth: r.originalWidth
isOnlyEmoji: r.isOnlyEmoji
isStateEvent: r.isStateEvent
userId: r.userId
userName: r.userName
roomTopic: r.roomTopic
@ -176,6 +179,7 @@ Item {
Layout.rowSpan: msg.narrowLayout? 1 : 2
Layout.bottomMargin: msg.narrowLayout? -4 : 0
Layout.alignment: Qt.AlignTop | Qt.AlignRight
visible: !isStateEvent
property double scaling: msg.narrowLayout? 0.75 : 1
StatusIndicator {

View File

@ -27,6 +27,7 @@ Item {
required property string url
required property string thumbnailUrl
required property bool isOnlyEmoji
required property bool isStateEvent
required property string userId
required property string userName
required property string roomTopic
@ -77,6 +78,7 @@ Item {
body: d.body
isOnlyEmoji: d.isOnlyEmoji
isReply: d.isReply
isStateEvent: d.isStateEvent
}
}
@ -90,6 +92,7 @@ Item {
body: d.body
isOnlyEmoji: d.isOnlyEmoji
isReply: d.isReply
isStateEvent: d.isStateEvent
}
}
@ -184,6 +187,7 @@ Item {
Pill {
text: qsTr("removed")
isStateEvent: d.isStateEvent
}
}
@ -193,6 +197,7 @@ Item {
Pill {
text: qsTr("Encryption enabled")
isStateEvent: d.isStateEvent
}
}
@ -214,6 +219,7 @@ Item {
body: formatted
isOnlyEmoji: false
isReply: d.isReply
isStateEvent: d.isStateEvent
formatted: d.roomName ? qsTr("room name changed to: %1").arg(d.roomName) : qsTr("removed room name")
}
@ -226,6 +232,7 @@ Item {
body: formatted
isOnlyEmoji: false
isReply: d.isReply
isStateEvent: d.isStateEvent
formatted: d.roomTopic ? qsTr("topic changed to: %1").arg(d.roomTopic) : qsTr("removed topic")
}
@ -238,6 +245,7 @@ Item {
body: formatted
isOnlyEmoji: false
isReply: d.isReply
isStateEvent: d.isStateEvent
formatted: qsTr("%1 changed the room avatar").arg(d.userName)
}
@ -250,6 +258,7 @@ Item {
body: formatted
isOnlyEmoji: false
isReply: d.isReply
isStateEvent: d.isStateEvent
formatted: qsTr("%1 changed the pinned messages.").arg(d.userName)
}
@ -262,6 +271,7 @@ Item {
body: formatted
isOnlyEmoji: false
isReply: d.isReply
isStateEvent: d.isStateEvent
formatted: qsTr("%1 changed the stickers and emotes in this room.").arg(d.userName)
}
@ -274,6 +284,7 @@ Item {
body: formatted
isOnlyEmoji: false
isReply: d.isReply
isStateEvent: d.isStateEvent
formatted: qsTr("%1 changed the addresses for this room.").arg(d.userName)
}
@ -286,6 +297,7 @@ Item {
body: formatted
isOnlyEmoji: false
isReply: d.isReply
isStateEvent: d.isStateEvent
formatted: qsTr("%1 changed the parent spaces for this room.").arg(d.userName)
}
@ -298,6 +310,7 @@ Item {
body: formatted
isOnlyEmoji: false
isReply: d.isReply
isStateEvent: d.isStateEvent
formatted: qsTr("%1 created and configured room: %2").arg(d.userName).arg(room.roomId)
}
@ -310,6 +323,7 @@ Item {
body: formatted
isOnlyEmoji: false
isReply: d.isReply
isStateEvent: d.isStateEvent
formatted: {
switch (d.callType) {
case "voice":
@ -331,6 +345,7 @@ Item {
body: formatted
isOnlyEmoji: false
isReply: d.isReply
isStateEvent: d.isStateEvent
formatted: qsTr("%1 answered the call.").arg(d.userName)
}
@ -343,6 +358,7 @@ Item {
body: formatted
isOnlyEmoji: false
isReply: d.isReply
isStateEvent: d.isStateEvent
formatted: qsTr("%1 ended the call.").arg(d.userName)
}
@ -355,6 +371,7 @@ Item {
body: formatted
isOnlyEmoji: false
isReply: d.isReply
isStateEvent: d.isStateEvent
formatted: qsTr("Negotiating call...")
}
@ -368,6 +385,7 @@ Item {
body: formatted
isOnlyEmoji: false
isReply: d.isReply
isStateEvent: d.isStateEvent
formatted: d.relatedEventCacheBuster, room.formatPowerLevelEvent(d.eventId)
}
@ -380,6 +398,7 @@ Item {
body: formatted
isOnlyEmoji: false
isReply: d.isReply
isStateEvent: d.isStateEvent
formatted: d.relatedEventCacheBuster, room.formatJoinRuleEvent(d.eventId)
}
@ -392,6 +411,7 @@ Item {
body: formatted
isOnlyEmoji: false
isReply: d.isReply
isStateEvent: d.isStateEvent
formatted: d.relatedEventCacheBuster, room.formatHistoryVisibilityEvent(d.eventId)
}
@ -404,6 +424,7 @@ Item {
body: formatted
isOnlyEmoji: false
isReply: d.isReply
isStateEvent: d.isStateEvent
formatted: d.relatedEventCacheBuster, room.formatGuestAccessEvent(d.eventId)
}
@ -419,6 +440,7 @@ Item {
body: formatted
isOnlyEmoji: false
isReply: d.isReply
isStateEvent: d.isStateEvent
Layout.fillWidth: true
formatted: d.relatedEventCacheBuster, room.formatMemberEvent(d.eventId)
}
@ -441,6 +463,7 @@ Item {
body: formatted
isOnlyEmoji: false
isReply: d.isReply
isStateEvent: d.isStateEvent
formatted: "KeyVerificationRequest"
}
@ -453,6 +476,7 @@ Item {
body: formatted
isOnlyEmoji: false
isReply: d.isReply
isStateEvent: d.isStateEvent
formatted: "KeyVerificationStart"
}
@ -465,6 +489,7 @@ Item {
body: formatted
isOnlyEmoji: false
isReply: d.isReply
isStateEvent: d.isStateEvent
formatted: "KeyVerificationReady"
}
@ -477,6 +502,7 @@ Item {
body: formatted
isOnlyEmoji: false
isReply: d.isReply
isStateEvent: d.isStateEvent
formatted: "KeyVerificationCancel"
}
@ -489,6 +515,7 @@ Item {
body: formatted
isOnlyEmoji: false
isReply: d.isReply
isStateEvent: d.isStateEvent
formatted: "KeyVerificationKey"
}
@ -501,6 +528,7 @@ Item {
body: formatted
isOnlyEmoji: false
isReply: d.isReply
isStateEvent: d.isStateEvent
formatted: "KeyVerificationMac"
}
@ -513,6 +541,7 @@ Item {
body: formatted
isOnlyEmoji: false
isReply: d.isReply
isStateEvent: d.isStateEvent
formatted: "KeyVerificationDone"
}
@ -525,6 +554,7 @@ Item {
body: formatted
isOnlyEmoji: false
isReply: d.isReply
isStateEvent: d.isStateEvent
formatted: "KeyVerificationDone"
}
@ -537,6 +567,7 @@ Item {
body: formatted
isOnlyEmoji: false
isReply: d.isReply
isStateEvent: d.isStateEvent
formatted: "KeyVerificationAccept"
}

View File

@ -5,7 +5,10 @@
import im.nheko 1.0
TextMessage {
property bool isStateEvent
font.italic: true
color: Nheko.colors.buttonText
font.pointSize: isStateEvent? 0.75*fontMetrics.font.pointSize : 1*fontMetrics.font.pointSize
}

View File

@ -8,10 +8,12 @@ import QtQuick.Controls 2.1
import im.nheko 1.0
Label {
property bool isStateEvent
color: Nheko.colors.text
horizontalAlignment: Text.AlignHCenter
height: contentHeight * 1.2
width: contentWidth * 1.2
font.pointSize: isStateEvent? 0.75*fontMetrics.font.pointSize : 1*fontMetrics.font.pointSize
background: Rectangle {
radius: parent.height / 2

View File

@ -26,6 +26,7 @@ Item {
property string filesize
property string url
property bool isOnlyEmoji
property bool isStateEvent
property string userId
property string userName
property string thumbnailUrl
@ -110,6 +111,7 @@ Item {
thumbnailUrl: r.thumbnailUrl
originalWidth: r.originalWidth
isOnlyEmoji: r.isOnlyEmoji
isStateEvent: r.isStateEvent
userId: r.userId
userName: r.userName
roomTopic: r.roomTopic