linux.x86.linphone/Linphone/view/Control/Popup/Notification/NotificationReceivedCall.qml
data 3b3bb966d4 Add ringtone selection dropdown and various bugfixes
- Add ComboBox for ringtone selection in Call Settings
- Convert MKV ringtones to WAV format (Linphone only supports WAV)
- Fix ComboSetting to support dialPlan type for international prefix
- Disable account devices feature to prevent API errors
- Disable automatic update check on startup
- Add ringtone fallback to default when custom file not found
- Fix ringtone dropdown to not override setting on initialization

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-02-08 08:31:15 +01:00

149 lines
5.3 KiB
QML
Executable file

import QtQuick
import QtQuick.Layouts
import Linphone
import UtilsCpp
import 'qrc:/qt/qml/Linphone/view/Style/buttonStyle.js' as ButtonStyle
import "qrc:/qt/qml/Linphone/view/Control/Tool/Helper/utils.js" as Utils
// =============================================================================
Notification {
id: mainItem
radius: Utils.getSizeWithScreenRatio(10)
backgroundColor: DefaultStyle.grey_600
backgroundOpacity: 0.8
overriddenWidth: Utils.getSizeWithScreenRatio(400)
overriddenHeight: content.height
readonly property var call: notificationData && notificationData.call
readonly property var displayName: notificationData && notificationData.displayName
property var state: call.core.state
property var status: call.core.status
property var conference: call.core.conference
onStateChanged:{
if (state != LinphoneEnums.CallState.IncomingReceived){
close()
}
}
onStatusChanged:{
console.log("status", status)
}
Popup {
id: content
visible: mainItem.visible
leftPadding: Utils.getSizeWithScreenRatio(32)
rightPadding: Utils.getSizeWithScreenRatio(32)
topPadding: Utils.getSizeWithScreenRatio(9)
bottomPadding: Utils.getSizeWithScreenRatio(18)
anchors.centerIn: parent
background: Item{}
contentItem: ColumnLayout {
anchors.verticalCenter: parent.verticalCenter
spacing: Utils.getSizeWithScreenRatio(9)
RowLayout {
spacing: Utils.getSizeWithScreenRatio(4)
Layout.alignment: Qt.AlignHCenter
Image {
Layout.preferredWidth: Utils.getSizeWithScreenRatio(12)
Layout.preferredHeight: Utils.getSizeWithScreenRatio(12)
source: AppIcons.logo
}
Text {
text: "Linphone"
color: DefaultStyle.grey_0
font {
pixelSize: Utils.getSizeWithScreenRatio(12)
weight: Typography.b3.weight
capitalization: Font.Capitalize
}
}
}
ColumnLayout {
spacing: Utils.getSizeWithScreenRatio(17)
ColumnLayout {
spacing: Utils.getSizeWithScreenRatio(14)
Layout.alignment: Qt.AlignHCenter
Avatar {
Layout.preferredWidth: Utils.getSizeWithScreenRatio(60)
Layout.preferredHeight: Utils.getSizeWithScreenRatio(60)
Layout.alignment: Qt.AlignHCenter
call: mainItem.call
displayNameVal: mainItem.displayName
secured: securityLevel === LinphoneEnums.SecurityLevel.EndToEndEncryptedAndVerified
isConference: mainItem.call && mainItem.call.core.isConference
}
ColumnLayout {
spacing: 0
Text {
text: displayName
Layout.fillWidth: true
Layout.maximumWidth: mainItem.width - content.leftPadding - content.rightPadding
Layout.alignment: Qt.AlignHCenter
horizontalAlignment: Text.AlignHCenter
maximumLineCount: 1
color: DefaultStyle.grey_0
font {
pixelSize: Utils.getSizeWithScreenRatio(20)
weight: Typography.b3.weight
capitalization: Font.Capitalize
}
}
Text {
//: "Appel entrant"
text: qsTr("call_audio_incoming")
Layout.alignment: Qt.AlignHCenter
color: DefaultStyle.grey_0
font {
pixelSize: Utils.getSizeWithScreenRatio(14)
weight: Utils.getSizeWithScreenRatio(500)
}
}
}
}
RowLayout {
Layout.alignment: Qt.AlignHCenter
Layout.fillWidth: true
spacing: Utils.getSizeWithScreenRatio(26)
Button {
spacing: Utils.getSizeWithScreenRatio(6)
style: ButtonStyle.phoneGreen
Layout.preferredWidth: Utils.getSizeWithScreenRatio(118)
Layout.preferredHeight: Utils.getSizeWithScreenRatio(32)
asynchronous: false
icon.width: Utils.getSizeWithScreenRatio(19)
icon.height: Utils.getSizeWithScreenRatio(19)
//: "Accepter"
text: qsTr("dialog_accept")
textSize: Utils.getSizeWithScreenRatio(14)
textWeight: Utils.getSizeWithScreenRatio(500)
onClicked: {
console.debug("[NotificationReceivedCall] Accept click")
UtilsCpp.openCallsWindow(mainItem.call)
mainItem.call.core.lAccept(false)
}
}
Button {
spacing: Utils.getSizeWithScreenRatio(6)
style: ButtonStyle.phoneRed
Layout.preferredWidth: Utils.getSizeWithScreenRatio(118)
Layout.preferredHeight: Utils.getSizeWithScreenRatio(32)
asynchronous: false
icon.width: Utils.getSizeWithScreenRatio(19)
icon.height: Utils.getSizeWithScreenRatio(19)
//: "Refuser
text: qsTr("dialog_deny")
textSize: Utils.getSizeWithScreenRatio(14)
textWeight: Utils.getSizeWithScreenRatio(500)
onClicked: {
console.debug("[NotificationReceivedCall] Decline click")
mainItem.call.core.lDecline()
}
}
}
}
}
}
}