Thread alignment
It doesn't make sense for a thread to be on the right or tinted when the local user started it as they contain messages from multiple users. So always make them align left and never tint them.
This commit is contained in:
@@ -51,6 +51,11 @@ QQC2.Control {
|
||||
*/
|
||||
required property var contentModel
|
||||
|
||||
/**
|
||||
* @brief Whether the message in a thread.
|
||||
*/
|
||||
required property bool isThreaded
|
||||
|
||||
/**
|
||||
* @brief Whether the bubble background should be shown.
|
||||
*/
|
||||
@@ -134,7 +139,7 @@ QQC2.Control {
|
||||
visible: root.showBackground
|
||||
Kirigami.Theme.colorSet: Kirigami.Theme.View
|
||||
Kirigami.Theme.inherit: false
|
||||
color: if (root.author.isLocalMember) {
|
||||
color: if (root.author.isLocalMember && !root.isThreaded) {
|
||||
return Kirigami.ColorUtils.tintWithAlpha(Kirigami.Theme.backgroundColor, Kirigami.Theme.highlightColor, 0.15);
|
||||
} else if (root.showHighlight) {
|
||||
return Kirigami.Theme.positiveBackgroundColor;
|
||||
|
||||
@@ -201,7 +201,7 @@ TimelineDelegate {
|
||||
/**
|
||||
* @brief The width available to the bubble content.
|
||||
*/
|
||||
property real contentMaxWidth: bubbleSizeHelper.currentWidth - bubble.leftPadding - bubble.rightPadding
|
||||
property real contentMaxWidth: (root.isThreaded ? bubbleSizeHelper.parentWidth : bubbleSizeHelper.currentWidth) - bubble.leftPadding - bubble.rightPadding
|
||||
|
||||
width: parent?.width
|
||||
rightPadding: NeoChatConfig.compactLayout && root.ListView.view.width >= Kirigami.Units.gridUnit * 20 ? Kirigami.Units.gridUnit * 2 + Kirigami.Units.largeSpacing : Kirigami.Units.largeSpacing
|
||||
@@ -246,7 +246,7 @@ TimelineDelegate {
|
||||
topMargin: Kirigami.Units.smallSpacing
|
||||
}
|
||||
|
||||
visible: (root.contentModel?.showAuthor ?? false) && NeoChatConfig.showAvatarInTimeline && (NeoChatConfig.compactLayout || !_private.showUserMessageOnRight)
|
||||
visible: ((root.contentModel?.showAuthor ?? false) || root.isThreaded) && NeoChatConfig.showAvatarInTimeline && (NeoChatConfig.compactLayout || !_private.showUserMessageOnRight)
|
||||
name: root.author.displayName
|
||||
source: root.author.avatarUrl
|
||||
color: root.author.color
|
||||
@@ -258,7 +258,7 @@ TimelineDelegate {
|
||||
id: bubble
|
||||
anchors.left: avatar.right
|
||||
anchors.leftMargin: Kirigami.Units.largeSpacing
|
||||
anchors.rightMargin: Kirigami.Units.largeSpacing
|
||||
anchors.rightMargin: rightPadding
|
||||
maxContentWidth: root.contentMaxWidth
|
||||
|
||||
topPadding: NeoChatConfig.compactLayout ? Kirigami.Units.smallSpacing / 2 : Kirigami.Units.largeSpacing
|
||||
@@ -290,8 +290,8 @@ TimelineDelegate {
|
||||
|
||||
room: root.room
|
||||
index: root.index
|
||||
|
||||
author: root.author
|
||||
isThreaded: root.isThreaded
|
||||
|
||||
// HACK: This is stupid but seemingly QConcatenateTablesProxyModel
|
||||
// can't be passed as a model role, always returning null.
|
||||
@@ -383,7 +383,7 @@ TimelineDelegate {
|
||||
/**
|
||||
* @brief Whether local user messages should be aligned right.
|
||||
*/
|
||||
property bool showUserMessageOnRight: NeoChatConfig.showLocalMessagesOnRight && root.author.isLocalMember && !NeoChatConfig.compactLayout && !root.alwaysFillWidth
|
||||
property bool showUserMessageOnRight: NeoChatConfig.showLocalMessagesOnRight && root.author.isLocalMember && !NeoChatConfig.compactLayout && !root.alwaysFillWidth && !root.isThreaded
|
||||
|
||||
function showMessageMenu() {
|
||||
RoomManager.viewEventMenu(root.eventId, root.room, root.author, root.selectedText, root.hoveredLink);
|
||||
|
||||
@@ -38,6 +38,8 @@ Delegates.RoundedItemDelegate {
|
||||
leftInset: 0
|
||||
rightInset: 0
|
||||
|
||||
highlighted: true
|
||||
|
||||
icon.name: "mail-reply-custom"
|
||||
text: i18nc("@action:button", "Reply")
|
||||
|
||||
|
||||
Reference in New Issue
Block a user