1
0
Fork 0
mirror of https://git.jami.net/savoirfairelinux/jami-client-qt.git synced 2025-07-18 06:25:24 +02:00

messagelistview: fix binding loop and simplify typing indicator logic

Removed unnecessary settings.json

Change-Id: If2eccb5c918192e33cd4e742a98c43c212eee547
This commit is contained in:
Mingrui Zhang 2021-11-10 10:27:27 -05:00 committed by Sébastien Blin
parent b9c7058b26
commit 978e8d7935
3 changed files with 53 additions and 48 deletions

1
.gitignore vendored
View file

@ -3,6 +3,7 @@ doc/Doxyfile
GeneratedFiles/
.vs/
.vscode/
x64/
x86/
[wW]in32/

11
.vscode/settings.json vendored
View file

@ -1,11 +0,0 @@
{
"files.associations": {
"*.tcc": "cpp",
"array": "cpp",
"string": "cpp",
"string_view": "cpp",
"ranges": "cpp",
"thread": "cpp",
"xstring": "cpp"
}
}

View file

@ -297,43 +297,68 @@ ListView {
Layout.alignment: Qt.AlignVCenter
}
Connections {
target: MessagesAdapter
function onCurrentConvComposingListChanged () {
var typeIndicatorNameTextString = ""
var nameList = MessagesAdapter.currentConvComposingList
if (nameList.length > 4) {
typeIndicatorNameText.text = ""
typeIndicatorEndingText.text = JamiStrings.typeIndicatorMax
typeIndicatorNameText.calculateWidth()
return
}
if (nameList.length === 1) {
typeIndicatorNameText.text = nameList[0]
typeIndicatorEndingText.text =
JamiStrings.typeIndicatorSingle.replace("{}", "")
typeIndicatorNameText.calculateWidth()
return
}
for (var i = 0; i < nameList.length; i++) {
typeIndicatorNameTextString += nameList[i]
if (i === nameList.length - 2)
typeIndicatorNameTextString += JamiStrings.typeIndicatorAnd
else if (i !== nameList.length - 1)
typeIndicatorNameTextString += ", "
}
typeIndicatorNameText.text = typeIndicatorNameTextString
typeIndicatorEndingText.text =
JamiStrings.typeIndicatorPlural.replace("{}", "")
typeIndicatorNameText.calculateWidth()
}
}
Text {
id: typeIndicatorNameText
property int textWidth: 0
function calculateWidth () {
if (!text)
return 0
else {
var textSize = JamiQmlUtils.getTextBoundingRect(font, text).width
var typingContentWidth = typingDots.width + typingDots.anchors.leftMargin
+ typeIndicatorNameText.anchors.leftMargin
+ typeIndicatorEndingText.contentWidth
typeIndicatorNameText.Layout.preferredWidth =
Math.min(typeIndicatorContainer.width - 5 - typingContentWidth,
textSize)
}
}
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)
}
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 {
@ -343,16 +368,6 @@ ListView {
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("{}", "")
return JamiStrings.typeIndicatorPlural.replace("{}", "")
}
}
}
}