fix active speaker preview visibility

fix display chat after creation #LINQT-2001
+ error message if creation fails

fix meeting list

reset conf layout to the previous one when stop sharing screen #LINQT-1952
This commit is contained in:
Gaelle Braud 2025-09-26 10:34:24 +02:00
parent 641a081e60
commit faa8f73230
9 changed files with 125 additions and 60 deletions

View file

@ -94,6 +94,7 @@ void ConferenceInfoList::setSelf(QSharedPointer<ConferenceInfoList> me) {
connectItem(item); connectItem(item);
mList << item.template objectCast<QObject>(); mList << item.template objectCast<QObject>();
} }
updateHaveCurrentDate();
endResetModel(); endResetModel();
delete items; delete items;
}); });

View file

@ -894,42 +894,42 @@
<context> <context>
<name>CallLayout</name> <name>CallLayout</name>
<message> <message>
<location filename="../../view/Control/Container/Call/CallLayout.qml" line="58"/> <location filename="../../view/Control/Container/Call/CallLayout.qml" line="69"/>
<source>meeting_event_conference_destroyed</source> <source>meeting_event_conference_destroyed</source>
<extracomment>&quot;Vous avez quitté la conférence&quot;</extracomment> <extracomment>&quot;Vous avez quitté la conférence&quot;</extracomment>
<translation>Sie haben die Besprechung verlassen</translation> <translation>Sie haben die Besprechung verlassen</translation>
</message> </message>
<message> <message>
<location filename="../../view/Control/Container/Call/CallLayout.qml" line="61"/> <location filename="../../view/Control/Container/Call/CallLayout.qml" line="72"/>
<source>call_ended_by_user</source> <source>call_ended_by_user</source>
<extracomment>&quot;Vous avez terminé l&apos;appel&quot;</extracomment> <extracomment>&quot;Vous avez terminé l&apos;appel&quot;</extracomment>
<translation>Sie haben den Anruf beendet</translation> <translation>Sie haben den Anruf beendet</translation>
</message> </message>
<message> <message>
<location filename="../../view/Control/Container/Call/CallLayout.qml" line="64"/> <location filename="../../view/Control/Container/Call/CallLayout.qml" line="75"/>
<source>call_ended_by_remote</source> <source>call_ended_by_remote</source>
<extracomment>&quot;Votre correspondant a terminé l&apos;appel&quot;</extracomment> <extracomment>&quot;Votre correspondant a terminé l&apos;appel&quot;</extracomment>
<translation>Der Anrufer hat das Gespräch beendet</translation> <translation>Der Anrufer hat das Gespräch beendet</translation>
</message> </message>
<message> <message>
<location filename="../../view/Control/Container/Call/CallLayout.qml" line="138"/> <location filename="../../view/Control/Container/Call/CallLayout.qml" line="151"/>
<source>conference_call_empty</source> <source>conference_call_empty</source>
<extracomment>&quot;En attente d&apos;autres participants&quot;</extracomment> <extracomment>&quot;En attente d&apos;autres participants&quot;</extracomment>
<translation>Warten auf weitere Teilnehmer</translation> <translation>Warten auf weitere Teilnehmer</translation>
</message> </message>
<message> <message>
<location filename="../../view/Control/Container/Call/CallLayout.qml" line="156"/> <location filename="../../view/Control/Container/Call/CallLayout.qml" line="169"/>
<source>conference_share_link_title</source> <source>conference_share_link_title</source>
<extracomment>&quot;Partager le lien&quot;</extracomment> <extracomment>&quot;Partager le lien&quot;</extracomment>
<translation>Link teilen</translation> <translation>Link teilen</translation>
</message> </message>
<message> <message>
<location filename="../../view/Control/Container/Call/CallLayout.qml" line="162"/> <location filename="../../view/Control/Container/Call/CallLayout.qml" line="175"/>
<source>copied</source> <source>copied</source>
<translation>Kopiert</translation> <translation>Kopiert</translation>
</message> </message>
<message> <message>
<location filename="../../view/Control/Container/Call/CallLayout.qml" line="164"/> <location filename="../../view/Control/Container/Call/CallLayout.qml" line="177"/>
<source>information_popup_meeting_address_copied_to_clipboard</source> <source>information_popup_meeting_address_copied_to_clipboard</source>
<extracomment>Le lien de la réunion a é copié dans le presse-papier</extracomment> <extracomment>Le lien de la réunion a é copié dans le presse-papier</extracomment>
<translation>Der Besprechungs-Link wurde in die Zwischenablage kopiert</translation> <translation>Der Besprechungs-Link wurde in die Zwischenablage kopiert</translation>
@ -2284,23 +2284,41 @@ Error</extracomment>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../../view/Page/Main/Chat/ChatPage.qml" line="314"/> <location filename="../../view/Page/Main/Chat/ChatPage.qml" line="306"/>
<location filename="../../view/Page/Main/Chat/ChatPage.qml" line="318"/> <location filename="../../view/Page/Main/Chat/ChatPage.qml" line="324"/>
<location filename="../../view/Page/Main/Chat/ChatPage.qml" line="328"/>
<source>information_popup_error_title</source> <source>information_popup_error_title</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../../view/Page/Main/Chat/ChatPage.qml" line="316"/> <location filename="../../view/Page/Main/Chat/ChatPage.qml" line="308"/>
<source>information_popup_chat_creation_failed_message</source>
<extracomment>&quot;La création a échoué&quot;</extracomment>
<translation type="unfinished"></translation>
</message>
<message>
<source>information_popup_codec_install_error_text</source>
<extracomment>&quot;La création a échoué&quot;</extracomment>
<translation type="obsolete">Der Codec konnte nicht installiert werden.</translation>
</message>
<message>
<location filename="../../view/Page/Main/Chat/ChatPage.qml" line="326"/>
<source>group_chat_error_must_have_name</source> <source>group_chat_error_must_have_name</source>
<extracomment>&quot;Un nom doit être donné au groupe</extracomment> <extracomment>&quot;Un nom doit être donné au groupe</extracomment>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../../view/Page/Main/Chat/ChatPage.qml" line="320"/> <location filename="../../view/Page/Main/Chat/ChatPage.qml" line="330"/>
<source>group_call_error_not_connected</source> <source>group_call_error_not_connected</source>
<extracomment>&quot;Vous n&apos;etes pas connecté&quot;</extracomment> <extracomment>&quot;Vous n&apos;etes pas connecté&quot;</extracomment>
<translation type="unfinished">Sie sind nicht verbunden</translation> <translation type="unfinished">Sie sind nicht verbunden</translation>
</message> </message>
<message>
<location filename="../../view/Page/Main/Chat/ChatPage.qml" line="334"/>
<source>chat_creation_in_progress</source>
<extracomment>Creation de la conversation en cours </extracomment>
<translation type="unfinished"></translation>
</message>
</context> </context>
<context> <context>
<name>ChatSettingsLayout</name> <name>ChatSettingsLayout</name>
@ -5041,13 +5059,13 @@ Pour les activer dans un projet commercial, merci de nous contacter.</source>
<translation>Bildschirm %1</translation> <translation>Bildschirm %1</translation>
</message> </message>
<message> <message>
<location filename="../../view/Control/Form/Settings/ScreencastSettings.qml" line="183"/> <location filename="../../view/Control/Form/Settings/ScreencastSettings.qml" line="178"/>
<source>stop</source> <source>stop</source>
<extracomment>&quot;Stop</extracomment> <extracomment>&quot;Stop</extracomment>
<translation>Stopp</translation> <translation>Stopp</translation>
</message> </message>
<message> <message>
<location filename="../../view/Control/Form/Settings/ScreencastSettings.qml" line="185"/> <location filename="../../view/Control/Form/Settings/ScreencastSettings.qml" line="180"/>
<source>share</source> <source>share</source>
<extracomment>&quot;Partager&quot;</extracomment> <extracomment>&quot;Partager&quot;</extracomment>
<translation>Teilen</translation> <translation>Teilen</translation>

