diff --git a/Linphone/data/languages/de.ts b/Linphone/data/languages/de.ts index 4b6bf5584..39d583dd6 100644 --- a/Linphone/data/languages/de.ts +++ b/Linphone/data/languages/de.ts @@ -2381,19 +2381,19 @@ Error ChatMessageCore - + all_reactions_label "Reactions": all reactions for one message label - + info_toast_deleted_title Deleted - + info_toast_deleted_message The message has been deleted @@ -3390,19 +3390,19 @@ Error ConversationInfos - + one_one_infos_call "Appel" Anrufen - + one_one_infos_unmute "Sourdine" Unmute - + one_one_infos_mute Stummschalten @@ -3412,121 +3412,121 @@ Error Suchen - + group_infos_participants Teilnehmer (%1) - + group_infos_media_docs Medias & documents Medien & Dokumente - + group_infos_shared_medias Shared medias - + group_infos_shared_docs Shared documents Geteilte Dokumente - + group_infos_other_actions Other actions Weitere Aktionen - + group_infos_ephemerals Ephemeral messages : - + group_infos_enable_ephemerals Flüchtige Nachrichten aktivieren - + group_infos_meeting Schedule a meeting Meeting - + group_infos_leave_room Leave chat room - + group_infos_leave_room_toast_title Leave Chat Room ? Chatraum verlassen? - + group_infos_leave_room_toast_message All the messages will be removed from the chat room. Do you want to continue ? Alle Nachrichten werden aus dem Chat entfernt. Möchten Sie fortfahren? - + group_infos_delete_history Delete history Verlauf löschen - + group_infos_delete_history_toast_title Delete history ? Verlauf löschen? - + group_infos_delete_history_toast_message All the messages will be removed from the chat room. Do you want to continue ? Alle Nachrichten werden aus dem Chat entfernt. Möchten Sie fortfahren? - + one_one_infos_open_contact Show contact Kontakt anzeigen - + one_one_infos_create_contact Create contact Kontakt erstellen - + one_one_infos_ephemerals Ephemeral messages : - + one_one_infos_enable_ephemerals Flüchtige Nachrichten aktivieren - + one_one_infos_delete_history Verlauf löschen - + one_one_infos_delete_history_toast_title Delete history ? Verlauf löschen? - + one_one_infos_delete_history_toast_message All the messages will be removed from the chat room. Do you want to continue ? Alle Nachrichten werden aus dem Chat entfernt. Möchten Sie fortfahren? @@ -4623,170 +4623,170 @@ Error MeetingPage - + meetings_add "Créer une réunion" Besprechung erstellen - + meetings_list_empty "Aucune réunion" Keine Besprechungen - + meeting_schedule_cancel_dialog_message "Souhaitez-vous annuler et supprimer cette réunion ?" Möchten Sie diese Besprechung absagen und löschen? - + meeting_schedule_delete_dialog_message Souhaitez-vous supprimer cette réunion ? Möchten Sie diese Besprechung löschen? - + meeting_schedule_cancel_and_delete_action "Annuler et supprimer" Absagen und löschen - + meeting_schedule_delete_only_action "Supprimer seulement" Nur löschen - + meeting_schedule_delete_action "Supprimer" Löschen - + back_action Retour Zurück - + meetings_list_title Réunions Besprechungen - + meetings_search_hint "Rechercher une réunion" Besprechung suchen - + list_filter_no_result_found "Aucun résultat…" Kein Ergebnis… - + meetings_empty_list "Aucune réunion" Keine Besprechungen - - + + meeting_schedule_title "Nouvelle réunion" Neue Besprechung - + create Erstellen - - - - - - + + + + + + information_popup_error_title Fehler - - + + meeting_schedule_mandatory_field_not_filled_toast Veuillez saisir un titre et sélectionner au moins un participant Bitte Titel bestimmen und mindestens einen Teilnehmer auswählen - - + + meeting_schedule_duration_error_toast "La fin de la conférence doit être plus récente que son début" Das Ende der Besprechung muss nach dem Beginn liegen - - + + meeting_schedule_creation_in_progress "Création de la réunion en cours …" Besprechung wird erstellt… - + meeting_info_created_toast "Réunion planifiée avec succès" Besprechung erfolgreich erstellt - + meeting_failed_to_schedule_toast "Échec de création de la réunion !" Besprechung konnte nicht erstellt werden! - + save Speichern - - + + saved "Enregistré" Gespeichert - + meeting_info_updated_toast "Réunion mise à jour" Besprechung geändert - + meeting_schedule_edit_in_progress "Modification de la réunion en cours…" Bersprechung wird geändert… - + meeting_failed_to_edit_toast "Échec de la modification de la réunion !" Besprechung konnte nicht geändert werden! - + meeting_schedule_add_participants_title "Ajouter des participants" Teilnehmer hinzufügen - + meeting_schedule_add_participants_apply Apply @@ -4795,7 +4795,7 @@ Error Hinzufügen - + group_call_participant_selected "%n participant(s) sélectionné(s)" @@ -4804,31 +4804,31 @@ Error - + meeting_info_delete "Supprimer la réunion" Besprechung löschen - + meeting_address_copied_to_clipboard_toast "Adresse de la réunion copiée" Besprechungs-URI kopiert - + meeting_schedule_timezone_title "Fuseau horaire" Zeitzone - + meeting_info_organizer_label "Organisateur" Organisator - + meeting_info_join_title "Rejoindre la réunion" Besprechung beitreten @@ -6004,43 +6004,43 @@ Pour les activer dans un projet commercial, merci de nous contacter. Die Anrufadresse ist keine interpretierbare SIP-Adresse: %1 - + group_call_error_no_account - + group_call_error_participants_invite - + group_call_error_creation - + voice_recording_duration "Voice recording (%1)" : %1 is the duration formated in mm:ss - + conference_invitation - + conference_invitation_updated - + conference_invitation_cancelled - + unknown_audio_device_name Unbekannter Gerätename diff --git a/Linphone/data/languages/en.ts b/Linphone/data/languages/en.ts index 7f2532e2b..6dc178188 100644 --- a/Linphone/data/languages/en.ts +++ b/Linphone/data/languages/en.ts @@ -2353,19 +2353,19 @@ Error ChatMessageCore - + all_reactions_label "Reactions": all reactions for one message label Reactions - + info_toast_deleted_title Deleted Deleted - + info_toast_deleted_message The message has been deleted The message has been deleted @@ -3314,138 +3314,138 @@ Only your correspondent can decrypt them. ConversationInfos - + one_one_infos_call "Appel" Call - + one_one_infos_unmute "Sourdine" Unmute - + one_one_infos_mute Mute - + group_infos_participants Participants (%1) - + group_infos_media_docs Medias & documents Medias & documents - + group_infos_shared_medias Shared medias Shared medias - + group_infos_shared_docs Shared documents Shared documents - + group_infos_other_actions Other actions Other actions - + group_infos_ephemerals Ephemeral messages : - + group_infos_enable_ephemerals Enable ephemeral messages - + group_infos_meeting Schedule a meeting Schedule a meeting - + group_infos_leave_room Leave chat room Leave Chat Room - + group_infos_leave_room_toast_title Leave Chat Room ? Leave Chat Room ? - + group_infos_leave_room_toast_message All the messages will be removed from the chat room. Do you want to continue ? All the messages will be removed from the chat room. Do you want to continue ? - + group_infos_delete_history Delete history Delete history - + group_infos_delete_history_toast_title Delete history ? Delete history ? - + group_infos_delete_history_toast_message All the messages will be removed from the chat room. Do you want to continue ? All the messages will be removed from the chat room. Do you want to continue ? - + one_one_infos_open_contact Show contact Show contact - + one_one_infos_create_contact Create contact Create contact - + one_one_infos_ephemerals Ephemeral messages : - + one_one_infos_enable_ephemerals Enable ephemeral messages - + one_one_infos_delete_history Delete history - + one_one_infos_delete_history_toast_title Delete history ? Delete history ? - + one_one_infos_delete_history_toast_message All the messages will be removed from the chat room. Do you want to continue ? All the messages will be removed from the chat room. Do you want to continue ? @@ -4539,175 +4539,175 @@ Expiration : %1 MeetingPage - + meetings_add "Créer une réunion" Create meeting - + meetings_list_empty "Aucune réunion" No meeting - + meeting_schedule_cancel_dialog_message "Souhaitez-vous annuler et supprimer cette réunion ?" Would you like to cancel and delete this meeting? - + meeting_schedule_delete_dialog_message Souhaitez-vous supprimer cette réunion ? Would you like to delete this meeting? - + meeting_schedule_cancel_and_delete_action "Annuler et supprimer" Cancel and delete - + meeting_schedule_delete_only_action "Supprimer seulement" Delete only - + meeting_schedule_delete_action "Supprimer" Delete - + back_action Retour Back - + meetings_list_title Réunions Meetings - + meetings_search_hint "Rechercher une réunion" Find meeting - + list_filter_no_result_found "Aucun résultat…" No result… - + meetings_empty_list "Aucune réunion" No meeting - - + + meeting_schedule_title "Nouvelle réunion" New meeting - + create Create - - - - - - + + + + + + information_popup_error_title Error - - + + meeting_schedule_mandatory_field_not_filled_toast Veuillez saisir un titre et sélectionner au moins un participant Please fill the title and select at least one participant - - + + meeting_schedule_duration_error_toast "La fin de la conférence doit être plus récente que son début" The end of the conference must be more recent than its beginning - - + + meeting_schedule_creation_in_progress "Création de la réunion en cours …" Creation in progress… - + meeting_info_created_toast "Réunion planifiée avec succès" Meeting successfully created - + meeting_failed_to_schedule_toast "Échec de création de la réunion !" Failed to create meeting! - + save Save - - + + saved "Enregistré" Saved - + meeting_info_updated_toast "Réunion mise à jour" Meeting updated - + meeting_schedule_edit_in_progress "Modification de la réunion en cours…" Meeting update in progress… - + meeting_failed_to_edit_toast "Échec de la modification de la réunion !" Failed to update meeting ! - + meeting_schedule_add_participants_title "Ajouter des participants" Add participants - + meeting_schedule_add_participants_apply Apply - + group_call_participant_selected "%n participant(s) sélectionné(s)" @@ -4716,31 +4716,31 @@ Expiration : %1 - + meeting_info_delete "Supprimer la réunion" Delete meeting - + meeting_address_copied_to_clipboard_toast "Adresse de la réunion copiée" Meeting URI copied - + meeting_schedule_timezone_title "Fuseau horaire" Timezone - + meeting_info_organizer_label "Organisateur" Organizer - + meeting_info_join_title "Rejoindre la réunion" Join meeting @@ -5887,43 +5887,43 @@ To enable them in a commercial project, please contact us. The calling address is not an interpretable SIP address : %1 - + group_call_error_no_account No default account found, can't create group call - + group_call_error_participants_invite Couldn't invite participants to group call - + group_call_error_creation Group call couldn't be created - + voice_recording_duration "Voice recording (%1)" : %1 is the duration formated in mm:ss Voice recording (%1) - + unknown_audio_device_name Unknown device name - + conference_invitation Meeting invitation - + conference_invitation_cancelled Meeting cancellation - + conference_invitation_updated Meeting modification diff --git a/Linphone/data/languages/fr.ts b/Linphone/data/languages/fr.ts index 7aeb62926..6a7c3dcc8 100644 --- a/Linphone/data/languages/fr.ts +++ b/Linphone/data/languages/fr.ts @@ -2353,19 +2353,19 @@ Error ChatMessageCore - + all_reactions_label "Reactions": all reactions for one message label Réactions - + info_toast_deleted_title Deleted Supprimé - + info_toast_deleted_message The message has been deleted Le message a été supprimé @@ -3314,138 +3314,138 @@ en bout. Seul votre correspondant peut les déchiffrer. ConversationInfos - + one_one_infos_call "Appel" Appel - + one_one_infos_unmute "Sourdine" Réactiver les notifications - + one_one_infos_mute Sourdine - + group_infos_participants Participants (%1) - + group_infos_media_docs Medias & documents Medias & documents - + group_infos_shared_medias Shared medias Médias partagés - + group_infos_shared_docs Shared documents Documents partagés - + group_infos_other_actions Other actions Autres actions - + group_infos_ephemerals Messages éphémères : - + group_infos_enable_ephemerals Activer les messages éphémères - + group_infos_meeting Schedule a meeting Programmer une réunion - + group_infos_leave_room Leave chat room Quitter la conversation - + group_infos_leave_room_toast_title Leave Chat Room ? Quitter la conversation ? - + group_infos_leave_room_toast_message All the messages will be removed from the chat room. Do you want to continue ? Vous ne recevrez ni pourrez envoyer des messages dans cette conversation, quitter ? - + group_infos_delete_history Delete history Supprimer l'historique - + group_infos_delete_history_toast_title Delete history ? Supprimer l'historique ? - + group_infos_delete_history_toast_message All the messages will be removed from the chat room. Do you want to continue ? Tous les messages seront supprimés. Souhaitez-vous continuer ? - + one_one_infos_open_contact Show contact Voir le contact - + one_one_infos_create_contact Create contact Créer un contact - + one_one_infos_ephemerals Messages éphémères : - + one_one_infos_enable_ephemerals Activer les messages éphémères - + one_one_infos_delete_history Supprimer l'historique - + one_one_infos_delete_history_toast_title Delete history ? Supprimer l'historique ? - + one_one_infos_delete_history_toast_message All the messages will be removed from the chat room. Do you want to continue ? Tous les messages seront supprimés. Souhaitez-vous continuer ? @@ -4539,175 +4539,175 @@ Expiration : %1 MeetingPage - + meetings_add "Créer une réunion" Créer une réunion - + meetings_list_empty "Aucune réunion" Aucune réunion - + meeting_schedule_cancel_dialog_message "Souhaitez-vous annuler et supprimer cette réunion ?" Souhaitez-vous annuler et supprimer cette réunion ? - + meeting_schedule_delete_dialog_message Souhaitez-vous supprimer cette réunion ? Souhaitez-vous supprimer cette réunion ? - + meeting_schedule_cancel_and_delete_action "Annuler et supprimer" Annuler et supprimer - + meeting_schedule_delete_only_action "Supprimer seulement" Supprimer seulement - + meeting_schedule_delete_action "Supprimer" Supprimer - + back_action Retour Retour - + meetings_list_title Réunions Réunions - + meetings_search_hint "Rechercher une réunion" Rechercher une réunion - + list_filter_no_result_found "Aucun résultat…" Aucun résultat… - + meetings_empty_list "Aucune réunion" Aucune réunion - - + + meeting_schedule_title "Nouvelle réunion" Nouvelle réunion - + create Créer - - - - - - + + + + + + information_popup_error_title Erreur - - + + meeting_schedule_mandatory_field_not_filled_toast Veuillez saisir un titre et sélectionner au moins un participant Veuillez saisir un titre et sélectionner au moins un participant - - + + meeting_schedule_duration_error_toast "La fin de la conférence doit être plus récente que son début" La fin de la conférence doit être plus récente que son début - - + + meeting_schedule_creation_in_progress "Création de la réunion en cours …" Création de la réunion en cours… - + meeting_info_created_toast "Réunion planifiée avec succès" Réunion planifiée avec succès - + meeting_failed_to_schedule_toast "Échec de création de la réunion !" Échec de création de la réunion ! - + save Enregistrer - - + + saved "Enregistré" Enregistré - + meeting_info_updated_toast "Réunion mise à jour" Réunion mise à jour - + meeting_schedule_edit_in_progress "Modification de la réunion en cours…" Modification de la réunion en cours… - + meeting_failed_to_edit_toast "Échec de la modification de la réunion !" Échec de la modification de la réunion ! - + meeting_schedule_add_participants_title "Ajouter des participants" Ajouter des participants - + meeting_schedule_add_participants_apply Appliquer - + group_call_participant_selected "%n participant(s) sélectionné(s)" @@ -4716,31 +4716,31 @@ Expiration : %1 - + meeting_info_delete "Supprimer la réunion" Supprimer la réunion - + meeting_address_copied_to_clipboard_toast "Adresse de la réunion copiée" Adresse de la réunion copiée - + meeting_schedule_timezone_title "Fuseau horaire" Fuseau horaire - + meeting_info_organizer_label "Organisateur" Organisateur - + meeting_info_join_title "Rejoindre la réunion" Rejoindre la réunion @@ -5887,43 +5887,43 @@ Pour les activer dans un projet commercial, merci de nous contacter.L'adresse n'est pas interprétable comme une adresse SIP - + group_call_error_no_account Impossible de créer l'appel de groupe, le compte par défaut n'est pas défini - + group_call_error_participants_invite Impossible d'inviter les participants à l'appel de groupe - + group_call_error_creation L'appel de groupe n'a pas pu être créé - + voice_recording_duration "Voice recording (%1)" : %1 is the duration formated in mm:ss Message vocal (%1) - + unknown_audio_device_name Appareil inconnu - + conference_invitation Invitation à une réunion - + conference_invitation_cancelled Annulation d'une réunion - + conference_invitation_updated Modification d'une réunion diff --git a/Linphone/view/Control/Button/CalendarComboBox.qml b/Linphone/view/Control/Button/CalendarComboBox.qml index c4eba3189..f2d3a7d46 100644 --- a/Linphone/view/Control/Button/CalendarComboBox.qml +++ b/Linphone/view/Control/Button/CalendarComboBox.qml @@ -14,7 +14,7 @@ ComboBox { property alias contentText: contentText contentItem: Text { id: contentText - text: UtilsCpp.formatDate(calendar.selectedDate, false, true, "ddd d, MMMM") + text: calendar.selectedDate ? UtilsCpp.formatDate(calendar.selectedDate, false, true, "ddd d, MMMM") : "" anchors.fill: parent anchors.leftMargin: Utils.getSizeWithScreenRatio(15) anchors.verticalCenter: parent.verticalCenter diff --git a/Linphone/view/Page/Main/AbstractMainPage.qml b/Linphone/view/Page/Main/AbstractMainPage.qml index 282184a84..df78de0fa 100644 --- a/Linphone/view/Page/Main/AbstractMainPage.qml +++ b/Linphone/view/Page/Main/AbstractMainPage.qml @@ -21,6 +21,8 @@ FocusScope { property alias leftPanelContent: leftPanel.children property alias rightPanelStackView: rightPanelStackView property alias rightPanel: rightPanel + property int rightPanelStackTopMargin: 0 + property int rightPanelStackBottomMargin: 0 signal noItemButtonPressed() // Control.SplitView { @@ -193,6 +195,8 @@ FocusScope { id: rightPanelStackView Layout.fillWidth: true Layout.fillHeight: true + Layout.topMargin: mainItem.rightPanelStackTopMargin + Layout.bottomMargin: mainItem.rightPanelStackBottomMargin visible: false } } diff --git a/Linphone/view/Page/Main/Meeting/MeetingPage.qml b/Linphone/view/Page/Main/Meeting/MeetingPage.qml index e845d46cc..99a87e598 100644 --- a/Linphone/view/Page/Main/Meeting/MeetingPage.qml +++ b/Linphone/view/Page/Main/Meeting/MeetingPage.qml @@ -10,7 +10,6 @@ import "qrc:/qt/qml/Linphone/view/Control/Tool/Helper/utils.js" as Utils // TODO : spacing AbstractMainPage { id: mainItem - property ConferenceInfoGui selectedConference property int meetingListCount: 0 signal returnRequested() @@ -23,6 +22,9 @@ AbstractMainPage { rightPanelColor: selectedConference ? DefaultStyle.grey_0 : DefaultStyle.grey_100 showDefaultItem: leftPanelStackView.currentItem && leftPanelStackView.currentItem.objectName === "listLayout" && meetingListCount === 0 + rightPanelStackView.width: Utils.getSizeWithScreenRatio(393) + rightPanelStackTopMargin: Utils.getSizeWithScreenRatio(45) + rightPanelStackBottomMargin: Utils.getSizeWithScreenRatio(30) function createPreFilledMeeting(subject, addresses) { mainItem.selectedConference = Qt.createQmlObject('import Linphone @@ -47,7 +49,7 @@ AbstractMainPage { item.forceActiveFocus() } else { mainItem.selectedConference = confInfoGui - item = overridenRightPanelStackView.push(editConf, {"conferenceInfoGui": mainItem.selectedConference}) + item = rightPanelStackView.push(editConf, {"conferenceInfoGui": mainItem.selectedConference}) item.forceActiveFocus() } } @@ -60,25 +62,14 @@ AbstractMainPage { onSelectedConferenceChanged: { // While a conference is being edited, we need to stay on the edit page - if (overridenRightPanelStackView.currentItem && (overridenRightPanelStackView.currentItem.objectName === "editConf" || overridenRightPanelStackView.currentItem.objectName === "createConf")) return - overridenRightPanelStackView.clear() + if (rightPanelStackView.currentItem && (rightPanelStackView.currentItem.objectName === "editConf")) return + rightPanelStackView.clear() if (selectedConference && selectedConference.core && selectedConference.core.haveModel) { - if (!overridenRightPanelStackView.currentItem || overridenRightPanelStackView.currentItem != meetingDetail) overridenRightPanelStackView.replace(meetingDetail, Control.StackView.Immediate) + rightPanelStackView.push(meetingDetail, Control.StackView.Immediate) } } onNoItemButtonPressed: editConference() - - Component.onCompleted: rightPanelStackView.push(overridenRightPanel, Control.StackView.Immediate) - - leftPanelContent: Control.StackView { - id: leftPanelStackView - Layout.fillWidth: true - Layout.fillHeight: true - Layout.leftMargin: Utils.getSizeWithScreenRatio(45) - initialItem: listLayout - clip: true - } Dialog { id: cancelAndDeleteConfDialog @@ -132,34 +123,13 @@ AbstractMainPage { ] } - Control.ScrollView { - id: overridenRightPanel - width: Utils.getSizeWithScreenRatio(393 + 10) - anchors.top: parent.top - anchors.bottom: parent.bottom - anchors.topMargin: Utils.getSizeWithScreenRatio(58) - anchors.bottomMargin: Utils.getSizeWithScreenRatio(30) - height: parent.height - anchors.topMargin - anchors.horizontalCenter: parent.horizontalCenter - contentWidth: width + leftPanelContent: Control.StackView { + id: leftPanelStackView + Layout.fillWidth: true + Layout.fillHeight: true + Layout.leftMargin: Utils.getSizeWithScreenRatio(45) + initialItem: listLayout clip: true - Control.ScrollBar.vertical: ScrollBar { - visible: overridenRightPanel.contentHeight > overridenRightPanel.height - anchors.top: parent.top - anchors.bottom: parent.bottom - anchors.right: parent.right - } - ColumnLayout { - anchors.fill: parent - anchors.rightMargin: Utils.getSizeWithScreenRatio(10) - width: Utils.getSizeWithScreenRatio(393) - Control.StackView { - id: overridenRightPanelStackView - Layout.fillWidth: true - Layout.fillHeight: true - Layout.preferredHeight: currentItem ? currentItem.childrenRect.height : 0 - } - } } Component { @@ -172,34 +142,34 @@ AbstractMainPage { Control.StackView.onActivated: { mainItem.selectedConference = conferenceList.selectedConference } - enabled: !overridenRightPanelStackView.currentItem || overridenRightPanelStackView.currentItem.objectName !== "editConf" - + enabled: !rightPanelStackView.currentItem || rightPanelStackView.currentItem.objectName !== "editConf" + ColumnLayout { anchors.fill: parent spacing: 0 FlexboxLayout { - direction: FlexboxLayout.Row - gap: Utils.getSizeWithScreenRatio(16) - alignItems: FlexboxLayout.AlignCenter - Layout.rightMargin: Utils.getSizeWithScreenRatio(39) + direction: FlexboxLayout.Row + gap: Utils.getSizeWithScreenRatio(16) + alignItems: FlexboxLayout.AlignCenter + Layout.rightMargin: Utils.getSizeWithScreenRatio(39) Layout.alignment: Qt.AlignTop - Layout.fillHeight: false + Layout.fillHeight: false Text { Layout.fillWidth: true - //: Réunions - text: qsTr("meetings_list_title") + //: Réunions + text: qsTr("meetings_list_title") color: DefaultStyle.main2_700 - font.pixelSize: Typography.h2.pixelSize - font.weight: Typography.h2.weight + font.pixelSize: Typography.h2.pixelSize + font.weight: Typography.h2.weight } Button { id: newConfButton style: ButtonStyle.noBackground icon.source: AppIcons.plusCircle - Layout.preferredWidth: Utils.getSizeWithScreenRatio(28) - Layout.preferredHeight: Utils.getSizeWithScreenRatio(28) - icon.width: Utils.getSizeWithScreenRatio(28) - icon.height: Utils.getSizeWithScreenRatio(28) + Layout.preferredWidth: Utils.getSizeWithScreenRatio(28) + Layout.preferredHeight: Utils.getSizeWithScreenRatio(28) + icon.width: Utils.getSizeWithScreenRatio(28) + icon.height: Utils.getSizeWithScreenRatio(28) KeyNavigation.down: scrollToCurrentDateButton onClicked: { mainItem.editConference() @@ -238,27 +208,27 @@ AbstractMainPage { } Text { visible: conferenceList.count === 0 && !conferenceList.loading - Layout.topMargin: Utils.getSizeWithScreenRatio(137) + Layout.topMargin: Utils.getSizeWithScreenRatio(137) Layout.fillHeight: true Layout.alignment: Qt.AlignHCenter - //: "Aucun résultat…" - text: searchBar.text.length !== 0 ? qsTr("list_filter_no_result_found") - //: "Aucune réunion" - : qsTr("meetings_empty_list") + //: "Aucun résultat…" + text: searchBar.text.length !== 0 ? qsTr("list_filter_no_result_found") + //: "Aucune réunion" + : qsTr("meetings_empty_list") font { - pixelSize: Typography.h4.pixelSize - weight: Typography.h4.weight + pixelSize: Typography.h4.pixelSize + weight: Typography.h4.weight } } MeetingListView { id: conferenceList // Remove 24 from first section padding because we cannot know that it is the first section. 24 is the margins between sections. - Layout.topMargin: Utils.getSizeWithScreenRatio(38 - 24) + Layout.topMargin: Utils.getSizeWithScreenRatio(38 - 24) Layout.fillWidth: true Layout.fillHeight: true - + searchBarText: searchBar.text - + onCountChanged: { mainItem.meetingListCount = count } @@ -276,13 +246,13 @@ AbstractMainPage { cancelAndDeleteConfDialog.cancel = canCancel cancelAndDeleteConfDialog.open() } - + Keys.onPressed: (event) => { if(event.key == Qt.Key_Escape){ searchBar.forceActiveFocus() event.accepted = true }else if(event.key == Qt.Key_Right){ - overridenRightPanelStackView.currentItem.forceActiveFocus() + rightPanelStackView.currentItem.forceActiveFocus() event.accepted = true } } @@ -298,18 +268,18 @@ AbstractMainPage { objectName: "createConf" property ConferenceInfoGui conferenceInfoGui ColumnLayout { - spacing: Utils.getSizeWithScreenRatio(33) + spacing: Utils.getSizeWithScreenRatio(33) anchors.fill: parent RowLayout { - spacing: Utils.getSizeWithScreenRatio(5) + spacing: Utils.getSizeWithScreenRatio(5) Layout.rightMargin: Utils.getSizeWithScreenRatio(35) Button { id: backButton style: ButtonStyle.noBackground icon.source: AppIcons.leftArrow focus: true - icon.width: Utils.getSizeWithScreenRatio(24) - icon.height: Utils.getSizeWithScreenRatio(24) + icon.width: Utils.getSizeWithScreenRatio(24) + icon.height: Utils.getSizeWithScreenRatio(24) KeyNavigation.right: createButton KeyNavigation.down: meetingSetup onClicked: { @@ -318,38 +288,38 @@ AbstractMainPage { } } Text { - //: "Nouvelle réunion" - text: qsTr("meeting_schedule_title") + //: "Nouvelle réunion" + text: qsTr("meeting_schedule_title") color: DefaultStyle.main2_700 font { - pixelSize: Typography.h3.pixelSize - weight: Typography.h3.weight + pixelSize: Typography.h3.pixelSize + weight: Typography.h3.weight } Layout.fillWidth: true } Item {Layout.fillWidth: true} SmallButton { id: createButton - text: qsTr("create") + text: qsTr("create") style: ButtonStyle.main KeyNavigation.left: backButton KeyNavigation.down: meetingSetup - + onClicked: { - if (meetingSetup.conferenceInfoGui.core.subject.length === 0 || meetingSetup.conferenceInfoGui.core.participantCount === 0) { - UtilsCpp.showInformationPopup(qsTr("information_popup_error_title"), - //: Veuillez saisir un titre et sélectionner au moins un participant - qsTr("meeting_schedule_mandatory_field_not_filled_toast"), false) + if (meetingSetup.conferenceInfoGui.core.subject.length === 0 || meetingSetup.conferenceInfoGui.core.participantCount === 0) { + UtilsCpp.showInformationPopup(qsTr("information_popup_error_title"), + //: Veuillez saisir un titre et sélectionner au moins un participant + qsTr("meeting_schedule_mandatory_field_not_filled_toast"), false) } else if (meetingSetup.conferenceInfoGui.core.duration <= 0) { - UtilsCpp.showInformationPopup(qsTr("information_popup_error_title"), - //: "La fin de la conférence doit être plus récente que son début" - qsTr("meeting_schedule_duration_error_toast"), false) - } else { + UtilsCpp.showInformationPopup(qsTr("information_popup_error_title"), + //: "La fin de la conférence doit être plus récente que son début" + qsTr("meeting_schedule_duration_error_toast"), false) + } else { meetingSetup.conferenceInfoGui.core.save() - //: "Création de la réunion en cours …" - mainWindow.showLoadingPopup(qsTr("meeting_schedule_creation_in_progress"), true, function () { - meetingSetup.conferenceInfoGui.core.cancelCreation() - }) + //: "Création de la réunion en cours …" + mainWindow.showLoadingPopup(qsTr("meeting_schedule_creation_in_progress"), true, function () { + meetingSetup.conferenceInfoGui.core.cancelCreation() + }) } } } @@ -406,7 +376,7 @@ AbstractMainPage { } } onAddParticipantsRequested: { - leftPanelStackView.push(addParticipants, {"conferenceInfoGui": conferenceInfoGui, "container": leftPanelStackView}) + leftPanelStackView.push(addParticipants, {"conferenceInfoGui": conferenceInfoGui, "container": leftPanelStackView, "overridenWidth": leftPanelStackView.width}) } Connections { target: mainItem @@ -427,24 +397,26 @@ AbstractMainPage { id: editFocusScope objectName: "editConf" property ConferenceInfoGui conferenceInfoGui - width: overridenRightPanelStackView.width + anchors.horizontalCenter: parent?.horizontalCenter + width: Utils.getSizeWithScreenRatio(393) ColumnLayout { id: editLayout - anchors.left: parent.left - anchors.right: parent.right anchors.top: parent.top + width: Utils.getSizeWithScreenRatio(393) height: childrenRect.height + anchors.horizontalCenter: parent?.horizontalCenter spacing: 0 Section { - Layout.fillWidth: true + Layout.alignment: Qt.AlignHCenter + Layout.fillWidth: true content: RowLayout { - spacing: Utils.getSizeWithScreenRatio(16) - Layout.preferredWidth: overridenRightPanelStackView.width + spacing: Utils.getSizeWithScreenRatio(16) + // Layout.preferredWidth: rightPanelStackView.width Button { id: backButton icon.source: AppIcons.leftArrow - icon.width: Utils.getSizeWithScreenRatio(24) - icon.height: Utils.getSizeWithScreenRatio(24) + icon.width: Utils.getSizeWithScreenRatio(24) + icon.height: Utils.getSizeWithScreenRatio(24) style: ButtonStyle.noBackground KeyNavigation.left: saveButton KeyNavigation.right: titleText @@ -452,16 +424,16 @@ AbstractMainPage { KeyNavigation.up: conferenceEdit onClicked: { conferenceEdit.conferenceInfoGui.core.undo() - overridenRightPanelStackView.pop() + rightPanelStackView.pop() } } RowLayout { - spacing: Utils.getSizeWithScreenRatio(8) + spacing: Utils.getSizeWithScreenRatio(8) EffectImage{ imageSource: AppIcons.usersThree colorizationColor: DefaultStyle.main2_600 - Layout.preferredWidth: Utils.getSizeWithScreenRatio(24) - Layout.preferredHeight: Utils.getSizeWithScreenRatio(24) + Layout.preferredWidth: Utils.getSizeWithScreenRatio(24) + Layout.preferredHeight: Utils.getSizeWithScreenRatio(24) } TextInput { id: titleText @@ -469,8 +441,8 @@ AbstractMainPage { color: DefaultStyle.main2_600 clip: true font { - pixelSize: Utils.getSizeWithScreenRatio(20) - weight: Typography.h4.weight + pixelSize: Utils.getSizeWithScreenRatio(20) + weight: Typography.h4.weight } KeyNavigation.left: backButton KeyNavigation.right: saveButton @@ -486,19 +458,19 @@ AbstractMainPage { id: saveButton style: ButtonStyle.main focus: true - text: qsTr("save") + text: qsTr("save") KeyNavigation.left: titleText KeyNavigation.right: backButton KeyNavigation.down: conferenceEdit KeyNavigation.up: conferenceEdit onClicked: { - if (mainItem.selectedConference.core.subject.length === 0 || mainItem.selectedConference.core.participantCount === 0) { - UtilsCpp.showInformationPopup(qsTr("information_popup_error_title"), - qsTr("meeting_schedule_mandatory_field_not_filled_toast"), false) + if (mainItem.selectedConference.core.subject.length === 0 || mainItem.selectedConference.core.participantCount === 0) { + UtilsCpp.showInformationPopup(qsTr("information_popup_error_title"), + qsTr("meeting_schedule_mandatory_field_not_filled_toast"), false) } else if (mainItem.selectedConference.core.duration <= 0) { - UtilsCpp.showInformationPopup(qsTr("information_popup_error_title"), - qsTr("meeting_schedule_duration_error_toast"), false) - } else { + UtilsCpp.showInformationPopup(qsTr("information_popup_error_title"), + qsTr("meeting_schedule_duration_error_toast"), false) + } else { mainItem.selectedConference.core.save() } } @@ -509,18 +481,18 @@ AbstractMainPage { MeetingForm { id: conferenceEdit isCreation: false - conferenceInfoGui: editFocusScope.conferenceInfoGui Layout.fillWidth: true - Layout.preferredHeight: childrenRect.height - + Layout.fillHeight: true + conferenceInfoGui: editFocusScope.conferenceInfoGui + onAddParticipantsRequested: { - overridenRightPanelStackView.push(addParticipants, {"conferenceInfoGui": conferenceInfoGui, "container": overridenRightPanelStackView}) + rightPanelStackView.push(addParticipants, {"conferenceInfoGui": conferenceInfoGui, "container": rightPanelStackView, "overridenWidth": Utils.getSizeWithScreenRatio(393)}) } Connections { target: mainItem function onAddParticipantsValidated(selectedParticipants) { conferenceEdit.conferenceInfoGui.core.resetParticipants(selectedParticipants) - overridenRightPanelStackView.pop() + rightPanelStackView.pop() } } Connections { @@ -532,21 +504,21 @@ AbstractMainPage { function onSchedulerStateChanged() { editFocusScope.enabled = conferenceInfoGui.core.schedulerState != LinphoneEnums.ConferenceSchedulerState.AllocationPending if (conferenceEdit.conferenceInfoGui.core.schedulerState == LinphoneEnums.ConferenceSchedulerState.Ready) { - overridenRightPanelStackView.pop() + rightPanelStackView.pop() UtilsCpp.getMainWindow().closeLoadingPopup() - //: "Enregistré" - UtilsCpp.showInformationPopup(qsTr("saved"), - //: "Réunion mise à jour" - qsTr("meeting_info_updated_toast"), true) + //: "Enregistré" + UtilsCpp.showInformationPopup(qsTr("saved"), + //: "Réunion mise à jour" + qsTr("meeting_info_updated_toast"), true) } else if (conferenceEdit.conferenceInfoGui.core.schedulerState == LinphoneEnums.ConferenceSchedulerState.AllocationPending || conferenceEdit.conferenceInfoGui.core.schedulerState == LinphoneEnums.ConferenceSchedulerState.Updating) { - //: "Modification de la réunion en cours…" - UtilsCpp.getMainWindow().showLoadingPopup(qsTr("meeting_schedule_edit_in_progress")) + //: "Modification de la réunion en cours…" + UtilsCpp.getMainWindow().showLoadingPopup(qsTr("meeting_schedule_edit_in_progress")) } else if (conferenceEdit.conferenceInfoGui.core.schedulerState == LinphoneEnums.ConferenceSchedulerState.Error) { - UtilsCpp.showInformationPopup(qsTr("information_popup_error_title"), - //: "Échec de la modification de la réunion !" - qsTr("meeting_failed_to_edit_toast"), false) + UtilsCpp.showInformationPopup(qsTr("information_popup_error_title"), + //: "Échec de la modification de la réunion !" + qsTr("meeting_failed_to_edit_toast"), false) UtilsCpp.getMainWindow().closeLoadingPopup() } } @@ -560,20 +532,24 @@ AbstractMainPage { id: addParticipants FocusScope{ id: addParticipantInItem + property int overridenWidth property Control.StackView container property ConferenceInfoGui conferenceInfoGui + anchors.horizontalCenter: parent?.horizontalCenter ColumnLayout { id: addParticipantsLayout spacing: Utils.getSizeWithScreenRatio(18) + width: parent.overridenWidth ? parent.overridenWidth : parent.width + anchors.horizontalCenter: parent?.horizontalCenter anchors.rightMargin: Utils.getSizeWithScreenRatio(8) - anchors.left: parent.left - anchors.right: parent.right anchors.top: parent.top anchors.bottom: parent.bottom ColumnLayout { id: title - Layout.fillWidth: true - Layout.preferredHeight: childrenRect.height + Layout.fillHeight: true + Layout.fillWidth: false + Layout.preferredWidth: addParticipantsLayout.width + Layout.alignment: Qt.AlignHCenter spacing: Utils.getSizeWithScreenRatio(4) RowLayout { id: addParticipantsButtons @@ -585,7 +561,7 @@ AbstractMainPage { icon.width: Utils.getSizeWithScreenRatio(24) icon.height: Utils.getSizeWithScreenRatio(24) KeyNavigation.right: addButton - KeyNavigation.down: addParticipantLayout + KeyNavigation.down: addParticipantsForm onClicked: container.pop() } Text { @@ -601,20 +577,20 @@ AbstractMainPage { } SmallButton { id: addButton - enabled: addParticipantLayout.selectedParticipantsCount.length != 0 + enabled: addParticipantsForm.selectedParticipantsCount.length != 0 focus: enabled style: ButtonStyle.main text: qsTr("meeting_schedule_add_participants_apply") KeyNavigation.left: addParticipantsBackButton - KeyNavigation.down: addParticipantLayout + KeyNavigation.down: addParticipantsForm onClicked: { - mainItem.addParticipantsValidated(addParticipantLayout.selectedParticipants) + mainItem.addParticipantsValidated(addParticipantsForm.selectedParticipants) } } } Text { //: "%n participant(s) sélectionné(s)" - text: qsTr("group_call_participant_selected", '', addParticipantLayout.selectedParticipantsCount).arg(addParticipantLayout.selectedParticipantsCount) + text: qsTr("group_call_participant_selected", '', addParticipantsForm.selectedParticipantsCount).arg(addParticipantsForm.selectedParticipantsCount) color: DefaultStyle.main2_500_main Layout.leftMargin: addParticipantsBackButton.width + addParticipantsButtons.spacing maximumLineCount: 1 @@ -626,10 +602,9 @@ AbstractMainPage { } } AddParticipantsForm { - id: addParticipantLayout + id: addParticipantsForm Layout.fillWidth: true Layout.fillHeight: true - height: addParticipantInItem.height - title.height conferenceInfoGui: addParticipantInItem.conferenceInfoGui participantscSrollBarRightMargin: 0 } @@ -640,34 +615,37 @@ AbstractMainPage { Component { id: meetingDetail FocusScope{ - width: overridenRightPanelStackView.width - height: meetingDetailsLayout.childrenRect.height - ColumnLayout { + width: Utils.getSizeWithScreenRatio(393) + anchors.horizontalCenter: parent?.horizontalCenter + FlexboxLayout { id: meetingDetailsLayout - anchors.left: parent.left - anchors.right: parent.right - anchors.top: parent.top - // anchors.fill: parent visible: mainItem.selectedConference - spacing: Utils.getSizeWithScreenRatio(16) + anchors.top: parent.top + anchors.bottom: parent.bottom + anchors.horizontalCenter: parent.horizontalCenter + anchors.bottomMargin: Utils.getSizeWithScreenRatio(30) + width: Utils.getSizeWithScreenRatio(393) + direction: FlexboxLayout.Column + alignContent: FlexboxLayout.AlignSpaceBetween + gap: Utils.getSizeWithScreenRatio(16) Section { visible: mainItem.selectedConference Layout.fillWidth: true content: RowLayout { - spacing: Utils.getSizeWithScreenRatio(8) + spacing: Utils.getSizeWithScreenRatio(8) EffectImage { imageSource: AppIcons.usersThree colorizationColor: DefaultStyle.main2_600 - Layout.preferredWidth: Utils.getSizeWithScreenRatio(24) - Layout.preferredHeight: Utils.getSizeWithScreenRatio(24) + Layout.preferredWidth: Utils.getSizeWithScreenRatio(24) + Layout.preferredHeight: Utils.getSizeWithScreenRatio(24) } Text { Layout.fillWidth: true text: mainItem.selectedConference && mainItem.selectedConference.core? mainItem.selectedConference.core.subject : "" maximumLineCount: 1 font { - pixelSize: Utils.getSizeWithScreenRatio(20) - weight: Typography.h4.weight + pixelSize: Utils.getSizeWithScreenRatio(20) + weight: Typography.h4.weight } } Item { @@ -688,22 +666,22 @@ AbstractMainPage { } PopupButton { id: deletePopup - Layout.preferredWidth: Utils.getSizeWithScreenRatio(24) - Layout.preferredHeight: Utils.getSizeWithScreenRatio(24) + Layout.preferredWidth: Utils.getSizeWithScreenRatio(24) + Layout.preferredHeight: Utils.getSizeWithScreenRatio(24) contentImageColor: DefaultStyle.main1_500_main KeyNavigation.left: editButton.visible ? editButton : leftPanelStackView.currentItem KeyNavigation.right: leftPanelStackView.currentItem KeyNavigation.up: joinButton KeyNavigation.down: shareNetworkButton - + popup.contentItem: IconLabelButton { style: ButtonStyle.hoveredBackgroundRed property var isMeObj: UtilsCpp.isMe(mainItem.selectedConference?.core?.organizerAddress) property bool canCancel: isMeObj && isMeObj.value && mainItem.selectedConference?.core?.state !== LinphoneEnums.ConferenceInfoState.Cancelled icon.source: AppIcons.trashCan - //: "Supprimer la réunion" - text: qsTr("meeting_info_delete") - + //: "Supprimer la réunion" + text: qsTr("meeting_info_delete") + onClicked: { if (mainItem.selectedConference) { cancelAndDeleteConfDialog.confInfoToDelete = mainItem.selectedConference @@ -717,15 +695,16 @@ AbstractMainPage { } } Section { + Layout.fillWidth: true content: ColumnLayout { - spacing: Utils.getSizeWithScreenRatio(15) + spacing: Utils.getSizeWithScreenRatio(15) width: parent.width RowLayout { - spacing: Utils.getSizeWithScreenRatio(8) + spacing: Utils.getSizeWithScreenRatio(8) Layout.fillWidth: true EffectImage { - Layout.preferredWidth: Utils.getSizeWithScreenRatio(24) - Layout.preferredHeight: Utils.getSizeWithScreenRatio(24) + Layout.preferredWidth: Utils.getSizeWithScreenRatio(24) + Layout.preferredHeight: Utils.getSizeWithScreenRatio(24) colorizationColor: DefaultStyle.main2_600 imageSource: AppIcons.videoCamera } @@ -762,47 +741,47 @@ AbstractMainPage { KeyNavigation.down: joinButton onClicked: { var success = UtilsCpp.copyToClipboard(mainItem.selectedConference.core.uri) - if (success) UtilsCpp.showInformationPopup(qsTr("saved"), - //: "Adresse de la réunion copiée" - qsTr("meeting_address_copied_to_clipboard_toast")) + if (success) UtilsCpp.showInformationPopup(qsTr("saved"), + //: "Adresse de la réunion copiée" + qsTr("meeting_address_copied_to_clipboard_toast")) } } } RowLayout { - spacing: Utils.getSizeWithScreenRatio(8) + spacing: Utils.getSizeWithScreenRatio(8) EffectImage { - Layout.preferredWidth: Utils.getSizeWithScreenRatio(24) - Layout.preferredHeight: Utils.getSizeWithScreenRatio(24) + Layout.preferredWidth: Utils.getSizeWithScreenRatio(24) + Layout.preferredHeight: Utils.getSizeWithScreenRatio(24) imageSource: AppIcons.clock colorizationColor: DefaultStyle.main2_600 } Text { text: mainItem.selectedConference && mainItem.selectedConference.core - ? UtilsCpp.toDateString(mainItem.selectedConference.core.dateTime) - + " | " + UtilsCpp.toDateHourString(mainItem.selectedConference.core.dateTime) - + " - " + ? UtilsCpp.toDateString(mainItem.selectedConference.core.dateTime) + + " | " + UtilsCpp.toDateHourString(mainItem.selectedConference.core.dateTime) + + " - " + UtilsCpp.toDateHourString(mainItem.selectedConference.core.endDateTime) : '' font { - pixelSize: Utils.getSizeWithScreenRatio(14) + pixelSize: Utils.getSizeWithScreenRatio(14) capitalization: Font.Capitalize } } } RowLayout { - spacing: Utils.getSizeWithScreenRatio(8) + spacing: Utils.getSizeWithScreenRatio(8) EffectImage { - Layout.preferredWidth: Utils.getSizeWithScreenRatio(24) - Layout.preferredHeight: Utils.getSizeWithScreenRatio(24) + Layout.preferredWidth: Utils.getSizeWithScreenRatio(24) + Layout.preferredHeight: Utils.getSizeWithScreenRatio(24) imageSource: AppIcons.globe colorizationColor: DefaultStyle.main2_600 } Text { Layout.fillWidth: true - //: "Fuseau horaire" - text: "%1: %2".arg(qsTr("meeting_schedule_timezone_title")).arg(mainItem.selectedConference && mainItem.selectedConference.core ? (mainItem.selectedConference.core.timeZoneModel.displayName + ", " + mainItem.selectedConference.core.timeZoneModel.countryName) : "") + //: "Fuseau horaire" + text: "%1: %2".arg(qsTr("meeting_schedule_timezone_title")).arg(mainItem.selectedConference && mainItem.selectedConference.core ? (mainItem.selectedConference.core.timeZoneModel.displayName + ", " + mainItem.selectedConference.core.timeZoneModel.countryName) : "") font { - pixelSize: Utils.getSizeWithScreenRatio(14) + pixelSize: Utils.getSizeWithScreenRatio(14) capitalization: Font.Capitalize } } @@ -810,12 +789,13 @@ AbstractMainPage { } } Section { + Layout.fillWidth: true visible: mainItem.selectedConference && mainItem.selectedConference.core?.description.length != 0 content: RowLayout { - spacing: Utils.getSizeWithScreenRatio(8) + spacing: Utils.getSizeWithScreenRatio(8) EffectImage { - Layout.preferredWidth: Utils.getSizeWithScreenRatio(24) - Layout.preferredHeight: Utils.getSizeWithScreenRatio(24) + Layout.preferredWidth: Utils.getSizeWithScreenRatio(24) + Layout.preferredHeight: Utils.getSizeWithScreenRatio(24) imageSource: AppIcons.note colorizationColor: DefaultStyle.main2_600 } @@ -823,30 +803,31 @@ AbstractMainPage { text: mainItem.selectedConference && mainItem.selectedConference.core ? mainItem.selectedConference.core.description : "" Layout.fillWidth: true font { - pixelSize: Utils.getSizeWithScreenRatio(14) + pixelSize: Utils.getSizeWithScreenRatio(14) } } } } Section { + Layout.fillWidth: true content: RowLayout { - spacing: Utils.getSizeWithScreenRatio(8) + spacing: Utils.getSizeWithScreenRatio(8) EffectImage { - Layout.preferredWidth: Utils.getSizeWithScreenRatio(24) - Layout.preferredHeight: Utils.getSizeWithScreenRatio(24) + Layout.preferredWidth: Utils.getSizeWithScreenRatio(24) + Layout.preferredHeight: Utils.getSizeWithScreenRatio(24) imageSource: AppIcons.userRectangle colorizationColor: DefaultStyle.main2_600 } Avatar { - Layout.preferredWidth: Utils.getSizeWithScreenRatio(45) - Layout.preferredHeight: Utils.getSizeWithScreenRatio(45) + Layout.preferredWidth: Utils.getSizeWithScreenRatio(45) + Layout.preferredHeight: Utils.getSizeWithScreenRatio(45) _address: mainItem.selectedConference && mainItem.selectedConference.core ? mainItem.selectedConference.core.organizerAddress : "" secured: friendSecurityLevel === LinphoneEnums.SecurityLevel.EndToEndEncryptedAndVerified } Text { text: mainItem.selectedConference && mainItem.selectedConference.core ? mainItem.selectedConference.core.organizerName : "" font { - pixelSize: Utils.getSizeWithScreenRatio(14) + pixelSize: Utils.getSizeWithScreenRatio(14) capitalization: Font.Capitalize } } @@ -854,22 +835,25 @@ AbstractMainPage { } Section { visible: participantList.count > 0 + Layout.fillWidth: true + Layout.fillHeight: true + Layout.maximumHeight: participantList.contentHeight + Utils.getSizeWithScreenRatio(1) + spacing content: RowLayout { - Layout.preferredHeight: participantList.contentHeight - width: Utils.getSizeWithScreenRatio(393) - spacing: Utils.getSizeWithScreenRatio(8) + width: Utils.getSizeWithScreenRatio(393) + spacing: Utils.getSizeWithScreenRatio(8) EffectImage { - Layout.preferredWidth: Utils.getSizeWithScreenRatio(24) - Layout.preferredHeight: Utils.getSizeWithScreenRatio(24) + Layout.preferredWidth: Utils.getSizeWithScreenRatio(24) + Layout.preferredHeight: Utils.getSizeWithScreenRatio(24) Layout.alignment: Qt.AlignLeft | Qt.AlignTop - Layout.topMargin: Utils.getSizeWithScreenRatio(20) + Layout.topMargin: Utils.getSizeWithScreenRatio(20) imageSource: AppIcons.usersTwo colorizationColor: DefaultStyle.main2_600 } ListView { id: participantList - Layout.preferredHeight: contentHeight + // Layout.preferredHeight: contentHeight Layout.fillWidth: true + Layout.fillHeight: true model: mainItem.selectedConference && mainItem.selectedConference.core ? mainItem.selectedConference.core.participants : [] clip: true Control.ScrollBar.vertical: ScrollBar { @@ -880,11 +864,11 @@ AbstractMainPage { visible: participantList.height < participantList.contentHeight } delegate: RowLayout { - height: Utils.getSizeWithScreenRatio(56) + height: Utils.getSizeWithScreenRatio(56) width: participantList.width - participantScrollBar.width - Utils.getSizeWithScreenRatio(5) Avatar { - Layout.preferredWidth: Utils.getSizeWithScreenRatio(45) - Layout.preferredHeight: Utils.getSizeWithScreenRatio(45) + Layout.preferredWidth: Utils.getSizeWithScreenRatio(45) + Layout.preferredHeight: Utils.getSizeWithScreenRatio(45) _address: modelData.address secured: friendSecurityLevel === LinphoneEnums.SecurityLevel.EndToEndEncryptedAndVerified shadowEnabled: false @@ -895,18 +879,18 @@ AbstractMainPage { maximumLineCount: 1 Layout.fillWidth: true font { - pixelSize: Utils.getSizeWithScreenRatio(14) + pixelSize: Utils.getSizeWithScreenRatio(14) capitalization: Font.Capitalize } } Text { - //: "Organisateur" - text: qsTr("meeting_info_organizer_label") + //: "Organisateur" + text: qsTr("meeting_info_organizer_label") visible: mainItem.selectedConference && mainItem.selectedConference.core?.organizerAddress === modelData.address color: DefaultStyle.main2_400 font { - pixelSize: Utils.getSizeWithScreenRatio(12) - weight: Utils.getSizeWithScreenRatio(300) + pixelSize: Utils.getSizeWithScreenRatio(12) + weight: Utils.getSizeWithScreenRatio(300) } } } @@ -917,10 +901,8 @@ AbstractMainPage { id: joinButton visible: mainItem.selectedConference && mainItem.selectedConference.core?.state !== LinphoneEnums.ConferenceInfoState.Cancelled Layout.fillWidth: true - Layout.preferredHeight: implicitHeight - Layout.bottomMargin: Utils.getSizeWithScreenRatio(5) - //: "Rejoindre la réunion" - text: qsTr("meeting_info_join_title") + //: "Rejoindre la réunion" + text: qsTr("meeting_info_join_title") focus: true KeyNavigation.up: shareNetworkButton KeyNavigation.down: deletePopup @@ -936,4 +918,5 @@ AbstractMainPage { } } } + }