linphone-desktop/linphone-app/ui/modules/Linphone/Calls/IncallAvatar.qml
Julien Wadel 6325f6885c - Update to new API on participant joined/left.
- Move active speaker managment to list instead of proxy (to be next to the new API state changes).
- Update participants on conference created event to avoid losing me and other devices (SDK callbakcs are not usable before create event).
- Fix selected active speaker when being in conference without participants.
- Fix active speaker on new/left participants.
- Protect mosaic transitions from deletion.
- Username selection from IncallAvatar.
- Deletion protection on camera when changing layouts by introducing a minor delay.
- Shutdown preview when going out from waiting room.
- Update design of waiting room.
- Change flipping transition to opacity.
- Update SDK (fix the camera reset of Active speaker when new participant)
- Fix blanks lines in chat menu.
2022-07-08 22:36:47 +02:00

61 lines
2 KiB
QML

import QtQuick 2.7
import Linphone 1.0
import UtilsCpp 1.0
import App.Styles 1.0
// =============================================================================
Avatar {
id: mainItem
property var call
property var participantDeviceModel
property ConferenceInfoModel conferenceInfoModel
property bool isPreview: false
property var _sipAddressObserver: participantDeviceModel
? SipAddressesModel.getSipAddressObserver(participantDeviceModel.address, '')
: isPreview
? SipAddressesModel.getSipAddressObserver( AccountSettingsModel.fullSipAddress, AccountSettingsModel.fullSipAddress)
: call
? SipAddressesModel.getSipAddressObserver( call.fullPeerAddress, call.fullLocalAddress)
: null
property var _username: conferenceInfoModel
? conferenceInfoModel.subject
: call && call.conferenceModel
? call.conferenceModel.subject
: _sipAddressObserver
? UtilsCpp.getDisplayName(_sipAddressObserver.peerAddress)
: ''
property bool isPaused: (call && (call.status === CallModel.CallStatusPaused)) || (participantDeviceModel && participantDeviceModel.isPaused) || false
Component.onDestruction: _sipAddressObserver=null// Need to set it to null because of not calling destructor if not.
backgroundColor: CallStyle.container.avatar.backgroundColor
foregroundColor: mainItem.isPaused ? CallStyle.container.pause.color : 'transparent'
image: {
if (_sipAddressObserver) {
var contact = _sipAddressObserver.contact
return contact && contact.vcard.avatar
}else
return null;
}
username: (mainItem.isPaused || !_username) ? '' : _username
Text {
anchors.fill: parent
color: CallStyle.container.pause.text.color
// `|| 1` => `pointSize` must be greater than 0.
font.pointSize: (width / CallStyle.container.pause.text.pointSizeFactor) || 1
horizontalAlignment: Text.AlignHCenter
verticalAlignment: Text.AlignVCenter
text: '❙❙'
textFormat: Text.RichText
visible: mainItem.isPaused
}
}