View file

@ -874,42 +874,42 @@
<context> <context>
<name>CallLayout</name> <name>CallLayout</name>
<message> <message>
<location filename="../../view/Control/Container/Call/CallLayout.qml" line="58"/> <location filename="../../view/Control/Container/Call/CallLayout.qml" line="69"/>
<source>meeting_event_conference_destroyed</source> <source>meeting_event_conference_destroyed</source>
<extracomment>&quot;Vous avez quitté la conférence&quot;</extracomment> <extracomment>&quot;Vous avez quitté la conférence&quot;</extracomment>
<translation>You have left the meeting</translation> <translation>You have left the meeting</translation>
</message> </message>
<message> <message>
<location filename="../../view/Control/Container/Call/CallLayout.qml" line="61"/> <location filename="../../view/Control/Container/Call/CallLayout.qml" line="72"/>
<source>call_ended_by_user</source> <source>call_ended_by_user</source>
<extracomment>&quot;Vous avez terminé l&apos;appel&quot;</extracomment> <extracomment>&quot;Vous avez terminé l&apos;appel&quot;</extracomment>
<translation>You have ended the call</translation> <translation>You have ended the call</translation>
</message> </message>
<message> <message>
<location filename="../../view/Control/Container/Call/CallLayout.qml" line="64"/> <location filename="../../view/Control/Container/Call/CallLayout.qml" line="75"/>
<source>call_ended_by_remote</source> <source>call_ended_by_remote</source>
<extracomment>&quot;Votre correspondant a terminé l&apos;appel&quot;</extracomment> <extracomment>&quot;Votre correspondant a terminé l&apos;appel&quot;</extracomment>
<translation>Your caller has ended the call</translation> <translation>Your caller has ended the call</translation>
</message> </message>
<message> <message>
<location filename="../../view/Control/Container/Call/CallLayout.qml" line="138"/> <location filename="../../view/Control/Container/Call/CallLayout.qml" line="151"/>
<source>conference_call_empty</source> <source>conference_call_empty</source>
<extracomment>&quot;En attente d&apos;autres participants&quot;</extracomment> <extracomment>&quot;En attente d&apos;autres participants&quot;</extracomment>
<translation>Waiting for other participants</translation> <translation>Waiting for other participants</translation>
</message> </message>
<message> <message>
<location filename="../../view/Control/Container/Call/CallLayout.qml" line="156"/> <location filename="../../view/Control/Container/Call/CallLayout.qml" line="169"/>
<source>conference_share_link_title</source> <source>conference_share_link_title</source>
<extracomment>&quot;Partager le lien&quot;</extracomment> <extracomment>&quot;Partager le lien&quot;</extracomment>
<translation>Share link</translation> <translation>Share link</translation>
</message> </message>
<message> <message>
<location filename="../../view/Control/Container/Call/CallLayout.qml" line="162"/> <location filename="../../view/Control/Container/Call/CallLayout.qml" line="175"/>
<source>copied</source> <source>copied</source>
<translation>Copied</translation> <translation>Copied</translation>
</message> </message>
<message> <message>
<location filename="../../view/Control/Container/Call/CallLayout.qml" line="164"/> <location filename="../../view/Control/Container/Call/CallLayout.qml" line="177"/>
<source>information_popup_meeting_address_copied_to_clipboard</source> <source>information_popup_meeting_address_copied_to_clipboard</source>
<extracomment>Le lien de la réunion a é copié dans le presse-papier</extracomment> <extracomment>Le lien de la réunion a é copié dans le presse-papier</extracomment>
<translation>The meeting link has been copied to the clipboard</translation> <translation>The meeting link has been copied to the clipboard</translation>
@ -2247,23 +2247,41 @@ Only your correspondent can decrypt them.</translation>
<translation>Create</translation> <translation>Create</translation>
</message> </message>
<message> <message>
<location filename="../../view/Page/Main/Chat/ChatPage.qml" line="314"/> <location filename="../../view/Page/Main/Chat/ChatPage.qml" line="306"/>
<location filename="../../view/Page/Main/Chat/ChatPage.qml" line="318"/> <location filename="../../view/Page/Main/Chat/ChatPage.qml" line="324"/>
<location filename="../../view/Page/Main/Chat/ChatPage.qml" line="328"/>
<source>information_popup_error_title</source> <source>information_popup_error_title</source>
<translation>Error</translation> <translation>Error</translation>
</message> </message>
<message> <message>
<location filename="../../view/Page/Main/Chat/ChatPage.qml" line="316"/> <location filename="../../view/Page/Main/Chat/ChatPage.qml" line="308"/>
<source>information_popup_chat_creation_failed_message</source>
<extracomment>&quot;La création a échoué&quot;</extracomment>
<translation>Creation failed</translation>
</message>
<message>
<source>information_popup_codec_install_error_text</source>
<extracomment>&quot;La création a échoué&quot;</extracomment>
<translation type="obsolete">The codec could not be installed.</translation>
</message>
<message>
<location filename="../../view/Page/Main/Chat/ChatPage.qml" line="326"/>
<source>group_chat_error_must_have_name</source> <source>group_chat_error_must_have_name</source>
<extracomment>&quot;Un nom doit être donné au groupe</extracomment> <extracomment>&quot;Un nom doit être donné au groupe</extracomment>
<translation>A name must be set for the group</translation> <translation>A name must be set for the group</translation>
</message> </message>
<message> <message>
<location filename="../../view/Page/Main/Chat/ChatPage.qml" line="320"/> <location filename="../../view/Page/Main/Chat/ChatPage.qml" line="330"/>
<source>group_call_error_not_connected</source> <source>group_call_error_not_connected</source>
<extracomment>&quot;Vous n&apos;etes pas connecté&quot;</extracomment> <extracomment>&quot;Vous n&apos;etes pas connecté&quot;</extracomment>
<translation>You are not connected</translation> <translation>You are not connected</translation>
</message> </message>
<message>
<location filename="../../view/Page/Main/Chat/ChatPage.qml" line="334"/>
<source>chat_creation_in_progress</source>
<extracomment>Creation de la conversation en cours </extracomment>
<translation>Chat creation pending</translation>
</message>
</context> </context>
<context> <context>
<name>ChatSettingsLayout</name> <name>ChatSettingsLayout</name>
@ -4930,13 +4948,13 @@ To enable them in a commercial project, please contact us.</translation>
<translation>Screen %1</translation> <translation>Screen %1</translation>
</message> </message>
<message> <message>
<location filename="../../view/Control/Form/Settings/ScreencastSettings.qml" line="183"/> <location filename="../../view/Control/Form/Settings/ScreencastSettings.qml" line="178"/>
<source>stop</source> <source>stop</source>
<extracomment>&quot;Stop</extracomment> <extracomment>&quot;Stop</extracomment>
<translation>Stop</translation> <translation>Stop</translation>
</message> </message>
<message> <message>
<location filename="../../view/Control/Form/Settings/ScreencastSettings.qml" line="185"/> <location filename="../../view/Control/Form/Settings/ScreencastSettings.qml" line="180"/>
<source>share</source> <source>share</source>
<extracomment>&quot;Partager&quot;</extracomment> <extracomment>&quot;Partager&quot;</extracomment>
<translation>Share</translation> <translation>Share</translation>

