1
0
Fork 0
mirror of https://git.jami.net/savoirfairelinux/jami-client-qt.git synced 2025-08-03 14:25:38 +02:00

generalMenuItem: refinement on long text solution for menuItems

This will make sure that texts are aligned when
some of the texts grow longer (translations)

Change-Id: I28300c3eea01d539ca62c6532daf7d802931b425
This commit is contained in:
Mingrui Zhang 2021-06-04 13:34:03 -04:00 committed by Ming Rui Zhang
parent ddc793e361
commit 7084f6dda0
2 changed files with 32 additions and 16 deletions

View file

@ -45,6 +45,9 @@ MenuItem {
property int leftBorderWidth: JamiTheme.menuItemsCommonBorderWidth
property int rightBorderWidth: JamiTheme.menuItemsCommonBorderWidth
property int itemImageLeftMargin: 24
property int itemTextMargin: 20
signal clicked
contentItem: AbstractButton {
@ -69,7 +72,7 @@ MenuItem {
id: contextMenuItemImage
Layout.alignment: Qt.AlignVCenter | Qt.AlignLeft
Layout.leftMargin: status === Image.Ready ? 24 : 0
Layout.leftMargin: status === Image.Ready ? itemImageLeftMargin : 0
visible: status === Image.Ready
@ -81,28 +84,41 @@ MenuItem {
id: contextMenuItemText
Layout.alignment: Qt.AlignVCenter | Qt.AlignLeft
Layout.leftMargin: contextMenuItemImage.status === Image.Ready ? 20 : 10
Layout.rightMargin: contextMenuItemImage.status === Image.Ready ? 20 : 10
Layout.leftMargin: contextMenuItemImage.status === Image.Ready ?
itemTextMargin : itemTextMargin / 2
Layout.rightMargin: contextMenuItemImage.status === Image.Ready ?
itemTextMargin : itemTextMargin / 2
Layout.preferredHeight: itemPreferredHeight
Layout.preferredWidth: JamiTheme.contextMenuItemTextPreferredWidth
Layout.fillWidth: true
text: itemName
color: JamiTheme.textColor
font.pointSize: JamiTheme.textFontSize
horizontalAlignment: Text.AlignLeft
verticalAlignment: Text.AlignVCenter
elide: Text.ElideRight
onWidthChanged: {
if (autoTextSizeAdjustment
&& width > contextMenuItemText.Layout.preferredWidth) {
if (width > JamiTheme.contextMenuItemTextMaxWidth)
contextMenuItemText.Layout.preferredWidth
= JamiTheme.contextMenuItemTextMaxWidth
else
contextMenuItemText.Layout.preferredWidth = width
itemPreferredWidth += contextMenuItemText.Layout.preferredWidth
- JamiTheme.contextMenuItemTextPreferredWidth
TextMetrics {
id: contextMenuItemTextMetrics
font: contextMenuItemText.font
text: contextMenuItemText.text
onBoundingRectChanged: {
var sizeToCompare = itemPreferredWidth -
(contextMenuItemImage.source.toString().length > 0 ?
itemTextMargin + itemImageLeftMargin + contextMenuItemImage.width :
itemTextMargin / 2)
if (autoTextSizeAdjustment
&& boundingRect.width > sizeToCompare) {
if (boundingRect.width > JamiTheme.contextMenuItemTextMaxWidth) {
itemPreferredWidth += JamiTheme.contextMenuItemTextMaxWidth
- JamiTheme.contextMenuItemTextPreferredWidth
+ itemTextMargin
contextMenuItemText.elide = Text.ElideRight
} else
itemPreferredWidth += boundingRect.width + itemTextMargin
- sizeToCompare
}
}
}
}

View file

@ -198,7 +198,7 @@ Item {
property real avatarSizeInCall: 130
property real aboutButtonPreferredWidth: 150
property real callButtonPreferredSize: 50
property real contextMenuItemTextPreferredWidth: 142
property real contextMenuItemTextPreferredWidth: 152
property real contextMenuItemTextMaxWidth: 182
property int participantCallInStatusViewWidth: 175
property int participantCallInStatusViewHeight: 300