mirror of
https://gitlab.linphone.org/BC/public/linphone-desktop.git
synced 2026-01-26 00:08:13 +00:00
correctly initialize remote params + create video call paused call ui calls window simplify carousel effect image : don't show effect if no colorization use our custom button instead of qtquick one image buttons size security page ui update right panel on call history deleted
174 lines
4.5 KiB
QML
174 lines
4.5 KiB
QML
import QtQuick 2.7
|
|
import QtQuick.Controls 2.2 as Control
|
|
import QtQuick.Layouts
|
|
import QtQuick.Effects
|
|
import Linphone
|
|
|
|
Control.Popup {
|
|
clip: true
|
|
id: mainItem
|
|
signal buttonPressed(string text)
|
|
signal launchCall()
|
|
signal wipe()
|
|
property bool closeButtonVisible: true
|
|
closePolicy: Control.Popup.CloseOnEscape
|
|
leftPadding: closeButton.width
|
|
rightPadding: closeButton.width
|
|
rightInset: closeButton.width
|
|
topPadding: closeButton.height
|
|
background: Item {
|
|
anchors.fill: parent
|
|
Rectangle {
|
|
id: numPadBackground
|
|
anchors.fill: parent
|
|
color: DefaultStyle.grey_100
|
|
radius: 20 * DefaultStyle.dp
|
|
}
|
|
// MultiEffect {
|
|
// id: effect
|
|
// anchors.fill: parent
|
|
// source: numPadBackground
|
|
// shadowEnabled: true
|
|
// shadowColor: DefaultStyle.grey_1000
|
|
// shadowOpacity: 0.1
|
|
// shadowVerticalOffset: -200 * DefaultStyle.dp
|
|
// shadowBlur: 1
|
|
// }
|
|
Rectangle {
|
|
width: parent.width
|
|
height: parent.height / 2
|
|
anchors.bottom: parent.bottom
|
|
color: DefaultStyle.grey_100
|
|
}
|
|
Button {
|
|
id: closeButton
|
|
visible: mainItem.closeButtonVisible
|
|
anchors.top: parent.top
|
|
anchors.right: parent.right
|
|
anchors.topMargin: 10 * DefaultStyle.dp
|
|
anchors.rightMargin: 10 * DefaultStyle.dp
|
|
background: Item {
|
|
anchors.fill: parent
|
|
visible: false
|
|
}
|
|
icon.source: AppIcons.closeX
|
|
width: 24 * DefaultStyle.dp
|
|
height: 24 * DefaultStyle.dp
|
|
onClicked: mainItem.close()
|
|
}
|
|
}
|
|
contentItem: GridLayout {
|
|
columns: 3
|
|
columnSpacing: 3
|
|
Layout.fillWidth: true
|
|
Layout.fillHeight: true
|
|
Repeater {
|
|
model: 9
|
|
Button {
|
|
id: numPadButton
|
|
Layout.alignment: Qt.AlignHCenter
|
|
required property int index
|
|
implicitWidth: 60 * DefaultStyle.dp
|
|
implicitHeight: 60 * DefaultStyle.dp
|
|
background: Rectangle {
|
|
anchors.fill: parent
|
|
color: numPadButton.down ? DefaultStyle.numericPadPressedButtonColor : DefaultStyle.grey_0
|
|
radius: 71 * DefaultStyle.dp
|
|
}
|
|
contentItem: Text {
|
|
id: innerText
|
|
horizontalAlignment: Text.AlignHCenter
|
|
verticalAlignment: Text.AlignVCenter
|
|
anchors.centerIn: parent
|
|
text: index + 1
|
|
font {
|
|
pixelSize: 32 * DefaultStyle.dp
|
|
weight: 400 * DefaultStyle.dp
|
|
}
|
|
}
|
|
onClicked: {
|
|
mainItem.buttonPressed(innerText.text)
|
|
}
|
|
}
|
|
}
|
|
Repeater {
|
|
model: [
|
|
{pressText: "*"},
|
|
{pressText: "0", longPressText: "+"},
|
|
{pressText: "#"}
|
|
]
|
|
Button {
|
|
id: digitButton
|
|
Layout.alignment: Qt.AlignHCenter
|
|
shadowEnabled: true
|
|
implicitWidth: 60 * DefaultStyle.dp
|
|
implicitHeight: 60 * DefaultStyle.dp
|
|
|
|
background: Rectangle {
|
|
anchors.fill: parent
|
|
color: digitButton.down ? DefaultStyle.numericPadPressedButtonColor : DefaultStyle.grey_0
|
|
radius: 71 * DefaultStyle.dp
|
|
}
|
|
contentItem: Item {
|
|
anchors.fill: parent
|
|
Text {
|
|
id: pressText
|
|
height: contentHeight
|
|
anchors.left: parent.left
|
|
anchors.right: parent.right
|
|
horizontalAlignment: Text.AlignHCenter
|
|
Component.onCompleted: {if (modelData.longPressText === undefined) anchors.centerIn= parent}
|
|
text: modelData.pressText
|
|
font.pixelSize: 32 * DefaultStyle.dp
|
|
}
|
|
Text {
|
|
id: longPressText
|
|
height: contentHeight
|
|
anchors.left: parent.left
|
|
anchors.right: parent.right
|
|
y: digitButton.height/2
|
|
horizontalAlignment: Text.AlignHCenter
|
|
visible: modelData.longPressText ? modelData.longPressText.length > 0 : false
|
|
text: modelData.longPressText ? modelData.longPressText : ""
|
|
font.pixelSize: 22 * DefaultStyle.dp
|
|
}
|
|
}
|
|
onClicked: mainItem.buttonPressed(pressText.text)
|
|
onPressAndHold: mainItem.buttonPressed(longPressText.text)
|
|
}
|
|
}
|
|
Item {
|
|
// Invisible item to move the last two buttons to the right
|
|
}
|
|
Button {
|
|
id: launchCallButton
|
|
implicitWidth: 75 * DefaultStyle.dp
|
|
implicitHeight: 55 * DefaultStyle.dp
|
|
Layout.alignment: Qt.AlignHCenter
|
|
background: Rectangle {
|
|
anchors.fill: parent
|
|
color: DefaultStyle.success_500main
|
|
radius: 71 * DefaultStyle.dp
|
|
}
|
|
icon.source: AppIcons.phone
|
|
icon.width: 32 * DefaultStyle.dp
|
|
icon.height: 32 * DefaultStyle.dp
|
|
contentImageColor: DefaultStyle.grey_0
|
|
onClicked: mainItem.launchCall()
|
|
}
|
|
Button {
|
|
leftPadding: 5 * DefaultStyle.dp
|
|
rightPadding: 5 * DefaultStyle.dp
|
|
topPadding: 5 * DefaultStyle.dp
|
|
bottomPadding: 5 * DefaultStyle.dp
|
|
Layout.alignment: Qt.AlignHCenter
|
|
background: Item {
|
|
visible: false
|
|
}
|
|
icon.source: AppIcons.backspaceFill
|
|
icon.width: 38 * DefaultStyle.dp
|
|
icon.height: 38 * DefaultStyle.dp
|
|
onClicked: mainItem.wipe()
|
|
}
|
|
}
|
|
}
|