mirror of
https://gitlab.linphone.org/BC/public/linphone-desktop.git
synced 2026-01-17 11:28:07 +00:00
66 lines
2.7 KiB
QML
66 lines
2.7 KiB
QML
import QtQuick
|
|
import QtQuick.Layouts
|
|
import QtQml.Models
|
|
|
|
import Linphone
|
|
|
|
// =============================================================================
|
|
|
|
Mosaic {
|
|
id: grid
|
|
property alias call: allDevices.currentCall
|
|
property bool cameraEnabled: true
|
|
property int participantCount: gridModel.count
|
|
|
|
// On grid view, we limit the quality if there are enough participants// The vga mode has been activated from the factory rc
|
|
//onParticipantCountChanged: participantCount > ConstantsCpp.maxMosaicParticipants ? SettingsModel.setLimitedMosaicQuality() : SettingsModel.setHighMosaicQuality()
|
|
delegateModel: DelegateModel{
|
|
id: gridModel
|
|
property ParticipantDeviceProxy participantDevices : ParticipantDeviceProxy {
|
|
id: allDevices
|
|
qmlName: "G"
|
|
Component.onCompleted: console.log("Loaded : " +allDevices + " = " +allDevices.count)
|
|
}
|
|
model: grid.call.core.isConference ? participantDevices: [0,1]
|
|
delegate: Item{
|
|
id: avatarCell
|
|
property ParticipantDeviceGui currentDevice: grid.call.core.isConference ? gridModel.participantDevices.getAt(index) : null
|
|
onCurrentDeviceChanged: {
|
|
if(index < 0) cameraView.enabled = false // this is a delegate destruction. We need to stop camera before Qt change its currentDevice (and then, let CameraView to delete wrong renderer)
|
|
}
|
|
|
|
height: grid.cellHeight - 10
|
|
width: grid.cellWidth - 10
|
|
Sticker {
|
|
id: cameraView
|
|
previewEnabled: index == 0
|
|
visible: mainItem.callState != LinphoneEnums.CallState.End && mainItem.callState != LinphoneEnums.CallState.Released
|
|
anchors.fill: parent
|
|
qmlName: 'G_'+index
|
|
call: !grid.call.core.isConference ? grid.call : null
|
|
|
|
participantDevice: avatarCell.currentDevice
|
|
Component.onCompleted: console.log(qmlName + " is " +(call ? call.core.peerAddress : currentDevice ? currentDevice.core.address : 'addr_NotDefined'))
|
|
}
|
|
/*
|
|
Sticker{
|
|
id: cameraView
|
|
anchors.fill: parent
|
|
|
|
cameraQmlName: 'G_'+index
|
|
callModel: index >= 0 ? allDevices.callModel : null // do this before to prioritize changing call on remove
|
|
deactivateCamera: index <0 || !grid.cameraEnabled || grid.callModel.pausedByUser
|
|
currentDevice: gridModel.participantDevices.getAt(index)
|
|
|
|
isCameraFromDevice: true
|
|
isPaused: !isPreview && avatarCell.currentDevice && avatarCell.currentDevice.isPaused
|
|
showCloseButton: false
|
|
showCustomButton: false
|
|
avatarStickerBackgroundColor: isPreview? IncallStyle.container.avatar.stickerPreviewBackgroundColor.color : IncallStyle.container.avatar.stickerBackgroundColor.color
|
|
avatarBackgroundColor: IncallStyle.container.avatar.backgroundColor.color
|
|
|
|
//onCloseRequested: participantDevices.showMe = false
|
|
}*/
|
|
}
|
|
}
|
|
}
|