linphone-desktop/ui/views/App/Settings/SettingsCallsChat.qml

158 lines
3.7 KiB
QML

import QtQuick 2.7
import Common 1.0
import Linphone 1.0
import Utils 1.0
import App.Styles 1.0
// =============================================================================
TabContainer {
Column {
anchors.fill: parent
spacing: SettingsWindowStyle.forms.spacing
Form {
title: qsTr('callsTitle')
width: parent.width
FormLine {
visible: !!encryption.encryptions.length
FormGroup {
label: qsTr('encryptionLabel')
ExclusiveButtons {
id: encryption
property var encryptions: (function () {
var encryptions = SettingsModel.supportedMediaEncryptions
if (encryptions.length) {
encryptions.unshift([ SettingsModel.MediaEncryptionNone, qsTr('noEncryption') ])
}
return encryptions
})()
texts: encryptions.map(function (value) {
return value[1]
})
onClicked: SettingsModel.mediaEncryption = encryptions[button][0]
Binding {
property: 'selectedButton'
target: encryption
value: {
var toFound = SettingsModel.mediaEncryption
return Number(
Utils.findIndex(encryption.encryptions, function (value) {
return toFound === value[0]
})
)
}
}
}
}
}
FormLine {
FormGroup {
label: qsTr('autoAnswerLabel')
Switch {
id: autoAnswer
checked: SettingsModel.autoAnswerStatus
onClicked: SettingsModel.autoAnswerStatus = !checked
}
}
FormGroup {
label: qsTr('autoAnswerDelayLabel')
NumericField {
readOnly: !autoAnswer.checked
minValue: 0
maxValue: 30000
step: 1000
text: SettingsModel.autoAnswerDelay
onEditingFinished: SettingsModel.autoAnswerDelay = text
}
}
}
FormLine {
FormGroup {
label: qsTr('autoAnswerWithVideoLabel')
Switch {
checked: SettingsModel.autoAnswerVideoStatus
enabled: autoAnswer.checked
onClicked: SettingsModel.autoAnswerVideoStatus = !checked
}
}
}
}
Form {
title: qsTr('chatTitle')
width: parent.width
FormLine {
FormGroup {
label: qsTr('fileServerLabel')
TextField {
text: SettingsModel.fileTransferUrl
onEditingFinished: SettingsModel.fileTransferUrl = text
}
}
}
FormLine {
visible: false // TODO: Use `SettingsModel.limeIsSupported` binding in V2.
FormGroup {
label: qsTr('encryptWithLimeLabel')
ExclusiveButtons {
id: lime
property var limeStates: ([
[ SettingsModel.LimeStateDisabled, qsTr('limeDisabled') ],
[ SettingsModel.LimeStateMandatory, qsTr('limeRequired') ],
[ SettingsModel.LimeStatePreferred, qsTr('limePreferred') ]
])
texts: limeStates.map(function (value) {
return value[1]
})
onClicked: SettingsModel.limeState = limeStates[button][0]
Binding {
property: 'selectedButton'
target: lime
value: {
var toFound = SettingsModel.limeState
return Number(
Utils.findIndex(lime.limeStates, function (value) {
return toFound === value[0]
})
)
}
}
}
}
}
}
}
}