diff --git a/resources/qml/MessageView.qml b/resources/qml/MessageView.qml index a00ada3e..3fddc782 100644 --- a/resources/qml/MessageView.qml +++ b/resources/qml/MessageView.qml @@ -249,8 +249,8 @@ ScrollView { id: sectionHeader Column { - topPadding: 4 - bottomPadding: 4 + topPadding: 0 + bottomPadding: 0 spacing: 8 visible: (previousMessageUserId !== userId || previousMessageDay !== day || isStateEvent !== previousMessageIsStateEvent) width: parentWidth @@ -278,13 +278,13 @@ ScrollView { Row { height: userName_.height spacing: 8 - visible: !isStateEvent + visible: !isStateEvent && (!isSender || !Settings.bubbles) Avatar { id: messageUserAvatar - width: Nheko.avatarSize - height: Nheko.avatarSize + width: Nheko.avatarSize * (Settings.bubbles? 0.5 : 1) + height: Nheko.avatarSize * (Settings.bubbles? 0.5 : 1) url: !room ? "" : room.avatarUrl(userId).replace("mxc://", "image://MxcImage/") displayName: userName userid: userId @@ -460,6 +460,7 @@ ScrollView { property string previousMessageDay: wrapper.previousMessageDay property bool previousMessageIsStateEvent: wrapper.previousMessageIsStateEvent property bool isStateEvent: wrapper.isStateEvent + property bool isSender: wrapper.isSender property string userName: wrapper.userName property date timestamp: wrapper.timestamp diff --git a/resources/qml/TimelineRow.qml b/resources/qml/TimelineRow.qml index 85e6fa4b..f189f042 100644 --- a/resources/qml/TimelineRow.qml +++ b/resources/qml/TimelineRow.qml @@ -45,9 +45,8 @@ Item { required property int status required property int relatedEventCacheBuster - anchors.left: parent.left - anchors.right: parent.right - height: row.height+reactionRow.height + width: parent.width + height: childrenRect.height Rectangle { color: (Settings.messageHoverHighlight && hoverHandler.hovered) ? Nheko.colors.alternateBase : "transparent" @@ -74,13 +73,14 @@ Item { Control { id: row - - anchors.rightMargin: 1 - anchors.leftMargin: Nheko.avatarSize + 12 // align bubble with section header - anchors.left: parent.left + property bool bubbleOnRight : isSender && Settings.bubbles + anchors.rightMargin: isSender || !Settings.bubbles? 0 : parent.width/8 + anchors.leftMargin: (Settings.bubbles? 0 : Nheko.avatarSize) + (bubbleOnRight? parent.width/8 : 8) // align bubble with section header + anchors.left: bubbleOnRight? undefined : parent.left + anchors.right: bubbleOnRight? parent.right : undefined property int maxWidth: parent.width-anchors.leftMargin-anchors.rightMargin width: Settings.bubbles? Math.min(maxWidth,implicitWidth+metadata.width) : maxWidth - padding: isStateEvent? 0 : 3 + padding: isStateEvent? 0 : 2 background: Rectangle { property color userColor: TimelineManager.userColor(userId, Nheko.colors.base) property color bgColor: Nheko.colors.base @@ -237,6 +237,7 @@ Item { Reactions { anchors { top: row.bottom + topMargin: -2 left: parent.left leftMargin: Nheko.avatarSize + 16 } diff --git a/resources/qml/delegates/Encrypted.qml b/resources/qml/delegates/Encrypted.qml index d82f027b..ecc771f5 100644 --- a/resources/qml/delegates/Encrypted.qml +++ b/resources/qml/delegates/Encrypted.qml @@ -16,7 +16,7 @@ Rectangle { required property string eventId radius: fontMetrics.lineSpacing / 2 + Nheko.paddingMedium - width: parent.width + width: parent.width? parent.width : 0 implicitWidth: encryptedText.implicitWidth+24+Nheko.paddingMedium*3 // Column doesn't provide a useful implicitWidth, should be replaced by ColumnLayout height: contents.implicitHeight + Nheko.paddingMedium * 2 color: Nheko.colors.alternateBase