mirror of
https://gitlab.linphone.org/BC/public/linphone-desktop.git
synced 2026-05-02 01:56:23 +00:00
Adapt video conference view to be used for one-one. Adapt waiting room to be used for outgoing and ending calls. Fix display of the icon in ActionButton to respect custom sizes. Fix camera refreshing. Hide some item memu on One-one. Update SDK.
79 lines
2.4 KiB
QML
79 lines
2.4 KiB
QML
import QtQuick 2.7
|
|
import QtQuick.Layouts 1.3
|
|
import QtGraphicalEffects 1.12
|
|
|
|
import App.Styles 1.0
|
|
import Common 1.0
|
|
import Common.Styles 1.0
|
|
import Linphone 1.0
|
|
import Linphone.Styles 1.0
|
|
|
|
import UtilsCpp 1.0
|
|
|
|
import 'qrc:/ui/scripts/Utils/utils.js' as Utils
|
|
|
|
// =============================================================================
|
|
Item {
|
|
id: container
|
|
property bool isCameraFromDevice: true
|
|
property ParticipantDeviceModel currentDevice
|
|
property CallModel callModel
|
|
property bool isPreview: !callModel || !container.currentDevice || container.currentDevice.isMe
|
|
property bool isFullscreen: false
|
|
property bool hideCamera: false
|
|
property bool isPaused: false
|
|
property bool isVideoEnabled: (!callModel || callModel.videoEnabled)
|
|
&& (!container.currentDevice || callModel && (container.currentDevice
|
|
&& (container.currentDevice.videoEnabled || (container.currentDevice.isMe && callModel.cameraEnabled))))
|
|
|
|
property bool a : callModel && callModel.videoEnabled
|
|
property bool b: container.currentDevice && container.currentDevice.videoEnabled
|
|
property bool c: container.currentDevice && container.currentDevice.isMe
|
|
property bool d : callModel && callModel.cameraEnabled
|
|
property bool isReady: cameraLoader.item && cameraLoader.item.isReady
|
|
|
|
signal videoDefinitionChanged()
|
|
|
|
onCurrentDeviceChanged: {if(container.isCameraFromDevice) resetActive()}
|
|
function resetActive(){
|
|
resetTimer.resetActive()
|
|
}
|
|
|
|
Loader {
|
|
id: cameraLoader
|
|
property bool resetActive: false
|
|
|
|
anchors.fill: parent
|
|
|
|
active: !resetActive && container.isVideoEnabled
|
|
sourceComponent: container.isVideoEnabled && !container.isPaused? camera : null
|
|
|
|
Timer{
|
|
id: resetTimer
|
|
interval: 100
|
|
repeat: false
|
|
onTriggered: if(!cameraLoader.active){
|
|
cameraLoader.resetActive = false
|
|
}else{
|
|
start() // Let some more time to propagate active event
|
|
}
|
|
function resetActive(){
|
|
start()// Do it first to avoid deleting caller while processing
|
|
cameraLoader.resetActive = true
|
|
}
|
|
}
|
|
|
|
Component {
|
|
id: camera
|
|
Camera {
|
|
participantDeviceModel: container.currentDevice
|
|
call: container.isCameraFromDevice ? null : container.callModel
|
|
anchors.fill: parent
|
|
isPreview: container.isPreview
|
|
|
|
onRequestNewRenderer: {resetTimer.resetActive()}
|
|
onVideoDefinitionChanged: container.videoDefinitionChanged()
|
|
}
|
|
}
|
|
}
|
|
}
|