add loader to the call status icon so it is changed properly when call state changes #LINQT-2303

This commit is contained in:
Gaelle Braud 2026-01-12 17:57:29 +01:00
parent 6890362c41
commit 7b7d382cc6

View file

@ -353,34 +353,52 @@ AbstractWindow {
spacing: Utils.getSizeWithScreenRatio(10) spacing: Utils.getSizeWithScreenRatio(10)
RowLayout { RowLayout {
spacing: Utils.getSizeWithScreenRatio(10) spacing: Utils.getSizeWithScreenRatio(10)
EffectImage { Loader {
id: callStatusIcon id: callStatusIconLoader
Layout.preferredWidth: Utils.getSizeWithScreenRatio(30) Layout.preferredWidth: Utils.getSizeWithScreenRatio(30)
Layout.preferredHeight: Utils.getSizeWithScreenRatio(30) Layout.preferredHeight: Utils.getSizeWithScreenRatio(30)
// TODO : change with broadcast or meeting icon when available sourceComponent: EffectImage {
imageSource: !mainWindow.call id: callStatusIcon
? AppIcons.meeting anchors.fill: parent
: (mainWindow.callState === LinphoneEnums.CallState.End || mainWindow.callState === LinphoneEnums.CallState.Released) // TODO : change with broadcast or meeting icon when available
? AppIcons.endCall // onImageSourceChanged: console.log("image source changed", imageSource)
: (mainWindow.callState === LinphoneEnums.CallState.Paused || mainWindow.callState === LinphoneEnums.CallState.PausedByRemote) imageSource: !mainWindow.call
? AppIcons.pause ? AppIcons.meeting
: mainWindow.conference : (mainWindow.callState === LinphoneEnums.CallState.End || mainWindow.callState === LinphoneEnums.CallState.Released)
? AppIcons.usersThree ? AppIcons.endCall
: mainWindow.call.core.dir === LinphoneEnums.CallDir.Outgoing : (mainWindow.call.core.paused || mainWindow.callState === LinphoneEnums.CallState.Paused || mainWindow.callState === LinphoneEnums.CallState.PausedByRemote)
? AppIcons.arrowUpRight ? AppIcons.pause
: AppIcons.arrowDownLeft : mainWindow.conference
colorizationColor: !mainWindow.call ? AppIcons.usersThree
|| mainWindow.call.core.paused : mainWindow.call.core.dir === LinphoneEnums.CallDir.Outgoing
|| mainWindow.callState ? AppIcons.arrowUpRight
=== LinphoneEnums.CallState.Paused : AppIcons.arrowDownLeft
|| mainWindow.callState colorizationColor: !mainWindow.call
=== LinphoneEnums.CallState.PausedByRemote || mainWindow.call.core.paused
|| mainWindow.callState || mainWindow.callState
=== LinphoneEnums.CallState.End === LinphoneEnums.CallState.Paused
|| mainWindow.callState || mainWindow.callState
=== LinphoneEnums.CallState.Released === LinphoneEnums.CallState.PausedByRemote
|| mainWindow.conference ? DefaultStyle.danger_500_main : mainWindow.call.core.dir === LinphoneEnums.CallDir.Outgoing ? DefaultStyle.info_500_main : DefaultStyle.success_500_main || mainWindow.callState
=== LinphoneEnums.CallState.End
|| mainWindow.callState
=== LinphoneEnums.CallState.Released
|| mainWindow.conference ? DefaultStyle.danger_500_main : mainWindow.call.core.dir === LinphoneEnums.CallDir.Outgoing ? DefaultStyle.info_500_main : DefaultStyle.success_500_main
Binding {
target: callStatusIcon
when: middleItemStackView.currentItem.objectName === "waitingRoom"
property: "imageSource"
value: AppIcons.usersThree
}
}
Connections {
target: mainWindow
function onCallStateChanged() {
callStatusIconLoader.active = !callStatusIconLoader.active
callStatusIconLoader.active = !callStatusIconLoader.active
}
}
} }
ColumnLayout { ColumnLayout {
spacing: Utils.getSizeWithScreenRatio(6) spacing: Utils.getSizeWithScreenRatio(6)
@ -1273,12 +1291,6 @@ AbstractWindow {
rightPanel.visible = false rightPanel.visible = false
} }
} }
Binding {
target: callStatusIcon
when: middleItemStackView.currentItem.objectName === "waitingRoom"
property: "imageSource"
value: AppIcons.usersThree
}
Binding { Binding {
target: callStatusText target: callStatusText
when: middleItemStackView.currentItem.objectName === "waitingRoom" when: middleItemStackView.currentItem.objectName === "waitingRoom"