linphone-desktop/linphone-app/ui/modules/Common/Menus/MenuItem.qml
Julien Wadel 39ca09d353 Remove potential crash on local participant.
Add unscheduled conference and adding participants.
Quickfix on overwrite missing menu style.
Display conference subject and organizer address in call notification/display.
2022-06-10 17:11:38 +02:00

103 lines
2.9 KiB
QML

import QtQuick 2.7
import QtQuick.Controls 2.3 as Controls //2.3 for menu property (Qt 5.10)
import QtQuick.Layouts 1.3
import Common 1.0
import Common.Styles 1.0
// =============================================================================
// Using MenuItem.icon doesn't seem to work as of 07/2021
// Workaround : Implement own Icon
Controls.MenuItem {
id: button
property alias iconMenu : iconArea.icon
property alias iconSizeMenu : iconArea.iconSize
property alias iconOverwriteColorMenu: iconArea.overwriteColor
property alias iconLayoutDirection : rowArea.layoutDirection
property var menuItemStyle : MenuItemStyle.normal
onMenuItemStyleChanged: if(!menuItemStyle) menuItemStyle = MenuItemStyle.normal
property alias textWeight : rowText.font.bold
property int offsetTopMargin : 0
property int offsetBottomMargin : 0
height:visible?undefined:0
Component.onCompleted: menu.width = Math.max(menu.width, implicitWidth)
background: Rectangle {
color: button.down
? menuItemStyle.background.color.pressed
: (
button.hovered
? menuItemStyle.background.color.hovered
: menuItemStyle.background.color.normal
)
implicitHeight: button.menuItemStyle.background.height
}
contentItem:RowLayout{
id:rowArea
spacing:15
Icon{
id: iconArea
visible: icon
width: icon?iconSize:0
Layout.leftMargin:(iconLayoutDirection == Qt.LeftToRight ? menuItemStyle.leftMargin : 0)
Layout.rightMargin:(iconLayoutDirection == Qt.LeftToRight ? 0 : menuItemStyle.rightMargin)
overwriteColor: button.enabled
? (button.down
? menuItemStyle.text.color.pressed
: (
button.hovered
? menuItemStyle.text.color.hovered
: menuItemStyle.text.color.normal
))
: menuItemStyle.text.color.disabled
}
Text {
id:rowText
Layout.fillWidth: true
Layout.fillHeight: true
Layout.leftMargin:(iconLayoutDirection == Qt.LeftToRight ? 0 : menuItemStyle.leftMargin)
Layout.rightMargin:(iconLayoutDirection == Qt.LeftToRight ? menuItemStyle.rightMargin : 0)
color: button.enabled
? (button.down
? menuItemStyle.text.color.pressed
: (
button.hovered
? menuItemStyle.text.color.hovered
: menuItemStyle.text.color.normal
))
: menuItemStyle.text.color.disabled
elide: Text.ElideRight
font {
weight: menuItemStyle.text.weight
pointSize: menuItemStyle.text.pointSize
}
text: button.text
//leftPadding: menuItemStyle.leftPadding
//rightPadding: menuItemStyle.rightPadding
horizontalAlignment: Text.AlignLeft
verticalAlignment: Text.AlignVCenter
//anchors.top: parent.top
//anchors.bottom : parent.bottom
}
}
hoverEnabled: true
MouseArea{
anchors.fill:parent
propagateComposedEvents:true
acceptedButtons: Qt.NoButton
cursorShape: parent.hovered
? Qt.PointingHandCursor
: Qt.ArrowCursor
}
}