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