mirror of
https://gitlab.linphone.org/BC/public/linphone-desktop.git
synced 2026-04-27 10:08:41 +00:00
- 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.
61 lines
2 KiB
QML
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
|
|
}
|
|
}
|