From c681be5bf424d4e7621aaf853dcfc8191014c797 Mon Sep 17 00:00:00 2001
From: Ming Rui Zhang <mingrui.zhang@savoirfairelinux.com>
Date: Fri, 5 Nov 2021 14:20:45 -0400
Subject: [PATCH] messagelistview: fix the sizing for TypingIndicator and
 ReadStatus

Change-Id: Ie55660522b8eceaedcb3235d6d63f615a27e59c9
---
 src/commoncomponents/SBSMessageBase.qml     |   2 +-
 src/constant/JamiTheme.qml                  |   6 ++
 src/mainview/components/MessageBar.qml      |   2 +-
 src/mainview/components/MessageListView.qml | 111 ++++++++++----------
 4 files changed, 65 insertions(+), 56 deletions(-)

diff --git a/src/commoncomponents/SBSMessageBase.qml b/src/commoncomponents/SBSMessageBase.qml
index ebb989dba..9ef4a93f9 100644
--- a/src/commoncomponents/SBSMessageBase.qml
+++ b/src/commoncomponents/SBSMessageBase.qml
@@ -48,7 +48,7 @@ Control {
     readonly property real senderMargin: 64
     readonly property real avatarSize: 32
     readonly property real msgRadius: 18
-    readonly property real hPadding: 12
+    readonly property real hPadding: JamiTheme.sbsMessageBasePreferredPadding
 
     width: ListView.view ? ListView.view.width : 0
     height: mainColumnLayout.implicitHeight
diff --git a/src/constant/JamiTheme.qml b/src/constant/JamiTheme.qml
index bed92a175..b5b6ab7e1 100644
--- a/src/constant/JamiTheme.qml
+++ b/src/constant/JamiTheme.qml
@@ -303,6 +303,12 @@ Item {
     property real filesToSendDelegateButtonSize: 16
     property real filesToSendDelegateFontPointSize: textFontSize + 2
 
+    // SBSMessageBase
+    property int sbsMessageBasePreferredPadding: 12
+
+    // MessageBar
+    property int messageBarMarginSize: 10
+
     // InvitationView
     property real invitationViewAvatarSize: 112
     property real invitationViewButtonRadius: 25
diff --git a/src/mainview/components/MessageBar.qml b/src/mainview/components/MessageBar.qml
index cf5aed3b8..a68e0dfd1 100644
--- a/src/mainview/components/MessageBar.qml
+++ b/src/mainview/components/MessageBar.qml
@@ -30,7 +30,7 @@ ColumnLayout {
 
     property alias text: textArea.text
     property var textAreaObj: textArea
-    property real marginSize: 10
+    property real marginSize: JamiTheme.messageBarMarginSize
     property bool sendButtonVisibility: false
     property bool animate: false
 
diff --git a/src/mainview/components/MessageListView.qml b/src/mainview/components/MessageListView.qml
index 5d515994d..bb2ab9a95 100644
--- a/src/mainview/components/MessageListView.qml
+++ b/src/mainview/components/MessageListView.qml
@@ -168,7 +168,6 @@ ListView {
     }
 
     topMargin: 12
-    bottomMargin: 6
     spacing: 2
     anchors.centerIn: parent
     height: parent.height
@@ -277,79 +276,83 @@ ListView {
     header: Control {
         id: typeIndicatorContainer
 
-        topPadding: 3
+        topPadding: 6
 
         width: root.width
         height: typeIndicatorNameText.contentHeight + topPadding
 
         visible: MessagesAdapter.currentConvComposingList.length
 
-        TypingDots {
-            id: typingDots
-
+        RowLayout {
             anchors.left: typeIndicatorContainer.left
-            anchors.leftMargin: 5
-            anchors.verticalCenter: typeIndicatorContainer.verticalCenter
-        }
+            anchors.leftMargin: JamiTheme.messageBarMarginSize
+            anchors.bottom: typeIndicatorContainer.bottom
+            anchors.bottomMargin: 2
 
-        Text {
-            id: typeIndicatorNameText
+            spacing: 0
 
-            anchors.left: typingDots.right
-            anchors.leftMargin: 5
-            anchors.verticalCenter: typeIndicatorContainer.verticalCenter
+            TypingDots {
+                id: typingDots
 
-            width: {
-                var textSize = text ? JamiQmlUtils.getTextBoundingRect(font, text).width : 0
-                var typingContentWidth = typingDots.width + typingDots.anchors.leftMargin
-                                       + typeIndicatorNameText.anchors.leftMargin
-                                       + typeIndicatorEndingText.contentWidth
-                return Math.min(typeIndicatorContainer.width - 5 - typingContentWidth, textSize)
+                Layout.alignment: Qt.AlignVCenter
             }
 
-            font.pointSize: 8
-            font.bold: Font.DemiBold
-            elide: Text.ElideRight
-            color: JamiTheme.textColor
-            text: {
-                var finalText = ""
-                var nameList = MessagesAdapter.currentConvComposingList
-
-                if (nameList.length > 4)
-                    return ""
-                if (nameList.length === 1)
-                    return nameList[0]
-
-                for (var i = 0; i < nameList.length; i++) {
-                    finalText += nameList[i]
-
-                    if (i === nameList.length - 2)
-                        finalText += JamiStrings.typeIndicatorAnd
-                    else if (i !== nameList.length - 1)
-                        finalText += ", "
+            Text {
+                id: typeIndicatorNameText
+
+                Layout.alignment: Qt.AlignVCenter
+                Layout.leftMargin: JamiTheme.sbsMessageBasePreferredPadding
+                Layout.preferredWidth: {
+                    var textSize = text ? JamiQmlUtils.getTextBoundingRect(font, text).width : 0
+                    var typingContentWidth = typingDots.width + typingDots.anchors.leftMargin
+                                           + typeIndicatorNameText.anchors.leftMargin
+                                           + typeIndicatorEndingText.contentWidth
+                    return Math.min(typeIndicatorContainer.width - 5 - typingContentWidth, textSize)
                 }
 
-                return finalText
+                font.pointSize: 8
+                font.bold: Font.DemiBold
+                elide: Text.ElideRight
+                color: JamiTheme.textColor
+                text: {
+                    var finalText = ""
+                    var nameList = MessagesAdapter.currentConvComposingList
+
+                    if (nameList.length > 4)
+                        return ""
+                    if (nameList.length === 1)
+                        return nameList[0]
+
+                    for (var i = 0; i < nameList.length; i++) {
+                        finalText += nameList[i]
+
+                        if (i === nameList.length - 2)
+                            finalText += JamiStrings.typeIndicatorAnd
+                        else if (i !== nameList.length - 1)
+                            finalText += ", "
+                    }
+
+                    return finalText
+                }
             }
-        }
 
-        Text {
-            id: typeIndicatorEndingText
+            Text {
+                id: typeIndicatorEndingText
 
-            anchors.left: typeIndicatorNameText.right
-            anchors.verticalCenter: typeIndicatorContainer.verticalCenter
+                Layout.alignment: Qt.AlignVCenter
 
-            font.pointSize: 8
-            color: JamiTheme.textColor
-            text: {
-                var nameList = MessagesAdapter.currentConvComposingList
+                font.pointSize: 8
+                color: JamiTheme.textColor
+                text: {
+                    var nameList = MessagesAdapter.currentConvComposingList
 
-                if (nameList.length > 4)
-                    return JamiStrings.typeIndicatorMax
-                if (nameList.length === 1)
-                    return JamiStrings.typeIndicatorSingle.replace("{}", "")
+                    if (nameList.length > 4)
+                        return JamiStrings.typeIndicatorMax
+                    if (nameList.length === 1)
+                        return JamiStrings.typeIndicatorSingle.replace("{}", "")
 
-                return JamiStrings.typeIndicatorPlural.replace("{}", "")
+                    return JamiStrings.typeIndicatorPlural.replace("{}", "")
+                }
             }
         }
     }
-- 
GitLab