From 71b98aed56c248ad4523f4e888b80a4dc9e6b7e3 Mon Sep 17 00:00:00 2001
From: Ming Rui Zhang <mingrui.zhang@savoirfairelinux.com>
Date: Mon, 4 Oct 2021 15:53:00 -0400
Subject: [PATCH] messagelistview: ui fixes

1. Add handler for DataTransferMessageDelegate MouseArea
2. Fix TextMessageDelegate crash caused by Loader
3. Fix SBSMessageBase padding when resizing
4. Use JamiListView for MessageListView
5. Fix ScrollToBottomButton DropShadow
6. Fix Typing indicator binding loop

Change-Id: I59b97f3850fceb30f72c64f6cae54889fe4a18db
---
 src/commoncomponents/DataTransferMessageDelegate.qml | 7 ++++++-
 src/commoncomponents/ElidedTextLabel.qml             | 5 ++++-
 src/commoncomponents/MaterialLineEdit.qml            | 1 +
 src/commoncomponents/SBSMessageBase.qml              | 2 +-
 src/commoncomponents/TextMessageDelegate.qml         | 2 --
 src/mainview/components/MessageListView.qml          | 5 +----
 src/mainview/components/ScrollToBottomButton.qml     | 2 ++
 7 files changed, 15 insertions(+), 9 deletions(-)

diff --git a/src/commoncomponents/DataTransferMessageDelegate.qml b/src/commoncomponents/DataTransferMessageDelegate.qml
index 87b0dd464..7875e01dc 100644
--- a/src/commoncomponents/DataTransferMessageDelegate.qml
+++ b/src/commoncomponents/DataTransferMessageDelegate.qml
@@ -185,10 +185,15 @@ Loader {
                                        JamiTheme.messageInTxtColor
                             MouseArea {
                                 anchors.fill: parent
-                                propagateComposedEvents: true
                                 cursorShape: canOpen ?
                                                  Qt.PointingHandCursor :
                                                  Qt.ArrowCursor
+                                onClicked: function (mouse) {
+                                    dataTransferItem.hoveredLink = canOpen ?
+                                                ("file:///" + Body) : ""
+                                    if (dataTransferItem.hoveredLink)
+                                        Qt.openUrlExternally(dataTransferItem.hoveredLink)
+                                }
                             }
                         }
                         Label {
diff --git a/src/commoncomponents/ElidedTextLabel.qml b/src/commoncomponents/ElidedTextLabel.qml
index b62670fff..eee8c000e 100644
--- a/src/commoncomponents/ElidedTextLabel.qml
+++ b/src/commoncomponents/ElidedTextLabel.qml
@@ -21,7 +21,7 @@ import QtQuick.Controls
 
 import net.jami.Constants 1.1
 
-Label {
+TextEdit {
     id: root
 
     property string eText : ""
@@ -38,6 +38,9 @@ Label {
     verticalAlignment: Text.AlignVCenter
     color: JamiTheme.textColor
 
+    readOnly: true
+    selectByMouse: true
+
     TextMetrics {
         id: elided
 
diff --git a/src/commoncomponents/MaterialLineEdit.qml b/src/commoncomponents/MaterialLineEdit.qml
index 837b9482d..c9af9eb95 100644
--- a/src/commoncomponents/MaterialLineEdit.qml
+++ b/src/commoncomponents/MaterialLineEdit.qml
@@ -40,6 +40,7 @@ TextField {
     wrapMode: Text.Wrap
     readOnly: false
     selectByMouse: true
+    mouseSelectionMode: TextInput.SelectCharacters
     selectionColor: JamiTheme.placeholderTextColor
 
     font.pointSize: JamiTheme.materialLineEditPointSize
diff --git a/src/commoncomponents/SBSMessageBase.qml b/src/commoncomponents/SBSMessageBase.qml
index db09eaf35..80910de5a 100644
--- a/src/commoncomponents/SBSMessageBase.qml
+++ b/src/commoncomponents/SBSMessageBase.qml
@@ -61,7 +61,7 @@ Control {
 
         anchors.centerIn: parent
 
-        width: parent.width
+        width: parent.width - hPadding * 2
 
         spacing: 2
 
diff --git a/src/commoncomponents/TextMessageDelegate.qml b/src/commoncomponents/TextMessageDelegate.qml
index e8d496677..7cea43fe3 100644
--- a/src/commoncomponents/TextMessageDelegate.qml
+++ b/src/commoncomponents/TextMessageDelegate.qml
@@ -67,8 +67,6 @@ SBSMessageBase {
         },
         Loader {
             id: extraContent
-            width: sourceComponent.width
-            height: sourceComponent.height
             anchors.right: isOutgoing ? parent.right : undefined
             property real minSize: 192
             property real maxSize: 320
diff --git a/src/mainview/components/MessageListView.qml b/src/mainview/components/MessageListView.qml
index 9aec8fa86..e82cbafc6 100644
--- a/src/mainview/components/MessageListView.qml
+++ b/src/mainview/components/MessageListView.qml
@@ -28,7 +28,7 @@ import net.jami.Constants 1.1
 
 import "../../commoncomponents"
 
-ListView {
+JamiListView {
     id: root
 
     function getDistanceToBottom() {
@@ -178,12 +178,9 @@ ListView {
     displayMarginEnd: 4096
     maximumFlickVelocity: 2048
     verticalLayoutDirection: ListView.BottomToTop
-    clip: true
     boundsBehavior: Flickable.StopAtBounds
     currentIndex: -1
 
-    ScrollBar.vertical: ScrollBar {}
-
     model: MessagesAdapter.messageListModel
 
     delegate: DelegateChooser {
diff --git a/src/mainview/components/ScrollToBottomButton.qml b/src/mainview/components/ScrollToBottomButton.qml
index 7f3c0245c..aabe10cff 100644
--- a/src/mainview/components/ScrollToBottomButton.qml
+++ b/src/mainview/components/ScrollToBottomButton.qml
@@ -120,10 +120,12 @@ Control {
         layer {
             enabled: true
             effect: DropShadow {
+                z: -1
                 horizontalOffset: 3.0
                 verticalOffset: 3.0
                 radius: 8.0
                 color: JamiTheme.shadowColor
+                transparentBorder: true
             }
         }
     }
-- 
GitLab