diff --git a/.gitignore b/.gitignore index c2c1bcf8f3562362c46626e9d6c545f24d73b0dd..5c45aba0f6ae454143c76f269e13116fc15a99ec 100644 --- a/.gitignore +++ b/.gitignore @@ -3,6 +3,7 @@ doc/Doxyfile GeneratedFiles/ .vs/ +.vscode/ x64/ x86/ [wW]in32/ diff --git a/.vscode/settings.json b/.vscode/settings.json deleted file mode 100644 index 01506c8be45806bdb474ce3bda6ea85d610af0ed..0000000000000000000000000000000000000000 --- a/.vscode/settings.json +++ /dev/null @@ -1,11 +0,0 @@ -{ - "files.associations": { - "*.tcc": "cpp", - "array": "cpp", - "string": "cpp", - "string_view": "cpp", - "ranges": "cpp", - "thread": "cpp", - "xstring": "cpp" - } -} \ No newline at end of file diff --git a/src/mainview/components/MessageListView.qml b/src/mainview/components/MessageListView.qml index bb2ab9a95a918751402bd5da2fe65197736cfe88..dee42c3bd94670b9a62499c2f426fae6fb926673 100644 --- a/src/mainview/components/MessageListView.qml +++ b/src/mainview/components/MessageListView.qml @@ -297,62 +297,77 @@ ListView { Layout.alignment: Qt.AlignVCenter } - 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) - } + Connections { + target: MessagesAdapter - font.pointSize: 8 - font.bold: Font.DemiBold - elide: Text.ElideRight - color: JamiTheme.textColor - text: { - var finalText = "" + function onCurrentConvComposingListChanged () { + var typeIndicatorNameTextString = "" var nameList = MessagesAdapter.currentConvComposingList - if (nameList.length > 4) - return "" - if (nameList.length === 1) - return nameList[0] + 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++) { - finalText += nameList[i] + typeIndicatorNameTextString += nameList[i] if (i === nameList.length - 2) - finalText += JamiStrings.typeIndicatorAnd + typeIndicatorNameTextString += JamiStrings.typeIndicatorAnd else if (i !== nameList.length - 1) - finalText += ", " + typeIndicatorNameTextString += ", " } - - return finalText + typeIndicatorNameText.text = typeIndicatorNameTextString + typeIndicatorEndingText.text = + JamiStrings.typeIndicatorPlural.replace("{}", "") + typeIndicatorNameText.calculateWidth() } } Text { - id: typeIndicatorEndingText + 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 font.pointSize: 8 + font.bold: Font.DemiBold + elide: Text.ElideRight color: JamiTheme.textColor - text: { - var nameList = MessagesAdapter.currentConvComposingList + } - if (nameList.length > 4) - return JamiStrings.typeIndicatorMax - if (nameList.length === 1) - return JamiStrings.typeIndicatorSingle.replace("{}", "") + Text { + id: typeIndicatorEndingText - return JamiStrings.typeIndicatorPlural.replace("{}", "") - } + Layout.alignment: Qt.AlignVCenter + + font.pointSize: 8 + color: JamiTheme.textColor } } }