From ff399a524c927a8970aed8fd94c7036f39b37f93 Mon Sep 17 00:00:00 2001 From: Sebastian Wolf Date: Fri, 25 Dec 2020 13:50:13 +0100 Subject: [PATCH] Display group information for anonymous messages --- qml/components/InReplyToRow.qml | 2 +- qml/components/MessageListViewItem.qml | 9 +++++---- qml/components/MessageOverlayFlickable.qml | 5 +++-- 3 files changed, 9 insertions(+), 7 deletions(-) diff --git a/qml/components/InReplyToRow.qml b/qml/components/InReplyToRow.qml index 994e67a..3c4fb9b 100644 --- a/qml/components/InReplyToRow.qml +++ b/qml/components/InReplyToRow.qml @@ -36,7 +36,7 @@ Row { onInReplyToMessageChanged: { if (inReplyToMessage) { - inReplyToUserText.text = (inReplyToRow.inReplyToMessage.sender.user_id !== inReplyToRow.myUserId) ? Emoji.emojify(Functions.getUserName(tdLibWrapper.getUserInformation(inReplyToRow.inReplyToMessage.sender.user_id)), inReplyToUserText.font.pixelSize) : qsTr("You"); + inReplyToUserText.text = (inReplyToMessage.sender["@type"] === "messageSenderChat" ? page.chatInformation.title : (inReplyToRow.inReplyToMessage.sender.user_id !== inReplyToRow.myUserId) ? Emoji.emojify(Functions.getUserName(tdLibWrapper.getUserInformation(inReplyToRow.inReplyToMessage.sender.user_id)), inReplyToUserText.font.pixelSize) : qsTr("You")); inReplyToMessageText.text = Emoji.emojify(Functions.getMessageText(inReplyToRow.inReplyToMessage, true, inReplyToRow.inReplyToMessage.sender.user_id === inReplyToRow.myUserId, false), inReplyToMessageText.font.pixelSize); } } diff --git a/qml/components/MessageListViewItem.qml b/qml/components/MessageListViewItem.qml index a392514..b102e81 100644 --- a/qml/components/MessageListViewItem.qml +++ b/qml/components/MessageListViewItem.qml @@ -29,6 +29,7 @@ ListItem { property var messageId property var myMessage property bool canReplyToMessage + readonly property bool isAnonymous: myMessage.sender["@type"] === "messageSenderChat" readonly property var userInformation: tdLibWrapper.getUserInformation(myMessage.sender.user_id) property QtObject precalculatedValues: ListView.view.precalculatedValues readonly property color textColor: isOwnMessage ? Theme.highlightColor : Theme.primaryColor @@ -218,14 +219,14 @@ ListItem { sourceComponent: Component { ProfileThumbnail { id: messagePictureThumbnail - photoData: (typeof messageListItem.userInformation.profile_photo !== "undefined") ? messageListItem.userInformation.profile_photo.small : ({}) + photoData: messageListItem.isAnonymous ? ((typeof page.chatInformation.photo !== "undefined") ? page.chatInformation.photo.small : {}) : ((typeof messageListItem.userInformation.profile_photo !== "undefined") ? messageListItem.userInformation.profile_photo.small : ({})) replacementStringHint: userText.text width: Theme.itemSizeSmall height: Theme.itemSizeSmall visible: precalculatedValues.showUserInfo MouseArea { anchors.fill: parent - enabled: !messageListItem.precalculatedValues.pageIsSelecting + enabled: !(messageListItem.precalculatedValues.pageIsSelecting || messageListItem.isAnonymous) onClicked: { tdLibWrapper.createPrivateChat(messageListItem.userInformation.id); } @@ -272,7 +273,7 @@ ListItem { id: userText width: parent.width - text: messageListItem.isOwnMessage ? qsTr("You") : Emoji.emojify(Functions.getUserName(messageListItem.userInformation), font.pixelSize) + text: messageListItem.isOwnMessage ? qsTr("You") : Emoji.emojify(messageListItem.isAnonymous ? page.chatInformation.title : Functions.getUserName(messageListItem.userInformation), font.pixelSize) font.pixelSize: Theme.fontSizeExtraSmall font.weight: Font.ExtraBold color: messageListItem.textColor @@ -283,7 +284,7 @@ ListItem { visible: precalculatedValues.showUserInfo MouseArea { anchors.fill: parent - enabled: !messageListItem.precalculatedValues.pageIsSelecting + enabled: !(messageListItem.precalculatedValues.pageIsSelecting || messageListItem.isAnonymous) onClicked: { tdLibWrapper.createPrivateChat(messageListItem.userInformation.id); } diff --git a/qml/components/MessageOverlayFlickable.qml b/qml/components/MessageOverlayFlickable.qml index f06682c..b6e996d 100644 --- a/qml/components/MessageOverlayFlickable.qml +++ b/qml/components/MessageOverlayFlickable.qml @@ -33,6 +33,7 @@ Flickable { property bool showHeader: true readonly property var userInformation: tdLibWrapper.getUserInformation(overlayMessage.sender.user_id); readonly property bool isOwnMessage: tdLibWrapper.getUserInformation().id === overlayMessage.sender.user_id; + readonly property bool isAnonymous: overlayMessage.sender["@type"] === "messageSenderChat" readonly property string extraContentComponentName: (typeof overlayMessage.content !== "undefined" && typeof chatView.contentComponentNames[overlayMessage.content['@type']] !== "undefined" ) ? chatView.contentComponentNames[overlayMessage.content['@type']] : "" signal requestClose; @@ -104,7 +105,7 @@ Flickable { spacing: Theme.paddingMedium ProfileThumbnail { id: overlayMessagePictureThumbnail - photoData: (typeof messageOverlayFlickable.userInformation.profile_photo !== "undefined") ? messageOverlayFlickable.userInformation.profile_photo.small : ({}) + photoData: messageOverlayFlickable.isAnonymous ? ((typeof chatPage.chatInformation.photo !== "undefined") ? chatPage.chatInformation.photo.small : {}) : ((typeof messageOverlayFlickable.userInformation.profile_photo !== "undefined") ? messageOverlayFlickable.userInformation.profile_photo.small : ({})) replacementStringHint: overlayMessageUserText.text width: Theme.itemSizeLarge height: Theme.itemSizeLarge @@ -114,7 +115,7 @@ Flickable { width: parent.width - overlayMessagePictureThumbnail.width anchors.verticalCenter: parent.verticalCenter - text: messageOverlayFlickable.isOwnMessage ? qsTr("You") : Emoji.emojify(Functions.getUserName(messageOverlayFlickable.userInformation), font.pixelSize) + text: messageOverlayFlickable.isOwnMessage ? qsTr("You") : Emoji.emojify(messageOverlayFlickable.isAnonymous ? chatPage.chatInformation.title : Functions.getUserName(messageOverlayFlickable.userInformation), font.pixelSize) font.pixelSize: Theme.fontSizeExtraLarge font.weight: Font.ExtraBold maximumLineCount: 1