diff --git a/Linphone/core/conference/ConferenceInfoCore.cpp b/Linphone/core/conference/ConferenceInfoCore.cpp index 778feec1b..9c8fd2a29 100644 --- a/Linphone/core/conference/ConferenceInfoCore.cpp +++ b/Linphone/core/conference/ConferenceInfoCore.cpp @@ -175,6 +175,13 @@ void ConferenceInfoCore::setSelf(QSharedPointer me) { } }); }); + mConfInfoModelConnection->makeConnectToCore(&ConferenceInfoCore::lCancelCreation, [this]() { + mConfInfoModelConnection->invokeToModel([this] { + if (mConferenceInfoModel) { + mConferenceInfoModel->setConferenceScheduler(nullptr); + } + }); + }); mConfInfoModelConnection->makeConnectToCore(&ConferenceInfoCore::lDeleteConferenceInfo, [this]() { mConfInfoModelConnection->invokeToModel([this] { mConferenceInfoModel->deleteConferenceInfo(); }); }); @@ -631,12 +638,6 @@ void ConferenceInfoCore::undo() { } } -void ConferenceInfoCore::cancelCreation() { - if (mConferenceInfoModel) { - mConferenceInfoModel->setConferenceScheduler(nullptr); - } -} - //------------------------------------------------------------------------------------------------- void ConferenceInfoCore::onInvitationsSent(const std::list> &failedInvitations) { diff --git a/Linphone/core/conference/ConferenceInfoCore.hpp b/Linphone/core/conference/ConferenceInfoCore.hpp index 5cadfd742..57de02a6a 100644 --- a/Linphone/core/conference/ConferenceInfoCore.hpp +++ b/Linphone/core/conference/ConferenceInfoCore.hpp @@ -130,7 +130,6 @@ public: Q_INVOKABLE void save(); Q_INVOKABLE void undo(); - Q_INVOKABLE void cancelCreation(); virtual void onInvitationsSent(const std::list> &failedInvitations); @@ -160,6 +159,7 @@ signals: void invitationsSent(); void removed(ConferenceInfoCore *confInfo); + void lCancelCreation(); void lCancelConferenceInfo(); void lDeleteConferenceInfo(); // Remove completly this conference info from DB diff --git a/Linphone/data/languages/de.ts b/Linphone/data/languages/de.ts index 655737fcd..42a8eb485 100644 --- a/Linphone/data/languages/de.ts +++ b/Linphone/data/languages/de.ts @@ -894,42 +894,42 @@ CallLayout - + meeting_event_conference_destroyed "Vous avez quitté la conférence" Sie haben die Besprechung verlassen - + call_ended_by_user "Vous avez terminé l'appel" Sie haben den Anruf beendet - + call_ended_by_remote "Votre correspondant a terminé l'appel" Der Anrufer hat das Gespräch beendet - + conference_call_empty "En attente d'autres participants…" Warten auf weitere Teilnehmer… - + conference_share_link_title "Partager le lien" Link teilen - + copied Kopiert - + information_popup_meeting_address_copied_to_clipboard Le lien de la réunion a été copié dans le presse-papier Der Besprechungs-Link wurde in die Zwischenablage kopiert @@ -1415,133 +1415,133 @@ - + conference_user_is_recording - "Vous enregistrez la réunion" + "You are recording the meeting" Sie nehmen die Besprechung auf - + call_user_is_recording - "Vous enregistrez l'appel" + "You are recording the call" Sie nehmen den Anruf auf - + conference_remote_is_recording - "Un participant enregistre la réunion" + "Someone is recording the meeting" Jemand nimmt die Besprechung auf - + call_remote_recording - "%1 enregistre l'appel" + "%1 is recording the call" %1 nimmt den Anruf auf - + call_stop_recording - "Arrêter l'enregistrement" + "Stop recording" Aufnahme stoppen - + add Hinzufügen - + call_transfer_current_call_title "Transférer %1 à…" %1 weiterleiten an… - - + + call_transfer_confirm_dialog_tittle "Confirmer le transfert" Weiterleitung bestätigen - - + + call_transfer_confirm_dialog_message "Vous allez transférer %1 à %2." Sie werden %1 an %2 weiterleiten. - + call_action_start_new_call "Nouvel appel" Neuen Anruf starten - - + + call_action_show_dialer "Pavé numérique" Wähltastatur - + call_action_change_layout "Modifier la disposition" Layout ändern - + call_action_go_to_calls_list "Liste d'appel" Anrufliste - + Merger tous les appels call_action_merge_calls Alle Anrufe zusammenführen - - + + call_action_go_to_settings "Paramètres" Einstellungen - + conference_action_screen_sharing "Partage de votre écran" Bildschirm teilen - + conference_share_link_title Partager le lien de la réunion Besprechungs-Link teilen - + copied Copié Kopiert - + information_popup_meeting_address_copied_to_clipboard Le lien de la réunion a été copié dans le presse-papier Der Besprechungs-Link wurde in die Zwischenablage kopiert - - - + + + conference_participants_list_title "Participants (%1)" Teilnehmer (%1) - - + + group_call_participant_selected 1 ausgewählter Teilnehmer @@ -1549,149 +1549,161 @@ - + meeting_schedule_add_participants_title Teilnehmer hinzufügen - + call_encryption_title Chiffrement Verschlüsselung - + + conference_user_is_sharing_screen + "You are sharing your screen" + + + + + call_stop_screen_sharing + "Stop sharing" + + + + call_stats_title Statistiques Statistiken - + call_action_end_call "Terminer l'appel" Anruf beenden - + call_action_resume_call "Reprendre l'appel" Anruf fortsetzen - + call_action_pause_call "Mettre l'appel en pause" Anruf pausieren - + call_action_transfer_call "Transférer l'appel" Anruf weiterleiten - + call_action_start_new_call_hint "Initier un nouvel appel" Neuen Anruf starten - + call_display_call_list_hint "Afficher la liste d'appels" Anrufliste anzeigen - + call_deactivate_video_hint "Désactiver la vidéo" "Activer la vidéo" Video deaktivieren - + call_activate_video_hint Video aktivieren - + call_activate_microphone "Activer le micro" Mikrofon aktivieren - + call_deactivate_microphone "Désactiver le micro" Mikrofon stummschalten - + call_share_screen_hint Partager l'écran… Bildschirm teilen… - + call_open_chat_hint Open chat… - + call_rise_hand_hint "Lever la main" Hand heben - + call_send_reaction_hint "Envoyer une réaction" Reaktion senden - + call_manage_participants_hint "Gérer les participants" Teilnehmer verwalten - + call_more_options_hint "Plus d'options…" Weitere Optionen… - + call_action_change_conference_layout "Modifier la disposition" Layout ändern - + call_action_full_screen "Mode Plein écran" Vollbildmodus - + call_action_stop_recording "Terminer l'enregistrement" Aufnahme beenden - + call_action_record "Enregistrer l'appel" Anruf aufnehmen - + call_activate_speaker_hint "Activer le son" Lautsprecher aktivieren - + call_deactivate_speaker_hint "Désactiver le son" Lautsprecher stummschalten @@ -1837,13 +1849,13 @@ ChatDroppableTextArea - + chat_view_send_area_placeholder_text Say something… : placeholder text for sending message text area - + cannot_record_while_in_call_tooltip Cannot record a message while a call is ongoing @@ -2254,37 +2266,37 @@ Error - + chat_action_start_new_chat "New chat" - + chat_start_group_chat_title "Nouveau groupe" - + chat_action_start_group_chat "Créer" - - + + information_popup_error_title - + group_chat_error_must_have_name "Un nom doit être donné au groupe - + group_call_error_not_connected "Vous n'etes pas connecté" Sie sind nicht verbunden @@ -2347,13 +2359,13 @@ Error ConferenceInfoCore - + information_popup_error_title "Erreur" Fehler - + information_popup_disconnected_account_message "Votre compte est déconnecté" Ihr Konto ist getrennt @@ -4968,35 +4980,35 @@ Pour les activer dans un projet commercial, merci de nous contacter. Anmelden - + assistant_account_login_missing_username Bitte Benutzernamen eingeben - + assistant_account_login_missing_password Bitte Passwort eingeben - + assistant_account_login_missing_domain "Veuillez saisir un nom de domaine Bitte Domäne eingeben - + login_advanced_parameters_label Advanced parameters - + login_proxy_server_url "Proxy server URL" - + login_id "Connexion ID (if different)" @@ -5029,13 +5041,13 @@ Pour les activer dans un projet commercial, merci de nous contacter. Bildschirm %1 - + stop "Stop Stopp - + share "Partager" Teilen @@ -5115,25 +5127,25 @@ Pour les activer dans un projet commercial, merci de nous contacter. - + shared_medias_title Shared medias - + shared_documents_title Shared documents - + forward_to_title Forward to… - + conversations_title Conversations diff --git a/Linphone/data/languages/en.ts b/Linphone/data/languages/en.ts index 843493c04..222bc4219 100644 --- a/Linphone/data/languages/en.ts +++ b/Linphone/data/languages/en.ts @@ -874,42 +874,42 @@ CallLayout - + meeting_event_conference_destroyed "Vous avez quitté la conférence" You have left the meeting - + call_ended_by_user "Vous avez terminé l'appel" You have ended the call - + call_ended_by_remote "Votre correspondant a terminé l'appel" Your caller has ended the call - + conference_call_empty "En attente d'autres participants…" Waiting for other participants… - + conference_share_link_title "Partager le lien" Share link - + copied Copied - + information_popup_meeting_address_copied_to_clipboard Le lien de la réunion a été copié dans le presse-papier The meeting link has been copied to the clipboard @@ -1377,133 +1377,133 @@ Call paused by remote - + conference_user_is_recording - "Vous enregistrez la réunion" + "You are recording the meeting" You are recording the meeting - + call_user_is_recording - "Vous enregistrez l'appel" + "You are recording the call" You are recording the call - + conference_remote_is_recording - "Un participant enregistre la réunion" + "Someone is recording the meeting" Someone is recording the meeting - + call_remote_recording - "%1 enregistre l'appel" + "%1 is recording the call" %1 records the call - + call_stop_recording - "Arrêter l'enregistrement" + "Stop recording" Stop recording - + add Add - + call_transfer_current_call_title "Transférer %1 à…" Transfer %1 to… - - + + call_transfer_confirm_dialog_tittle "Confirmer le transfert" Confirm transfer - - + + call_transfer_confirm_dialog_message "Vous allez transférer %1 à %2." You are going to transfer %1 to %2. - + call_action_start_new_call "Nouvel appel" New call - - + + call_action_show_dialer "Pavé numérique" Dialer - + call_action_change_layout "Modifier la disposition" Change layout - + call_action_go_to_calls_list "Liste d'appel" Call list - + Merger tous les appels call_action_merge_calls Merge all calls - - + + call_action_go_to_settings "Paramètres" Settings - + conference_action_screen_sharing "Partage de votre écran" Share your screen - + conference_share_link_title Partager le lien de la réunion Share meeting link - + copied Copié Copied - + information_popup_meeting_address_copied_to_clipboard Le lien de la réunion a été copié dans le presse-papier Meeting link has been copied to the clipboard - - - + + + conference_participants_list_title "Participants (%1)" Participants (%1) - - + + group_call_participant_selected %1 selected participant @@ -1511,149 +1511,161 @@ - + meeting_schedule_add_participants_title Add participants - + call_encryption_title Chiffrement Encryption - + + conference_user_is_sharing_screen + "You are sharing your screen" + You are sharing your screen + + + + call_stop_screen_sharing + "Stop sharing" + Stop + + + call_stats_title Statistiques Statistics - + call_action_end_call "Terminer l'appel" End call - + call_action_resume_call "Reprendre l'appel" Resume call - + call_action_pause_call "Mettre l'appel en pause" Pause call - + call_action_transfer_call "Transférer l'appel" Transfer call - + call_action_start_new_call_hint "Initier un nouvel appel" Start new call - + call_display_call_list_hint "Afficher la liste d'appels" View call list - + call_deactivate_video_hint "Désactiver la vidéo" "Activer la vidéo" Turn off video - + call_activate_video_hint Enable video - + call_activate_microphone "Activer le micro" Activate microphone - + call_deactivate_microphone "Désactiver le micro" Mute microphone - + call_share_screen_hint Partager l'écran… Share screen… - + call_open_chat_hint Open chat… Open conversation… - + call_rise_hand_hint "Lever la main" Rise hand - + call_send_reaction_hint "Envoyer une réaction" Send reaction - + call_manage_participants_hint "Gérer les participants" Manage participants - + call_more_options_hint "Plus d'options…" More options… - + call_action_change_conference_layout "Modifier la disposition" Change layout - + call_action_full_screen "Mode Plein écran" Full screen mode - + call_action_stop_recording "Terminer l'enregistrement" End recording - + call_action_record "Enregistrer l'appel" Record call - + call_activate_speaker_hint "Activer le son" Activate speaker - + call_deactivate_speaker_hint "Désactiver le son" Mute speaker @@ -1799,13 +1811,13 @@ ChatDroppableTextArea - + chat_view_send_area_placeholder_text Say something… : placeholder text for sending message text area Say something… - + cannot_record_while_in_call_tooltip Cannot record a message while a call is ongoing Cannot record a message while a call is ongoing @@ -2217,37 +2229,37 @@ Only your correspondent can decrypt them. No conversation in history - + chat_action_start_new_chat "New chat" New conversation - + chat_start_group_chat_title "Nouveau groupe" New group - + chat_action_start_group_chat "Créer" Create - - + + information_popup_error_title Error - + group_chat_error_must_have_name "Un nom doit être donné au groupe A name must be set for the group - + group_call_error_not_connected "Vous n'etes pas connecté" You are not connected @@ -2310,13 +2322,13 @@ Only your correspondent can decrypt them. ConferenceInfoCore - + information_popup_error_title "Erreur" Error - + information_popup_disconnected_account_message "Votre compte est déconnecté" Your account is disconnected @@ -4857,35 +4869,35 @@ To enable them in a commercial project, please contact us. Connection - + assistant_account_login_missing_username Please enter a username - + assistant_account_login_missing_password Please enter a password - + assistant_account_login_missing_domain "Veuillez saisir un nom de domaine Please enter a domain - + login_advanced_parameters_label Advanced parameters Advanced parameters - + login_proxy_server_url "Proxy server URL" Proxy server URL - + login_id "Connexion ID (if different)" Connexion ID (if different) @@ -4918,13 +4930,13 @@ To enable them in a commercial project, please contact us. Screen %1 - + stop "Stop Stop - + share "Partager" Share @@ -5004,25 +5016,25 @@ To enable them in a commercial project, please contact us. Reply to %1 - + shared_medias_title Shared medias Shared medias - + shared_documents_title Shared documents Shared documents - + forward_to_title Forward to… Froward to… - + conversations_title Conversations Conversations diff --git a/Linphone/data/languages/fr_FR.ts b/Linphone/data/languages/fr_FR.ts index c51db0121..402527289 100644 --- a/Linphone/data/languages/fr_FR.ts +++ b/Linphone/data/languages/fr_FR.ts @@ -874,42 +874,42 @@ CallLayout - + meeting_event_conference_destroyed "Vous avez quitté la conférence" Vous avez quitté la conférence - + call_ended_by_user "Vous avez terminé l'appel" Vous avez terminé l'appel - + call_ended_by_remote "Votre correspondant a terminé l'appel" Votre correspondant a terminé l'appel - + conference_call_empty "En attente d'autres participants…" En attente d'autres participants… - + conference_share_link_title "Partager le lien" Partager le lien - + copied Copié - + information_popup_meeting_address_copied_to_clipboard Le lien de la réunion a été copié dans le presse-papier Le lien de la réunion a été copié dans le presse-papier @@ -1377,133 +1377,133 @@ Appel mis en pause par votre correspondant - + conference_user_is_recording - "Vous enregistrez la réunion" + "You are recording the meeting" Vous enregistrez la réunion - + call_user_is_recording - "Vous enregistrez l'appel" + "You are recording the call" Vous enregistrez l'appel - + conference_remote_is_recording - "Un participant enregistre la réunion" + "Someone is recording the meeting" Un participant enregistre la réunion - + call_remote_recording - "%1 enregistre l'appel" + "%1 is recording the call" %1 enregistre l'appel - + call_stop_recording - "Arrêter l'enregistrement" + "Stop recording" Arrêter l'enregistrement - + add Ajouter - + call_transfer_current_call_title "Transférer %1 à…" Transférer %1 à… - - + + call_transfer_confirm_dialog_tittle "Confirmer le transfert" Confirmer le transfert - - + + call_transfer_confirm_dialog_message "Vous allez transférer %1 à %2." Vous allez transférer %1 à %2. - + call_action_start_new_call "Nouvel appel" Nouvel appel - - + + call_action_show_dialer "Pavé numérique" Pavé numérique - + call_action_change_layout "Modifier la disposition" Modifier la disposition - + call_action_go_to_calls_list "Liste d'appel" Liste d'appel - + Merger tous les appels call_action_merge_calls Merger tous les appels - - + + call_action_go_to_settings "Paramètres" Paramètres - + conference_action_screen_sharing "Partage de votre écran" Partage de votre écran - + conference_share_link_title Partager le lien de la réunion Partager le lien de la réunion - + copied Copié Copié - + information_popup_meeting_address_copied_to_clipboard Le lien de la réunion a été copié dans le presse-papier Le lien de la réunion a été copié dans le presse-papier - - - + + + conference_participants_list_title "Participants (%1)" Participants (%1) - - + + group_call_participant_selected %1 participant sélectionné @@ -1511,149 +1511,161 @@ - + meeting_schedule_add_participants_title Ajouter des participants - + call_encryption_title Chiffrement Chiffrement - + + conference_user_is_sharing_screen + "You are sharing your screen" + Vous partagez votre écran + + + + call_stop_screen_sharing + "Stop sharing" + Arrêter le partage + + + call_stats_title Statistiques Statistiques - + call_action_end_call "Terminer l'appel" Terminer l'appel - + call_action_resume_call "Reprendre l'appel" Reprendre l'appel - + call_action_pause_call "Mettre l'appel en pause" Mettre l'appel en pause - + call_action_transfer_call "Transférer l'appel" Transférer l'appel - + call_action_start_new_call_hint "Initier un nouvel appel" Initier un nouvel appel - + call_display_call_list_hint "Afficher la liste d'appels" Afficher la liste d'appels - + call_deactivate_video_hint "Désactiver la vidéo" "Activer la vidéo" Désactiver la vidéo - + call_activate_video_hint Activer la vidéo - + call_activate_microphone "Activer le micro" Activer le micro - + call_deactivate_microphone "Désactiver le micro" Désactiver le micro - + call_share_screen_hint Partager l'écran… Partager l'écran… - + call_open_chat_hint Open chat… Ouvrir le chat… - + call_rise_hand_hint "Lever la main" Lever la main - + call_send_reaction_hint "Envoyer une réaction" Envoyer une réaction - + call_manage_participants_hint "Gérer les participants" Gérer les participants - + call_more_options_hint "Plus d'options…" Plus d'options… - + call_action_change_conference_layout "Modifier la disposition" Modifier la disposition - + call_action_full_screen "Mode Plein écran" Mode Plein écran - + call_action_stop_recording "Terminer l'enregistrement" Terminer l'enregistrement - + call_action_record "Enregistrer l'appel" Enregistrer l'appel - + call_activate_speaker_hint "Activer le son" Activer le son - + call_deactivate_speaker_hint "Désactiver le son" Désactiver le son @@ -1799,13 +1811,13 @@ ChatDroppableTextArea - + chat_view_send_area_placeholder_text Say something… : placeholder text for sending message text area Dites quelque chose… - + cannot_record_while_in_call_tooltip Cannot record a message while a call is ongoing Impossible d'enregistrer un message vocal pendant un appel @@ -2217,37 +2229,37 @@ en bout. Seul votre correspondant peut les déchiffrer. Aucune conversation dans votre historique - + chat_action_start_new_chat "New chat" Nouvelle conversation - + chat_start_group_chat_title "Nouveau groupe" Nouveau groupe - + chat_action_start_group_chat "Créer" Créer - - + + information_popup_error_title Erreur - + group_chat_error_must_have_name "Un nom doit être donné au groupe Un nom doit être donné au groupe - + group_call_error_not_connected "Vous n'etes pas connecté" Vous n'êtes pas connecté @@ -2310,13 +2322,13 @@ en bout. Seul votre correspondant peut les déchiffrer. ConferenceInfoCore - + information_popup_error_title "Erreur" Erreur - + information_popup_disconnected_account_message "Votre compte est déconnecté" Votre compte est déconnecté @@ -4857,35 +4869,35 @@ Pour les activer dans un projet commercial, merci de nous contacter.Connexion - + assistant_account_login_missing_username Veuillez saisir un nom d'utilisateur - + assistant_account_login_missing_password Veuillez saisir un mot de passe - + assistant_account_login_missing_domain "Veuillez saisir un nom de domaine Veuillez saisir un nom de domaine - + login_advanced_parameters_label Advanced parameters Paramètres avancés - + login_proxy_server_url "Proxy server URL" URI du proxy SIP sortant - + login_id "Connexion ID (if different)" Identifiant de connexion (si différent) @@ -4918,13 +4930,13 @@ Pour les activer dans un projet commercial, merci de nous contacter.Écran %1 - + stop "Stop Stop - + share "Partager" Partager @@ -5004,25 +5016,25 @@ Pour les activer dans un projet commercial, merci de nous contacter.Réponse à %1 - + shared_medias_title Shared medias Médias partagés - + shared_documents_title Shared documents Documents partagés - + forward_to_title Forward to… Transférer à… - + conversations_title Conversations Conversations diff --git a/Linphone/model/conference/ConferenceInfoModel.cpp b/Linphone/model/conference/ConferenceInfoModel.cpp index 956e6b874..50af52070 100644 --- a/Linphone/model/conference/ConferenceInfoModel.cpp +++ b/Linphone/model/conference/ConferenceInfoModel.cpp @@ -82,6 +82,8 @@ void ConferenceInfoModel::setConferenceScheduler(const std::shared_ptrsetSelf(mConferenceSchedulerModel); + } else { + deleteConferenceInfo(); } } } diff --git a/Linphone/view/Control/Container/Call/ActiveSpeakerLayout.qml b/Linphone/view/Control/Container/Call/ActiveSpeakerLayout.qml index 87bf83541..ee5a1638c 100644 --- a/Linphone/view/Control/Container/Call/ActiveSpeakerLayout.qml +++ b/Linphone/view/Control/Container/Call/ActiveSpeakerLayout.qml @@ -14,12 +14,12 @@ Item { property alias call: allDevices.currentCall property ConferenceGui conference: call && call.core.conference || null property var callState: call && call.core.state || undefined - onCallStateChanged: if (callState === LinphoneEnums.CallState.End || callState === LinphoneEnums.CallState.Released) preview.visible = false property string localAddress: call ? call.conference ? call.conference.core.me.core.sipAddress : call.core.localAddress : "" + property bool sideStickersVisible: sideStickers.visible // currently speaking address (for hiding in list view) property string activeSpeakerAddress @@ -85,48 +85,4 @@ Item { } } } - Sticker { - id: preview - qmlName: 'P' - previewEnabled: true - visible: !sideStickers.visible && mainItem.callState !== LinphoneEnums.CallState.OutgoingProgress - && mainItem.callState !== LinphoneEnums.CallState.OutgoingRinging - && mainItem.callState !== LinphoneEnums.CallState.OutgoingInit - onVisibleChanged: console.log(visible + " : " +allDevices.count) - height: Math.round(180 * DefaultStyle.dp) - width: Math.round(300 * DefaultStyle.dp) - anchors.right: mainItem.right - anchors.bottom: mainItem.bottom - anchors.rightMargin: Math.round(20 * DefaultStyle.dp) - anchors.bottomMargin: Math.round(10 * DefaultStyle.dp) - videoEnabled: preview.visible && mainItem.call && mainItem.call.core.localVideoEnabled - onVideoEnabledChanged: console.log("P : " +videoEnabled + " / " +visible +" / " +mainItem.call) - property var accountObj: UtilsCpp.findLocalAccountByAddress(mainItem.localAddress) - account: accountObj && accountObj.value || null - call: mainItem.call - displayAll: false - displayPresence: false - - MovableMouseArea { - id: previewMouseArea - anchors.fill: parent - movableArea: mainItem - margin: Math.round(10 * DefaultStyle.dp) - function resetPosition(){ - preview.anchors.right = mainItem.right - preview.anchors.bottom = mainItem.bottom - preview.anchors.rightMargin = previewMouseArea.margin - preview.anchors.bottomMargin = previewMouseArea.margin - } - onVisibleChanged: if(!visible){ - resetPosition() - } - drag.target: preview - onDraggingChanged: if(dragging) { - preview.anchors.right = undefined - preview.anchors.bottom = undefined - } - onRequestResetPosition: resetPosition() - } - } } diff --git a/Linphone/view/Control/Container/Call/CallLayout.qml b/Linphone/view/Control/Container/Call/CallLayout.qml index f2ff581de..259ae76f2 100644 --- a/Linphone/view/Control/Container/Call/CallLayout.qml +++ b/Linphone/view/Control/Container/Call/CallLayout.qml @@ -16,6 +16,7 @@ Item { property bool callTerminatedByUser: false property bool callStarted: call? call.core.isStarted : false readonly property var callState: call?.core.state + 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 participantDeviceCount: conference ? conference.core.participantDeviceCount : -1 onParticipantDeviceCountChanged: { @@ -77,6 +78,51 @@ Item { : activeSpeakerComponent } + Sticker { + id: preview + qmlName: 'P' + previewEnabled: true + visible: (callLayout.sourceComponent === activeSpeakerComponent || callLayout.sourceComponent === waitingForOthersComponent) + && mainItem.callState !== LinphoneEnums.CallState.OutgoingProgress + && mainItem.callState !== LinphoneEnums.CallState.OutgoingRinging + && mainItem.callState !== LinphoneEnums.CallState.OutgoingInit + height: Math.round(180 * DefaultStyle.dp) + width: Math.round(300 * DefaultStyle.dp) + anchors.right: mainItem.right + anchors.bottom: mainItem.bottom + anchors.rightMargin: Math.round(20 * DefaultStyle.dp) + anchors.bottomMargin: Math.round(10 * DefaultStyle.dp) + videoEnabled: preview.visible && mainItem.call && mainItem.call.core.localVideoEnabled + onVideoEnabledChanged: console.log("P : " +videoEnabled + " / " +visible +" / " +mainItem.call) + property var accountObj: UtilsCpp.findLocalAccountByAddress(mainItem.localAddress) + account: accountObj && accountObj.value || null + call: mainItem.call + displayAll: false + displayPresence: false + + MovableMouseArea { + id: previewMouseArea + anchors.fill: parent + movableArea: mainItem + margin: Math.round(10 * DefaultStyle.dp) + function resetPosition(){ + preview.anchors.right = mainItem.right + preview.anchors.bottom = mainItem.bottom + preview.anchors.rightMargin = previewMouseArea.margin + preview.anchors.bottomMargin = previewMouseArea.margin + } + onVisibleChanged: if(!visible){ + resetPosition() + } + drag.target: preview + onDraggingChanged: if(dragging) { + preview.anchors.right = undefined + preview.anchors.bottom = undefined + } + onRequestResetPosition: resetPosition() + } + } + Component { id: waitingForOthersComponent Rectangle { @@ -127,9 +173,17 @@ Item { Component{ id: activeSpeakerComponent ActiveSpeakerLayout{ + id: activeSpeaker Layout.fillWidth: true Layout.fillHeight: true call: mainItem.call + + Binding { + target: preview + property: "visible" + when: activeSpeaker.sideStickersVisible + value: false + } } } Component{ diff --git a/Linphone/view/Control/Form/Login/LoginForm.qml b/Linphone/view/Control/Form/Login/LoginForm.qml index 14ac0b67b..874c75c46 100644 --- a/Linphone/view/Control/Form/Login/LoginForm.qml +++ b/Linphone/view/Control/Form/Login/LoginForm.qml @@ -68,7 +68,6 @@ ColumnLayout { text: qsTr("assistant_account_login") horizontalAlignment: Text.AlignHCenter verticalAlignment: Text.AlignVCenter - font { pixelSize: Typography.b1.pixelSize weight: Typography.b1.weight @@ -80,6 +79,7 @@ ColumnLayout { implicitHeight: parent.height Layout.alignment: Qt.AlignCenter indicatorColor: DefaultStyle.grey_0 + indicatorWidth: Math.round(25 * DefaultStyle.dp) } Connections { target: LoginPageCpp diff --git a/Linphone/view/Control/Form/Settings/ScreencastSettings.qml b/Linphone/view/Control/Form/Settings/ScreencastSettings.qml index bc76f0e90..1b7ef6553 100644 --- a/Linphone/view/Control/Form/Settings/ScreencastSettings.qml +++ b/Linphone/view/Control/Form/Settings/ScreencastSettings.qml @@ -100,21 +100,27 @@ ColumnLayout { } } StackLayout { + id: stacklayout currentIndex: bar.currentIndex - height: currentIndex === 0 ? screensLayout.contentHeight : windowsLayout.contentHeight - onHeightChanged: console.log("stacklayout height =====", height) ListView{ id: screensLayout spacing: Math.round(16 * DefaultStyle.dp) clip: true Layout.fillWidth: true - height: contentHeight + height: visible ? contentHeight : 0 + currentIndex: -1 + onCurrentIndexChanged: { + mainItem.desc.core.screenSharingIndex = currentIndex + } //property int selectedIndex model: ScreenProxy{ id: screensList mode: ScreenList.SCREENS } - onVisibleChanged: if(visible) screensList.update() + onVisibleChanged: { + if(visible) screensList.update() + else currentIndex = -1 + } delegate: ScreenPreviewLayout { horizontalMargin: Math.round((28 - 20 ) * DefaultStyle.dp) // 20 coming from CallsWindow panel width: screensLayout.width @@ -122,7 +128,6 @@ ColumnLayout { screenIndex: index onClicked: {//screensLayout.selectedIndex = index screensLayout.currentIndex = index - mainItem.desc.core.screenSharingIndex = index if( mainItem.conference.core.isLocalScreenSharing) mainItem.call.core.videoSourceDescriptor = mainItem.desc } @@ -133,14 +138,20 @@ ColumnLayout { GridView{ id: windowsLayout //property int selectedIndex - Layout.preferredHeight: contentHeight + Layout.preferredHeight: visible ? contentHeight : 0 Layout.fillWidth: true model: ScreenProxy{ id: windowsList mode: ScreenList.WINDOWS } currentIndex: -1 - onVisibleChanged: if(visible) windowsList.update() + onCurrentIndexChanged: { + mainItem.desc.core.windowId = model.getAt(currentIndex)? model.getAt(currentIndex).windowId : -1 + } + onVisibleChanged: { + if(visible) windowsList.update() + else currentIndex = -1 + } cellWidth: width / 2 cellHeight: Math.round((112 + 15) * DefaultStyle.dp) clip: true @@ -154,7 +165,6 @@ ColumnLayout { screenIndex: index onClicked: { windowsLayout.currentIndex = index - mainItem.desc.core.windowId = $modelData.windowId if( mainItem.conference.core.isLocalScreenSharing) mainItem.call.core.videoSourceDescriptor = mainItem.desc } diff --git a/Linphone/view/Control/Input/Chat/ChatDroppableTextArea.qml b/Linphone/view/Control/Input/Chat/ChatDroppableTextArea.qml index 16ea564c0..c7581e5d9 100644 --- a/Linphone/view/Control/Input/Chat/ChatDroppableTextArea.qml +++ b/Linphone/view/Control/Input/Chat/ChatDroppableTextArea.qml @@ -22,6 +22,9 @@ Control.Control { property bool isEphemeral : false property bool emojiVisible: false + // disable record button if call ongoing + property bool callOngoing: false + property ChatGui chat // --------------------------------------------------------------------------- @@ -73,11 +76,6 @@ Control.Control { Component { id: textAreaComp RowLayout { - // disable record button if call ongoing - CallProxy { - id: callsModel - sourceModel: AppCpp.calls - } spacing: Math.round(16 * DefaultStyle.dp) BigButton { id: emojiPickerButton @@ -183,11 +181,11 @@ Control.Control { spacing: 0 BigButton { id: recordButton - enabled: !callsModel.currentCall ToolTip.visible: !enabled && hovered //: Cannot record a message while a call is ongoing ToolTip.text: qsTr("cannot_record_while_in_call_tooltip") - visible: sendingTextArea.text.length === 0 && mainItem.selectedFilesCount === 0 + enabled: !mainItem.callOngoing + visible: !mainItem.callOngoing && sendingTextArea.text.length === 0 && mainItem.selectedFilesCount === 0 style: ButtonStyle.noBackground hoverEnabled: true icon.source: AppIcons.microphone diff --git a/Linphone/view/Page/Form/Chat/SelectedChatView.qml b/Linphone/view/Page/Form/Chat/SelectedChatView.qml index 8d049372d..d90fc3611 100644 --- a/Linphone/view/Page/Form/Chat/SelectedChatView.qml +++ b/Linphone/view/Page/Form/Chat/SelectedChatView.qml @@ -499,6 +499,7 @@ FocusScope { chat: mainItem.chat selectedFilesCount: contents.count emojiPicker: emojiPickerPopup + callOngoing: mainItem.call != null onChatChanged: { if (chat) messageSender.text = mainItem.chat.core.sendingText } diff --git a/Linphone/view/Page/Form/Login/SIPLoginPage.qml b/Linphone/view/Page/Form/Login/SIPLoginPage.qml index 6533b9b94..9cf2db034 100644 --- a/Linphone/view/Page/Form/Login/SIPLoginPage.qml +++ b/Linphone/view/Page/Form/Login/SIPLoginPage.qml @@ -302,6 +302,7 @@ LoginLayout { implicitHeight: parent.height Layout.alignment: Qt.AlignCenter indicatorColor: DefaultStyle.grey_0 + indicatorWidth: Math.round(25 * DefaultStyle.dp) } Connections { target: LoginPageCpp diff --git a/Linphone/view/Page/Main/Call/CallSettingsPanel.qml b/Linphone/view/Page/Main/Call/CallSettingsPanel.qml index 7b7a68f62..e465d3d2d 100644 --- a/Linphone/view/Page/Main/Call/CallSettingsPanel.qml +++ b/Linphone/view/Page/Main/Call/CallSettingsPanel.qml @@ -148,7 +148,6 @@ Control.Page { contentItem: Loader { id: contentLoader width: contentcontrol.width - contentControl.rightPadding - onHeightChanged: console.log("height current item in loader", height, contentControl.height, scrollview.height) } } } diff --git a/Linphone/view/Page/Main/Chat/ChatPage.qml b/Linphone/view/Page/Main/Chat/ChatPage.qml index c4405a4af..ec18bb007 100644 --- a/Linphone/view/Page/Main/Chat/ChatPage.qml +++ b/Linphone/view/Page/Main/Chat/ChatPage.qml @@ -195,7 +195,6 @@ AbstractMainPage { Connections { target: mainItem function onSelectedChatGuiChanged() { - console.log("selected chat gui changed") chatListView.selectChat(mainItem.selectedChatGui) } function onOpenChatRequested(chat) { diff --git a/Linphone/view/Page/Window/Call/CallsWindow.qml b/Linphone/view/Page/Window/Call/CallsWindow.qml index 078acb62a..7b8498244 100644 --- a/Linphone/view/Page/Window/Call/CallsWindow.qml +++ b/Linphone/view/Page/Window/Call/CallsWindow.qml @@ -546,7 +546,13 @@ AbstractWindow { } Control.Control { - visible: mainWindow.call ? !!mainWindow.conference ? mainWindow.conference.core.isRecording : (mainWindow.call.core.recording || mainWindow.call.core.remoteRecording) : false + id: screenSharingOrRecordBanner + property var isScreenSharing: mainWindow.conference && mainWindow.conference.core.isLocalScreenSharing + visible: mainWindow.call + ? !!mainWindow.conference + ? mainWindow.conference.core.isRecording || isScreenSharing//mainWindow.conference.core.isLocalScreenSharing + : (mainWindow.call.core.recording || mainWindow.call.core.remoteRecording) + : false anchors.centerIn: parent leftPadding: Math.round(14 * DefaultStyle.dp) rightPadding: Math.round(14 * DefaultStyle.dp) @@ -562,36 +568,51 @@ AbstractWindow { RowLayout { spacing: Math.round(15 * DefaultStyle.dp) EffectImage { - imageSource: AppIcons.recordFill - colorizationColor: DefaultStyle.danger_500main + imageSource: screenSharingOrRecordBanner.isScreenSharing + ? AppIcons.screencast + : AppIcons.recordFill + colorizationColor: screenSharingOrRecordBanner.isScreenSharing + ? DefaultStyle.grey_0 + : DefaultStyle.danger_500main Layout.preferredWidth: Math.round(24 * DefaultStyle.dp) Layout.preferredHeight: Math.round(24 * DefaultStyle.dp) } Text { - color: DefaultStyle.danger_500main - font.pixelSize: Math.round(14 * DefaultStyle.dp) + color: screenSharingOrRecordBanner.isScreenSharing + ? DefaultStyle.grey_0 + : DefaultStyle.danger_500main + font: Typography.b1 text: mainWindow.call - ? mainWindow.call.core.recording - ? mainWindow.conference - //: "Vous enregistrez la réunion" - ? qsTr("conference_user_is_recording") - //: "Vous enregistrez l'appel" - : qsTr("call_user_is_recording") - : mainWindow.conference - //: "Un participant enregistre la réunion" - ? qsTr("conference_remote_is_recording") - //: "%1 enregistre l'appel" - : qsTr("call_remote_recording").arg(mainWindow.call.core.remoteName) - : "" + ? screenSharingOrRecordBanner.isScreenSharing + //: "You are sharing your screen" + ? qsTr("conference_user_is_sharing_screen") + : mainWindow.call.core.recording + ? mainWindow.conference + //: "You are recording the meeting" + ? qsTr("conference_user_is_recording") + //: "You are recording the call" + : qsTr("call_user_is_recording") + : mainWindow.conference + //: "Someone is recording the meeting" + ? qsTr("conference_remote_is_recording") + //: "%1 is recording the call" + : qsTr("call_remote_recording").arg(mainWindow.call.core.remoteName) + : "" } } - BigButton { + MediumButton { visible: mainWindow.call - && mainWindow.call.core.recording - //: "Arrêter l'enregistrement" - text: qsTr("call_stop_recording") + && mainWindow.call.core.recording || screenSharingOrRecordBanner.isScreenSharing + //: "Stop recording" + text: screenSharingOrRecordBanner.isScreenSharing + ? qsTr("call_stop_recording") + //: "Stop sharing" + : qsTr("call_stop_screen_sharing") style: ButtonStyle.main - onPressed: mainWindow.call.core.lStopRecording() + onPressed: { + if (screenSharingOrRecordBanner.isScreenSharing) mainWindow.conference.core.lToggleScreenSharing() + else mainWindow.call.core.lStopRecording() + } } } } @@ -719,9 +740,9 @@ AbstractWindow { width: parent.width height: rightPanel.contentItemHeight Keys.onEscapePressed: event => { - rightPanel.visible = false - event.accepted = true - } + rightPanel.visible = false + event.accepted = true + } groupCallVisible: false displayCurrentCalls: true searchBarColor: DefaultStyle.grey_0 @@ -976,7 +997,6 @@ AbstractWindow { Control.Control { objectName: "screencastPanel" width: parent.width - height: contentChildren.height Keys.onEscapePressed: event => { rightPanel.visible = false event.accepted = true @@ -986,6 +1006,7 @@ AbstractWindow { anchors.topMargin: Math.round(16 * DefaultStyle.dp) width: parent.width call: mainWindow.call + onIsLocalScreenSharingChanged: if (isLocalScreenSharing) rightPanel.visible = false } } }