linphone-desktop/Linphone/view/Control/Button/IconLabelButton.qml
Gaelle Braud 58eb93d13b UI fixes :
display real error message when carddav sync fails

hide mark as read button if no unread message #LINQT-2144

fix screencast panel hidden while user is sharing screen #LINQT-2136

disable selection for cancelled meetings #LINQT-2121
2025-11-13 09:23:28 +01:00

72 lines
2.2 KiB
QML

import QtQuick
import QtQuick.Effects
import QtQuick.Layouts
import Linphone
import 'qrc:/qt/qml/Linphone/view/Style/buttonStyle.js' as ButtonStyle
import "qrc:/qt/qml/Linphone/view/Control/Tool/Helper/utils.js" as Utils
Button {
id: mainItem
icon.width: Utils.getSizeWithScreenRatio(24)
icon.height: Utils.getSizeWithScreenRatio(24)
textSize: Typography.p1.pixelSize
textWeight: Typography.p1.weight
radius: Utils.getSizeWithScreenRatio(5)
shadowEnabled: mainItem.activeFocus || hovered
style: ButtonStyle.hoveredBackground
property bool inverseLayout: false
spacing: Utils.getSizeWithScreenRatio(5)
contentItem: RowLayout {
spacing: mainItem.spacing
layoutDirection: mainItem.inverseLayout ? Qt.RightToLeft: Qt.LeftToRight
EffectImage {
imageSource: mainItem.icon.source
imageWidth: mainItem.icon.width
imageHeight: mainItem.icon.height
colorizationColor: mainItem.pressed
? mainItem.pressedImageColor
: mainItem.hovered
? mainItem.hoveredImageColor
: mainItem.contentImageColor
Layout.preferredWidth: mainItem.icon.width
Layout.preferredHeight: mainItem.icon.height
}
Text {
id: textItem
horizontalAlignment: Text.AlignLeft
verticalAlignment: Text.AlignVCenter
Layout.preferredWidth: textMetrics.advanceWidth
Layout.fillWidth: true
wrapMode: Text.WrapAnywhere
text: mainItem.text
maximumLineCount: 1
color: pressed
? mainItem.pressedTextColor
: mainItem.hovered
? mainItem.hoveredTextColor
: mainItem.textColor
font {
pixelSize: mainItem.textSize
weight: mainItem.textWeight
family: DefaultStyle.defaultFont
capitalization: mainItem.capitalization
underline: mainItem.underline
bold: (mainItem.style === ButtonStyle.noBackground || mainItem.style === ButtonStyle.noBackgroundRed) && (mainItem.hovered || mainItem.pressed)
}
}
TextMetrics {
id: textMetrics
text: mainItem.text
font {
pixelSize: mainItem.textSize
weight: mainItem.textWeight * 2
family: DefaultStyle.defaultFont
capitalization: mainItem.capitalization
underline: mainItem.underline
bold: true
}
}
Item {Layout.fillWidth: true}
}
}