mirror of
https://gitlab.linphone.org/BC/public/linphone-desktop.git
synced 2026-01-17 11:28:07 +00:00
67 lines
2.4 KiB
QML
67 lines
2.4 KiB
QML
import QtQuick 2.7
|
|
import QtQuick.Layouts 1.3
|
|
import QtQml.Models 2.12
|
|
import QtGraphicalEffects 1.12
|
|
|
|
import Common 1.0
|
|
import Common.Styles 1.0
|
|
import Linphone 1.0
|
|
import LinphoneEnums 1.0
|
|
|
|
import UtilsCpp 1.0
|
|
|
|
import App.Styles 1.0
|
|
|
|
import ConstantsCpp 1.0
|
|
// Temp
|
|
import 'Incall.js' as Logic
|
|
import 'qrc:/ui/scripts/Utils/utils.js' as Utils
|
|
|
|
// =============================================================================
|
|
|
|
Mosaic {
|
|
id: grid
|
|
property alias callModel: participantDevices.callModel
|
|
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 ParticipantDeviceProxyModel participantDevices : ParticipantDeviceProxyModel {
|
|
id: participantDevices
|
|
showMe: true
|
|
}
|
|
model: participantDevices
|
|
delegate: Item{
|
|
id: avatarCell
|
|
property ParticipantDeviceModel currentDevice: gridModel.participantDevices.getAt(index)
|
|
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
|
|
anchors.fill: parent
|
|
|
|
cameraQmlName: 'G_'+index
|
|
callModel: index >= 0 ? participantDevices.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
|
|
}
|
|
}
|
|
}
|
|
}
|