View file

@ -874,42 +874,42 @@
<context> <context>
<name>CallLayout</name> <name>CallLayout</name>
<message> <message>
<location filename="../../view/Control/Container/Call/CallLayout.qml" line="58"/> <location filename="../../view/Control/Container/Call/CallLayout.qml" line="69"/>
<source>meeting_event_conference_destroyed</source> <source>meeting_event_conference_destroyed</source>
<extracomment>&quot;Vous avez quitté la conférence&quot;</extracomment> <extracomment>&quot;Vous avez quitté la conférence&quot;</extracomment>
<translation>Vous avez quitté la conférence</translation> <translation>Vous avez quitté la conférence</translation>
</message> </message>
<message> <message>
<location filename="../../view/Control/Container/Call/CallLayout.qml" line="61"/> <location filename="../../view/Control/Container/Call/CallLayout.qml" line="72"/>
<source>call_ended_by_user</source> <source>call_ended_by_user</source>
<extracomment>&quot;Vous avez terminé l&apos;appel&quot;</extracomment> <extracomment>&quot;Vous avez terminé l&apos;appel&quot;</extracomment>
<translation>Vous avez terminé l&apos;appel</translation> <translation>Vous avez terminé l&apos;appel</translation>
</message> </message>
<message> <message>
<location filename="../../view/Control/Container/Call/CallLayout.qml" line="64"/> <location filename="../../view/Control/Container/Call/CallLayout.qml" line="75"/>
<source>call_ended_by_remote</source> <source>call_ended_by_remote</source>
<extracomment>&quot;Votre correspondant a terminé l&apos;appel&quot;</extracomment> <extracomment>&quot;Votre correspondant a terminé l&apos;appel&quot;</extracomment>
<translation>Votre correspondant a terminé l&apos;appel</translation> <translation>Votre correspondant a terminé l&apos;appel</translation>
</message> </message>
<message> <message>
<location filename="../../view/Control/Container/Call/CallLayout.qml" line="138"/> <location filename="../../view/Control/Container/Call/CallLayout.qml" line="151"/>
<source>conference_call_empty</source> <source>conference_call_empty</source>
<extracomment>&quot;En attente d&apos;autres participants&quot;</extracomment> <extracomment>&quot;En attente d&apos;autres participants&quot;</extracomment>
<translation>En attente d&apos;autres participants</translation> <translation>En attente d&apos;autres participants</translation>
</message> </message>
<message> <message>
<location filename="../../view/Control/Container/Call/CallLayout.qml" line="156"/> <location filename="../../view/Control/Container/Call/CallLayout.qml" line="169"/>
<source>conference_share_link_title</source> <source>conference_share_link_title</source>
<extracomment>&quot;Partager le lien&quot;</extracomment> <extracomment>&quot;Partager le lien&quot;</extracomment>
<translation>Partager le lien</translation> <translation>Partager le lien</translation>
</message> </message>
<message> <message>
<location filename="../../view/Control/Container/Call/CallLayout.qml" line="162"/> <location filename="../../view/Control/Container/Call/CallLayout.qml" line="175"/>
<source>copied</source> <source>copied</source>
<translation>Copié</translation> <translation>Copié</translation>
</message> </message>
<message> <message>
<location filename="../../view/Control/Container/Call/CallLayout.qml" line="164"/> <location filename="../../view/Control/Container/Call/CallLayout.qml" line="177"/>
<source>information_popup_meeting_address_copied_to_clipboard</source> <source>information_popup_meeting_address_copied_to_clipboard</source>
<extracomment>Le lien de la réunion a é copié dans le presse-papier</extracomment> <extracomment>Le lien de la réunion a é copié dans le presse-papier</extracomment>
<translation>Le lien de la réunion a é copié dans le presse-papier</translation> <translation>Le lien de la réunion a é copié dans le presse-papier</translation>
@ -2247,23 +2247,36 @@ en bout. Seul votre correspondant peut les déchiffrer.</translation>
<translation>Créer</translation> <translation>Créer</translation>
</message> </message>
<message> <message>
<location filename="../../view/Page/Main/Chat/ChatPage.qml" line="314"/> <location filename="../../view/Page/Main/Chat/ChatPage.qml" line="306"/>
<location filename="../../view/Page/Main/Chat/ChatPage.qml" line="318"/> <location filename="../../view/Page/Main/Chat/ChatPage.qml" line="324"/>
<location filename="../../view/Page/Main/Chat/ChatPage.qml" line="328"/>
<source>information_popup_error_title</source> <source>information_popup_error_title</source>
<translation>Erreur</translation> <translation>Erreur</translation>
</message> </message>
<message> <message>
<location filename="../../view/Page/Main/Chat/ChatPage.qml" line="316"/> <location filename="../../view/Page/Main/Chat/ChatPage.qml" line="308"/>
<source>information_popup_chat_creation_failed_message</source>
<extracomment>&quot;La création a échoué&quot;</extracomment>
<translation>La création a échoué</translation>
</message>
<message>
<location filename="../../view/Page/Main/Chat/ChatPage.qml" line="326"/>
<source>group_chat_error_must_have_name</source> <source>group_chat_error_must_have_name</source>
<extracomment>&quot;Un nom doit être donné au groupe</extracomment> <extracomment>&quot;Un nom doit être donné au groupe</extracomment>
<translation>Un nom doit être donné au groupe</translation> <translation>Un nom doit être donné au groupe</translation>
</message> </message>
<message> <message>
<location filename="../../view/Page/Main/Chat/ChatPage.qml" line="320"/> <location filename="../../view/Page/Main/Chat/ChatPage.qml" line="330"/>
<source>group_call_error_not_connected</source> <source>group_call_error_not_connected</source>
<extracomment>&quot;Vous n&apos;etes pas connecté&quot;</extracomment> <extracomment>&quot;Vous n&apos;etes pas connecté&quot;</extracomment>
<translation>Vous n&apos;êtes pas connecté</translation> <translation>Vous n&apos;êtes pas connecté</translation>
</message> </message>
<message>
<location filename="../../view/Page/Main/Chat/ChatPage.qml" line="334"/>
<source>chat_creation_in_progress</source>
<extracomment>Creation de la conversation en cours </extracomment>
<translation>Création de la conversation en cours</translation>
</message>
</context> </context>
<context> <context>
<name>ChatSettingsLayout</name> <name>ChatSettingsLayout</name>
@ -4930,13 +4943,13 @@ Pour les activer dans un projet commercial, merci de nous contacter.</translatio
<translation>Écran %1</translation> <translation>Écran %1</translation>
</message> </message>
<message> <message>
<location filename="../../view/Control/Form/Settings/ScreencastSettings.qml" line="183"/> <location filename="../../view/Control/Form/Settings/ScreencastSettings.qml" line="178"/>
<source>stop</source> <source>stop</source>
<extracomment>&quot;Stop</extracomment> <extracomment>&quot;Stop</extracomment>
<translation>Stop</translation> <translation>Stop</translation>
</message> </message>
<message> <message>
<location filename="../../view/Control/Form/Settings/ScreencastSettings.qml" line="185"/> <location filename="../../view/Control/Form/Settings/ScreencastSettings.qml" line="180"/>
<source>share</source> <source>share</source>
<extracomment>&quot;Partager&quot;</extracomment> <extracomment>&quot;Partager&quot;</extracomment>
<translation>Partager</translation> <translation>Partager</translation>

View file

@ -25,10 +25,10 @@ Item {
property string activeSpeakerAddress property string activeSpeakerAddress
property ParticipantDeviceProxy participantDevices : ParticipantDeviceProxy { property ParticipantDeviceProxy participantDevices : ParticipantDeviceProxy {
id: allDevices id: allDevices
qmlName: "AS" qmlName: "AS"
onCountChanged: console.log("Device count changed : " +count) onCountChanged: console.log("Device count changed : " +count)
Component.onCompleted: console.log("Loaded : " +allDevices) Component.onCompleted: console.log("Loaded : " +allDevices)
} }
RowLayout{ RowLayout{

View file

@ -19,6 +19,7 @@ Item {
onCallStateChanged: if (callState === LinphoneEnums.CallState.End || callState === LinphoneEnums.CallState.Released) preview.visible = false onCallStateChanged: if (callState === LinphoneEnums.CallState.End || callState === LinphoneEnums.CallState.Released) preview.visible = false
property int conferenceLayout: call ? call.core.conferenceVideoLayout : LinphoneEnums.ConferenceLayout.ActiveSpeaker property int conferenceLayout: call ? call.core.conferenceVideoLayout : LinphoneEnums.ConferenceLayout.ActiveSpeaker
property int participantDeviceCount: conference ? conference.core.participantDeviceCount : -1 property int participantDeviceCount: conference ? conference.core.participantDeviceCount : -1
property int lastConfLayoutBeforeSharing: -1
onParticipantDeviceCountChanged: { onParticipantDeviceCountChanged: {
setConferenceLayout() setConferenceLayout()
} }
@ -33,10 +34,21 @@ Item {
function onIsScreenSharingEnabledChanged() { function onIsScreenSharingEnabledChanged() {
setConferenceLayout() setConferenceLayout()
} }
function onIsLocalScreenSharingChanged() {
if (mainItem.conference.core.isLocalScreenSharing) {
mainItem.lastConfLayoutBeforeSharing = mainItem.conferenceLayout
}
setConferenceLayout()
}
} }
function setConferenceLayout() { function setConferenceLayout() {
callLayout.sourceComponent = undefined // unload old view before opening the new view to avoid conflicts in Video UI. callLayout.sourceComponent = undefined // unload old view before opening the new view to avoid conflicts in Video UI.
// If stop sharing screen, reset conference layout to the previous one
if (mainItem.conference && !mainItem.conference.core.isLocalScreenSharing && mainItem.lastConfLayoutBeforeSharing !== -1) {
mainItem.conferenceLayout = mainItem.lastConfLayoutBeforeSharing
mainItem.lastConfLayoutBeforeSharing = -1
}
callLayout.sourceComponent = conference callLayout.sourceComponent = conference
? conference.core.isScreenSharingEnabled || (mainItem.conferenceLayout == LinphoneEnums.ConferenceLayout.ActiveSpeaker && participantDeviceCount > 1) ? conference.core.isScreenSharingEnabled || (mainItem.conferenceLayout == LinphoneEnums.ConferenceLayout.ActiveSpeaker && participantDeviceCount > 1)
? activeSpeakerComponent ? activeSpeakerComponent
@ -86,6 +98,8 @@ Item {
&& mainItem.callState !== LinphoneEnums.CallState.OutgoingProgress && mainItem.callState !== LinphoneEnums.CallState.OutgoingProgress
&& mainItem.callState !== LinphoneEnums.CallState.OutgoingRinging && mainItem.callState !== LinphoneEnums.CallState.OutgoingRinging
&& mainItem.callState !== LinphoneEnums.CallState.OutgoingInit && mainItem.callState !== LinphoneEnums.CallState.OutgoingInit
&& !mainItem.conference?.core.isScreenSharingEnabled
&& mainItem.participantDeviceCount <= 2
height: Math.round(180 * DefaultStyle.dp) height: Math.round(180 * DefaultStyle.dp)
width: Math.round(300 * DefaultStyle.dp) width: Math.round(300 * DefaultStyle.dp)
anchors.right: mainItem.right anchors.right: mainItem.right
@ -178,12 +192,6 @@ Item {
Layout.fillHeight: true Layout.fillHeight: true
call: mainItem.call call: mainItem.call
Binding {
target: preview
property: "visible"
when: activeSpeaker.sideStickersVisible
value: false
}
} }
} }
Component{ Component{

View file

@ -184,7 +184,7 @@ ListView {
Avatar { Avatar {
property var contactObj: modelData ? UtilsCpp.findFriendByAddress(modelData.core.peerAddress) : null property var contactObj: modelData ? UtilsCpp.findFriendByAddress(modelData.core.peerAddress) : null
contact: contactObj?.value || null contact: contactObj?.value || null
displayNameVal: modelData.core.avatarUri displayNameVal: modelData && modelData.core.avatarUri || ""
secured: modelData?.core.isSecured || false secured: modelData?.core.isSecured || false
Layout.preferredWidth: Math.round(45 * DefaultStyle.dp) Layout.preferredWidth: Math.round(45 * DefaultStyle.dp)
Layout.preferredHeight: Math.round(45 * DefaultStyle.dp) Layout.preferredHeight: Math.round(45 * DefaultStyle.dp)

View file

@ -109,10 +109,6 @@ ColumnLayout {
Layout.fillWidth: true Layout.fillWidth: true
height: visible ? contentHeight : 0 height: visible ? contentHeight : 0
currentIndex: -1 currentIndex: -1
onCurrentIndexChanged: {
mainItem.desc.core.screenSharingIndex = currentIndex
}
//property int selectedIndex
model: ScreenProxy{ model: ScreenProxy{
id: screensList id: screensList
mode: ScreenList.SCREENS mode: ScreenList.SCREENS
@ -128,8 +124,9 @@ ColumnLayout {
screenIndex: index screenIndex: index
onClicked: {//screensLayout.selectedIndex = index onClicked: {//screensLayout.selectedIndex = index
screensLayout.currentIndex = index screensLayout.currentIndex = index
mainItem.desc.core.screenSharingIndex = index
if( mainItem.conference.core.isLocalScreenSharing) if( mainItem.conference.core.isLocalScreenSharing)
mainItem.call.core.videoSourceDescriptor = mainItem.desc mainItem.call.core.videoSourceDescriptor = mainItem.desc
} }
selected: mainItem.desc.core.screenSharingIndex === index selected: mainItem.desc.core.screenSharingIndex === index
} }
@ -145,9 +142,6 @@ ColumnLayout {
mode: ScreenList.WINDOWS mode: ScreenList.WINDOWS
} }
currentIndex: -1 currentIndex: -1
onCurrentIndexChanged: {
mainItem.desc.core.windowId = model.getAt(currentIndex)? model.getAt(currentIndex).windowId : -1
}
onVisibleChanged: { onVisibleChanged: {
if(visible) windowsList.update() if(visible) windowsList.update()
else currentIndex = -1 else currentIndex = -1
@ -165,8 +159,9 @@ ColumnLayout {
screenIndex: index screenIndex: index
onClicked: { onClicked: {
windowsLayout.currentIndex = index windowsLayout.currentIndex = index
mainItem.desc.core.windowId = $modelData.windowId
if( mainItem.conference.core.isLocalScreenSharing) if( mainItem.conference.core.isLocalScreenSharing)
mainItem.call.core.videoSourceDescriptor = mainItem.desc mainItem.call.core.videoSourceDescriptor = mainItem.desc
} }
selected: mainItem.desc.core.windowId == $modelData.windowId selected: mainItem.desc.core.windowId == $modelData.windowId
} }

View file

@ -297,7 +297,14 @@ AbstractMainPage {
target: groupChat?.core || null target: groupChat?.core || null
function onChatRoomStateChanged() { function onChatRoomStateChanged() {
if (chatCreationLayout.groupChat.core.state === LinphoneEnums.ChatRoomState.Created) { if (chatCreationLayout.groupChat.core.state === LinphoneEnums.ChatRoomState.Created) {
mainWindow.closeLoadingPopup()
mainItem.selectedChatGui = chatCreationLayout.groupChat mainItem.selectedChatGui = chatCreationLayout.groupChat
} else if (chatCreationLayout.groupChat.core.state === LinphoneEnums.ChatRoomState.CreationFailed) {
mainWindow.closeLoadingPopup()
mainWindow.showInformationPopup(qsTr("information_popup_error_title"),
//: "La création a échoué"
qsTr("information_popup_chat_creation_failed_message"), false)
chatCreationLayout.groupChat.core.lDelete()
} }
} }
} }
@ -309,6 +316,7 @@ AbstractMainPage {
listStackView.pop() listStackView.pop()
listStackView.currentItem?.forceActiveFocus() listStackView.currentItem?.forceActiveFocus()
} }
onGroupCreationRequested: { onGroupCreationRequested: {
if (groupName.text.length === 0) { if (groupName.text.length === 0) {
UtilsCpp.showInformationPopup(qsTr("information_popup_error_title"), UtilsCpp.showInformationPopup(qsTr("information_popup_error_title"),
@ -320,6 +328,10 @@ AbstractMainPage {
qsTr("group_call_error_not_connected"), false) qsTr("group_call_error_not_connected"), false)
} else { } else {
console.log("create group chat") console.log("create group chat")
//: Creation de la conversation en cours
mainWindow.showLoadingPopup(qsTr("chat_creation_in_progress"), true, function () {
if (chatCreationLayout.groupChat) chatCreationLayout.groupChat.core.lDelete()
})
chatCreationLayout.groupChatObj = UtilsCpp.createGroupChat(chatCreationLayout.groupName.text, addParticipantsLayout.selectedParticipants) chatCreationLayout.groupChatObj = UtilsCpp.createGroupChat(chatCreationLayout.groupName.text, addParticipantsLayout.selectedParticipants)
} }
} }
@ -344,7 +356,7 @@ AbstractMainPage {
} }
SelectedChatView { SelectedChatView {
id: selectedChatView id: selectedChatView
visible: chat && (chat.core.isBasic || chat.core.conferenceJoined) visible: chat != undefined //&& (chat.core.isBasic || chat.core.conferenceJoined)
anchors.fill: parent anchors.fill: parent
chat: mainItem.selectedChatGui ? mainItem.selectedChatGui : null chat: mainItem.selectedChatGui ? mainItem.selectedChatGui : null
onChatChanged: { onChatChanged: {