1-1 Conversations Info, wired functions :

This commit is contained in:
Christophe Deschamps 2025-06-09 14:20:34 +00:00
parent 8e08eb0127
commit c56db0f429
16 changed files with 1116 additions and 225 deletions

View file

@ -0,0 +1,4 @@
<svg width="24" height="25" viewBox="0 0 24 25" fill="none" xmlns="http://www.w3.org/2000/svg">
<path d="M22 15.6333C22 15.8639 21.9084 16.0851 21.7453 16.2481C21.5822 16.4112 21.3611 16.5028 21.1304 16.5028H18.5217V18.242H20.2609C20.4915 18.242 20.7127 18.3336 20.8757 18.4966C21.0388 18.6597 21.1304 18.8809 21.1304 19.1115C21.1304 19.3421 21.0388 19.5633 20.8757 19.7264C20.7127 19.8895 20.4915 19.9811 20.2609 19.9811H18.5217V21.7202C18.5217 21.9508 18.4301 22.172 18.267 22.3351C18.104 22.4982 17.8828 22.5898 17.6522 22.5898C17.4216 22.5898 17.2004 22.4982 17.0373 22.3351C16.8742 22.172 16.7826 21.9508 16.7826 21.7202V15.6333C16.7826 15.4026 16.8742 15.1815 17.0373 15.0184C17.2004 14.8553 17.4216 14.7637 17.6522 14.7637H21.1304C21.3611 14.7637 21.5822 14.8553 21.7453 15.0184C21.9084 15.1815 22 15.4026 22 15.6333ZM7.65217 17.8072C7.65217 18.6144 7.33152 19.3885 6.76076 19.9592C6.19 20.53 5.41588 20.8507 4.6087 20.8507H3.73913V21.7202C3.73913 21.9508 3.64752 22.172 3.48444 22.3351C3.32137 22.4982 3.10019 22.5898 2.86957 22.5898C2.63894 22.5898 2.41777 22.4982 2.25469 22.3351C2.09161 22.172 2 21.9508 2 21.7202V15.6333C2 15.4026 2.09161 15.1815 2.25469 15.0184C2.41777 14.8553 2.63894 14.7637 2.86957 14.7637H4.6087C5.41588 14.7637 6.19 15.0843 6.76076 15.6551C7.33152 16.2259 7.65217 17 7.65217 17.8072ZM5.91304 17.8072C5.91304 17.4612 5.77562 17.1295 5.53101 16.8849C5.2864 16.6402 4.95463 16.5028 4.6087 16.5028H3.73913V19.1115H4.6087C4.95463 19.1115 5.2864 18.9741 5.53101 18.7295C5.77562 18.4849 5.91304 18.1531 5.91304 17.8072ZM15.4783 18.6767C15.4783 19.7145 15.066 20.7098 14.3322 21.4437C13.5983 22.1775 12.603 22.5898 11.5652 22.5898H9.82609C9.59546 22.5898 9.37429 22.4982 9.21121 22.3351C9.04814 22.172 8.95652 21.9508 8.95652 21.7202V15.6333C8.95652 15.4026 9.04814 15.1815 9.21121 15.0184C9.37429 14.8553 9.59546 14.7637 9.82609 14.7637H11.5652C12.603 14.7637 13.5983 15.176 14.3322 15.9098C15.066 16.6436 15.4783 17.6389 15.4783 18.6767ZM13.7391 18.6767C13.7391 18.1002 13.5101 17.5472 13.1024 17.1395C12.6947 16.7319 12.1418 16.5028 11.5652 16.5028H10.6957V20.8507H11.5652C12.1418 20.8507 12.6947 20.6216 13.1024 20.2139C13.5101 19.8062 13.7391 19.2533 13.7391 18.6767ZM2 11.2854V3.45935C2 2.9981 2.18323 2.55574 2.50938 2.22959C2.83553 1.90344 3.27788 1.72022 3.73913 1.72022H14.1739C14.2881 1.72013 14.4013 1.74254 14.5068 1.78618C14.6124 1.82983 14.7083 1.89384 14.7891 1.97456L20.8761 8.06152C20.9568 8.14233 21.0208 8.23826 21.0645 8.34382C21.1081 8.44939 21.1305 8.56251 21.1304 8.67674V11.2854C21.1304 11.5161 21.0388 11.7372 20.8757 11.9003C20.7127 12.0634 20.4915 12.155 20.2609 12.155C20.0302 12.155 19.8091 12.0634 19.646 11.9003C19.4829 11.7372 19.3913 11.5161 19.3913 11.2854V9.5463H14.1739C13.9433 9.5463 13.7221 9.45469 13.559 9.29161C13.396 9.12854 13.3043 8.90736 13.3043 8.67674V3.45935H3.73913V11.2854C3.73913 11.5161 3.64752 11.7372 3.48444 11.9003C3.32137 12.0634 3.10019 12.155 2.86957 12.155C2.63894 12.155 2.41777 12.0634 2.25469 11.9003C2.09161 11.7372 2 11.5161 2 11.2854ZM15.0435 7.80717H18.162L15.0435 4.68869V7.80717Z" fill="#4E6074"/>
</svg>

After

Width:  |  Height:  |  Size: 3 KiB

View file

@ -0,0 +1,4 @@
<svg width="24" height="25" viewBox="0 0 24 25" fill="none" xmlns="http://www.w3.org/2000/svg">
<path d="M20.25 3.87012H3.75C3.35218 3.87012 2.97064 4.02815 2.68934 4.30946C2.40804 4.59076 2.25 4.97229 2.25 5.37012V18.8701C2.25 19.2679 2.40804 19.6495 2.68934 19.9308C2.97064 20.2121 3.35218 20.3701 3.75 20.3701H20.25C20.6478 20.3701 21.0294 20.2121 21.3107 19.9308C21.592 19.6495 21.75 19.2679 21.75 18.8701V5.37012C21.75 4.97229 21.592 4.59076 21.3107 4.30946C21.0294 4.02815 20.6478 3.87012 20.25 3.87012ZM20.25 5.37012V15.0029L17.8059 12.5598C17.6666 12.4205 17.5013 12.31 17.3193 12.2346C17.1372 12.1592 16.9422 12.1203 16.7452 12.1203C16.5481 12.1203 16.3531 12.1592 16.1711 12.2346C15.989 12.31 15.8237 12.4205 15.6844 12.5598L13.8094 14.4348L9.68438 10.3098C9.4031 10.0287 9.02172 9.87081 8.62406 9.87081C8.22641 9.87081 7.84503 10.0287 7.56375 10.3098L3.75 14.1236V5.37012H20.25ZM3.75 16.2451L8.625 11.3701L16.125 18.8701H3.75V16.2451ZM20.25 18.8701H18.2466L14.8716 15.4951L16.7466 13.6201L20.25 17.1245V18.8701ZM13.5 9.49512C13.5 9.27261 13.566 9.05511 13.6896 8.8701C13.8132 8.6851 13.9889 8.5409 14.1945 8.45575C14.4 8.3706 14.6262 8.34833 14.8445 8.39173C15.0627 8.43514 15.2632 8.54229 15.4205 8.69962C15.5778 8.85696 15.685 9.05741 15.7284 9.27564C15.7718 9.49387 15.7495 9.72007 15.6644 9.92564C15.5792 10.1312 15.435 10.3069 15.25 10.4305C15.065 10.5541 14.8475 10.6201 14.625 10.6201C14.3266 10.6201 14.0405 10.5016 13.8295 10.2906C13.6185 10.0796 13.5 9.79349 13.5 9.49512Z" fill="#4E6074"/>
</svg>

After

Width:  |  Height:  |  Size: 1.5 KiB

View file

@ -0,0 +1,4 @@
<svg width="25" height="25" viewBox="0 0 25 25" fill="none" xmlns="http://www.w3.org/2000/svg">
<path d="M22.2748 20.8076L17.4656 15.9994C18.8595 14.3259 19.5546 12.1795 19.4062 10.0066C19.2579 7.83371 18.2775 5.80166 16.6691 4.33317C15.0607 2.86469 12.948 2.07282 10.7707 2.1223C8.59327 2.17179 6.51878 3.05881 4.97874 4.59886C3.4387 6.1389 2.55167 8.21339 2.50219 10.3908C2.4527 12.5682 3.24457 14.6808 4.71306 16.2892C6.18155 17.8976 8.2136 18.878 10.3865 19.0263C12.5594 19.1747 14.7058 18.4796 16.3793 17.0857L21.1875 21.8949C21.2589 21.9663 21.3437 22.023 21.437 22.0616C21.5302 22.1002 21.6302 22.1201 21.7312 22.1201C21.8321 22.1201 21.9321 22.1002 22.0254 22.0616C22.1187 22.023 22.2034 21.9663 22.2748 21.8949C22.3462 21.8235 22.4028 21.7388 22.4415 21.6455C22.4801 21.5522 22.5 21.4523 22.5 21.3513C22.5 21.2503 22.4801 21.1504 22.4415 21.0571C22.4028 20.9638 22.3462 20.879 22.2748 20.8076ZM4.05803 10.5937C4.05803 9.22595 4.46362 7.88889 5.22351 6.75163C5.9834 5.61437 7.06347 4.72798 8.32713 4.20456C9.59078 3.68114 10.9813 3.54418 12.3228 3.81102C13.6643 4.07786 14.8965 4.73651 15.8637 5.70367C16.8308 6.67083 17.4895 7.90307 17.7563 9.24456C18.0231 10.5861 17.8862 11.9765 17.3628 13.2402C16.8393 14.5039 15.953 15.5839 14.8157 16.3438C13.6784 17.1037 12.3414 17.5093 10.9736 17.5093C9.1401 17.5073 7.38228 16.778 6.0858 15.4815C4.78932 14.185 4.06006 12.4272 4.05803 10.5937Z" fill="#6C7A87"/>
</svg>

After

Width:  |  Height:  |  Size: 1.4 KiB

View file

@ -4501,45 +4501,9 @@ Pour les activer dans un projet commercial, merci de nous contacter.</source>
<context>
<name>SelectedChatView</name>
<message>
<location filename="../../view/Page/Form/Chat/SelectedChatView.qml" line="264"/>
<source>chat_view_detail_other_actions_title</source>
<extracomment>Other actions</extracomment>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../../view/Page/Form/Chat/SelectedChatView.qml" line="282"/>
<source>chat_view_detail_leave_room_toast_button</source>
<extracomment>&quot;Leave Chat Room&quot;</extracomment>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../../view/Page/Form/Chat/SelectedChatView.qml" line="286"/>
<source>chat_view_detail_leave_room_toast_title</source>
<extracomment>Leave Chat Room ?</extracomment>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../../view/Page/Form/Chat/SelectedChatView.qml" line="288"/>
<source>chat_view_detail_leave_room_toast_message</source>
<extracomment>All the messages will be removed from the chat room. Do you want to continue ?</extracomment>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../../view/Page/Form/Chat/SelectedChatView.qml" line="303"/>
<source>chat_view_detail_delete_history_button</source>
<extracomment>&quot;Delete history&quot;</extracomment>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../../view/Page/Form/Chat/SelectedChatView.qml" line="306"/>
<source>chat_view_detail_delete_history_toast_title</source>
<extracomment>Delete history ?</extracomment>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../../view/Page/Form/Chat/SelectedChatView.qml" line="308"/>
<source>chat_view_detail_delete_history_toast_message</source>
<extracomment>All the messages will be removed from the chat room. Do you want to continue ?</extracomment>
<location filename="../../view/Page/Form/Chat/SelectedChatView.qml" line="229"/>
<source>chat_view_send_area_placeholder_text</source>
<extracomment>Say something : placeholder text for sending message text area</extracomment>
<translation type="unfinished"></translation>
</message>
</context>
@ -6191,4 +6155,151 @@ Failed to create 1-1 conversation with %1 !</extracomment>
<translation>Ok</translation>
</message>
</context>
<context>
<name>OneOneConversationInfos</name>
<message>
<source>one_one_infos_call</source>
<extracomment>Call</extracomment>
<translation>Anrufen</translation>
</message>
<message>
<source>one_one_infos_mute</source>
<extracomment>Mute</extracomment>
<translation>Stummschalten</translation>
</message>
<message>
<source>one_one_infos_search</source>
<extracomment>Search</extracomment>
<translation>Suchen</translation>
</message>
<message>
<source>one_one_infos_media_docs</source>
<extracomment>Medias &amp; documents</extracomment>
<translation>Medien &amp; Dokumente</translation>
</message>
<message>
<source>one_one_infos_shared_media</source>
<extracomment>Shared medias</extracomment>
<translation>Geteilte Medien</translation>
</message>
<message>
<source>one_one_infos_shared_docs</source>
<extracomment>Shared documents</extracomment>
<translation>Geteilte Dokumente</translation>
</message>
<message>
<source>one_one_infos_other_actions</source>
<extracomment>Other actions</extracomment>
<translation>Weitere Aktionen</translation>
</message>
<message>
<source>one_one_infos_enable_ephemerals</source>
<extracomment>Enable ephemeral messages</extracomment>
<translation>Flüchtige Nachrichten aktivieren</translation>
</message>
<message>
<source>one_one_infos_disable_ephemerals</source>
<extracomment>Disable ephemeral messages</extracomment>
<translation>Flüchtige Nachrichten deaktivieren</translation>
</message>
<message>
<source>one_one_infos_delete_history</source>
<extracomment>Delete history</extracomment>
<translation>Verlauf löschen</translation>
</message>
<message>
<source>one_one_infos_delete_history_toast_title</source>
<extracomment>Delete history ?</extracomment>
<translation>Verlauf löschen?</translation>
</message>
<message>
<source>one_one_infos_delete_history_toast_message</source>
<extracomment>All the messages will be removed from the chat room. Do you want to continue ?</extracomment>
<translation>Alle Nachrichten werden aus dem Chat entfernt. Möchten Sie fortfahren?</translation>
</message>
<message>
<source>one_one_infos_open_contact</source>
<extracomment>Open contact</extracomment>
<translation>Kontakt öffnen</translation>
</message>
<message>
<source>one_one_infos_create_contact</source>
<extracomment>Create contact</extracomment>
<translation>Kontakt erstellen</translation>
</message>
</context>
<context>
<name>GroupConversationInfos</name>
<message>
<source>group_infos_call</source>
<extracomment>Call</extracomment>
<translation>Anrufen</translation>
</message>
<message>
<source>group_infos_mute</source>
<extracomment>Mute</extracomment>
<translation>Stummschalten</translation>
</message>
<message>
<source>group_infos_meeting</source>
<extracomment>Meeting</extracomment>
<translation>Meeting</translation>
</message>
<message>
<source>group_infos_media_docs</source>
<extracomment>Medias &amp; documents</extracomment>
<translation>Medien &amp; Dokumente</translation>
</message>
<message>
<source>group_infos_shared_media</source>
<extracomment>Shared medias</extracomment>
<translation>Geteilte Medien</translation>
</message>
<message>
<source>group_infos_shared_docs</source>
<extracomment>Shared documents</extracomment>
<translation>Geteilte Dokumente</translation>
</message>
<message>
<source>group_infos_other_actions</source>
<extracomment>Other actions</extracomment>
<translation>Weitere Aktionen</translation>
</message>
<message>
<source>group_infos_enable_ephemerals</source>
<extracomment>Enable ephemeral messages</extracomment>
<translation>Flüchtige Nachrichten aktivieren</translation>
</message>
<message>
<source>group_infos_disable_ephemerals</source>
<extracomment>Disable ephemeral messages</extracomment>
<translation>Flüchtige Nachrichten deaktivieren</translation>
</message>
<message>
<source>group_infos_delete_history</source>
<extracomment>Delete history</extracomment>
<translation>Verlauf löschen</translation>
</message>
<message>
<source>group_infos_delete_history_toast_title</source>
<extracomment>Delete history ?</extracomment>
<translation>Verlauf löschen?</translation>
</message>
<message>
<source>group_infos_delete_history_toast_message</source>
<extracomment>All the messages will be removed from the chat room. Do you want to continue ?</extracomment>
<translation>Alle Nachrichten werden aus dem Chat entfernt. Möchten Sie fortfahren?</translation>
</message>
<message>
<source>group_infos_leave_room_toast_title</source>
<extracomment>Leave Chat Room ?</extracomment>
<translation>Chatraum verlassen?</translation>
</message>
<message>
<source>group_infos_leave_room_toast_message</source>
<extracomment>All the messages will be removed from the chat room. Do you want to continue ?</extracomment>
<translation>Alle Nachrichten werden aus dem Chat entfernt. Möchten Sie fortfahren?</translation>
</message>
</context>
</TS>

View file

@ -4402,46 +4402,20 @@ To enable them in a commercial project, please contact us.</translation>
<context>
<name>SelectedChatView</name>
<message>
<location filename="../../view/Page/Form/Chat/SelectedChatView.qml" line="264"/>
<source>chat_view_detail_other_actions_title</source>
<source>Dites quelque chose</source>
<extracomment>Say something : placeholder text for sending message text area</extracomment>
<translation type="obsolete">Say something</translation>
</message>
<message>
<source>Autres actions</source>
<extracomment>Other actions</extracomment>
<translation>Other actions</translation>
<translation type="obsolete">Other actions</translation>
</message>
<message>
<location filename="../../view/Page/Form/Chat/SelectedChatView.qml" line="303"/>
<source>chat_view_detail_delete_history_button</source>
<extracomment>&quot;Delete history&quot;</extracomment>
<translation>Delete history</translation>
</message>
<message>
<location filename="../../view/Page/Form/Chat/SelectedChatView.qml" line="306"/>
<source>chat_view_detail_delete_history_toast_title</source>
<extracomment>Delete history ?</extracomment>
<translation>Delete history ?</translation>
</message>
<message>
<location filename="../../view/Page/Form/Chat/SelectedChatView.qml" line="308"/>
<source>chat_view_detail_delete_history_toast_message</source>
<extracomment>All the messages will be removed from the chat room. Do you want to continue ?</extracomment>
<translation>All the messages will be removed from the chat room. Do you want to continue ?</translation>
</message>
<message>
<location filename="../../view/Page/Form/Chat/SelectedChatView.qml" line="282"/>
<source>chat_view_detail_leave_room_toast_button</source>
<extracomment>&quot;Leave Chat Room&quot;</extracomment>
<translation>Leave chat room</translation>
</message>
<message>
<location filename="../../view/Page/Form/Chat/SelectedChatView.qml" line="286"/>
<source>chat_view_detail_leave_room_toast_title</source>
<extracomment>Leave Chat Room ?</extracomment>
<translation>Leave chat room ?</translation>
</message>
<message>
<location filename="../../view/Page/Form/Chat/SelectedChatView.qml" line="288"/>
<source>chat_view_detail_leave_room_toast_message</source>
<extracomment>All the messages will be removed from the chat room. Do you want to continue ?</extracomment>
<translation>You will not be able to send or receive messages in this room anymore, leave ?</translation>
<location filename="../../view/Page/Form/Chat/SelectedChatView.qml" line="229"/>
<source>chat_view_send_area_placeholder_text</source>
<extracomment>Say something : placeholder text for sending message text area</extracomment>
<translation>Say something</translation>
</message>
</context>
<context>
@ -6092,4 +6066,248 @@ Failed to create 1-1 conversation with %1 !</extracomment>
<translation>Ok</translation>
</message>
</context>
<context>
<name>EventLogCore</name>
<message>
<source>conference_created_event</source>
<extracomment>'You have joined the group' : Little message to show on the event when the user join the chat group.</extracomment>
<translation>You have joined the group</translation>
</message>
<message>
<source>conference_created_terminated</source>
<extracomment>'You have left the group' : Little message to show on the event when the user leave the chat group.</extracomment>
<translation>You have left the group</translation>
</message>
<message>
<source>conference_participant_added_event</source>
<extracomment>'%1 has joined' : Little message to show on the event when someone join the chat group.</extracomment>
<translation>%1 has joined</translation>
</message>
<message>
<source>conference_participant_removed_event</source>
<extracomment>'%1 has left' : Little message to show on the event when someone leave the chat group</extracomment>
<translation>%1 has left</translation>
</message>
<message>
<source>conference_participant_set_admin_event</source>
<extracomment>'%1 is now an admin' : Little message to show on the event when someone get the admin status. %1 is somebody</extracomment>
<translation>%1 is now an admin</translation>
</message>
<message>
<source>conference_participant_unset_admin_event</source>
<extracomment>'%1 is no longer an admin' : Little message to show on the event when somebody lost its admin status. %1 is somebody</extracomment>
<translation>%1 is no longer an admin</translation>
</message>
<message>
<source>conference_security_event</source>
<extracomment>'Security level degraded by %1': Little message to show on the event when a security level has been lost.</extracomment>
<translation>Security level degraded by %1</translation>
</message>
<message>
<source>conference_ephemeral_message_enabled_event</source>
<extracomment>'Ephemeral messages have been enabled: %1' : Little message to show on the event when ephemeral has been activated. %1 is a date time</extracomment>
<translation>Ephemeral messages have been enabled: %1</translation>
</message>
<message>
<source>conference_ephemeral_message_disabled_event</source>
<extracomment>'Ephemeral messages have been disabled': Little message to show on the event when ephemeral has been deactivated.</extracomment>
<translation>Ephemeral messages have been disabled</translation>
</message>
<message>
<source>conference_subject_changed_event</source>
<extracomment>'New subject : %1' : Little message to show on the event when the subject of the chat room has been changed. %1 is the new subject.</extracomment>
<translation>New subject: %1</translation>
</message>
<message>
<source>conference_ephemeral_message_lifetime_changed_event</source>
<extracomment>'Ephemeral messages have been updated: %1' : Little message to show on the event when ephemeral has been updated. %1 is a date time</extracomment>
<translation>Ephemeral messages have been updated: %1</translation>
</message>
<message numerus="yes">
<source>nSeconds</source>
<translation>
<numerusform>%1 second</numerusform>
<numerusform>%1 seconds</numerusform>
</translation>
</message>
<message numerus="yes">
<source>nMinute</source>
<translation>
<numerusform>%1 minute</numerusform>
<numerusform>%1 minutes</numerusform>
</translation>
</message>
<message numerus="yes">
<source>nHour</source>
<translation>
<numerusform>%1 hour</numerusform>
<numerusform>%1 hours</numerusform>
</translation>
</message>
<message numerus="yes">
<source>nDay</source>
<translation>
<numerusform>%1 day</numerusform>
<numerusform>%1 days</numerusform>
</translation>
</message>
<message numerus="yes">
<source>nWeek</source>
<translation>
<numerusform>%1 week</numerusform>
<numerusform>%1 weeks</numerusform>
</translation>
</message>
</context>
<context>
<name>OneOneConversationInfos</name>
<message>
<source>one_one_infos_call</source>
<extracomment>Call</extracomment>
<translation>Call</translation>
</message>
<message>
<source>one_one_infos_mute</source>
<extracomment>Mute</extracomment>
<translation>Mute</translation>
</message>
<message>
<source>one_one_infos_search</source>
<extracomment>Search</extracomment>
<translation>Search</translation>
</message>
<message>
<source>one_one_infos_media_docs</source>
<extracomment>Medias &amp; documents</extracomment>
<translation>Medias &amp; documents</translation>
</message>
<message>
<source>one_one_infos_shared_media</source>
<extracomment>Shared medias</extracomment>
<translation>Shared medias</translation>
</message>
<message>
<source>one_one_infos_shared_docs</source>
<extracomment>Shared documents</extracomment>
<translation>Shared documents</translation>
</message>
<message>
<source>one_one_infos_other_actions</source>
<extracomment>Other actions</extracomment>
<translation>Other actions</translation>
</message>
<message>
<source>one_one_infos_enable_ephemerals</source>
<extracomment>Enable ephemeral messages</extracomment>
<translation>Enable ephemeral messages</translation>
</message>
<message>
<source>one_one_infos_disable_ephemerals</source>
<extracomment>Disable ephemeral messages</extracomment>
<translation>Disable ephemeral messages</translation>
</message>
<message>
<source>one_one_infos_delete_history</source>
<extracomment>Delete history</extracomment>
<translation>Delete history</translation>
</message>
<message>
<source>one_one_infos_delete_history_toast_title</source>
<extracomment>Delete history ?</extracomment>
<translation>Delete history ?</translation>
</message>
<message>
<source>one_one_infos_delete_history_toast_message</source>
<extracomment>All the messages will be removed from the chat room. Do you want to continue ?</extracomment>
<translation>All the messages will be removed from the chat room. Do you want to continue ?</translation>
</message>
<message>
<source>one_one_infos_open_contact</source>
<extracomment>Open contact</extracomment>
<translation>Open contact</translation>
</message>
<message>
<source>one_one_infos_create_contact</source>
<extracomment>Create contact</extracomment>
<translation>Create contact</translation>
</message>
</context>
<context>
<name>GroupConversationInfos</name>
<message>
<source>group_infos_call</source>
<extracomment>Call</extracomment>
<translation>Call</translation>
</message>
<message>
<source>group_infos_mute</source>
<extracomment>Mute</extracomment>
<translation>Mute</translation>
</message>
<message>
<source>group_infos_meeting</source>
<extracomment>Meeting</extracomment>
<translation>Meeting</translation>
</message>
<message>
<source>group_infos_media_docs</source>
<extracomment>Medias &amp; documents</extracomment>
<translation>Medias &amp; documents</translation>
</message>
<message>
<source>group_infos_shared_media</source>
<extracomment>Shared medias</extracomment>
<translation>Shared medias</translation>
</message>
<message>
<source>group_infos_shared_docs</source>
<extracomment>Shared documents</extracomment>
<translation>Shared documents</translation>
</message>
<message>
<source>group_infos_other_actions</source>
<extracomment>Other actions</extracomment>
<translation>Other actions</translation>
</message>
<message>
<source>group_infos_enable_ephemerals</source>
<extracomment>Enable ephemeral messages</extracomment>
<translation>Enable ephemeral messages</translation>
</message>
<message>
<source>group_infos_disable_ephemerals</source>
<extracomment>Disable ephemeral messages</extracomment>
<translation>Disable ephemeral messages</translation>
</message>
<message>
<source>group_infos_delete_history</source>
<extracomment>Delete history</extracomment>
<translation>Delete history</translation>
</message>
<message>
<source>group_infos_delete_history_toast_title</source>
<extracomment>Delete history ?</extracomment>
<translation>Delete history ?</translation>
</message>
<message>
<source>group_infos_delete_history_toast_message</source>
<extracomment>All the messages will be removed from the chat room. Do you want to continue ?</extracomment>
<translation>All the messages will be removed from the chat room. Do you want to continue ?</translation>
</message>
<message>
<source>group_infos_leave_room</source>
<extracomment>Leave Chat Room</extracomment>
<translation>Leave Chat Room</translation>
</message>
<message>
<source>group_infos_leave_room_toast_title</source>
<extracomment>Leave Chat Room ?</extracomment>
<translation>Leave Chat Room ?</translation>
</message>
<message>
<source>group_infos_leave_room_toast_message</source>
<extracomment>All the messages will be removed from the chat room. Do you want to continue ?</extracomment>
<translation>All the messages will be removed from the chat room. Do you want to continue ?</translation>
</message>
</context>
</TS>

View file

@ -4402,46 +4402,10 @@ Pour les activer dans un projet commercial, merci de nous contacter.</translatio
<context>
<name>SelectedChatView</name>
<message>
<location filename="../../view/Page/Form/Chat/SelectedChatView.qml" line="264"/>
<source>chat_view_detail_other_actions_title</source>
<extracomment>Other actions</extracomment>
<translation>Autres actions</translation>
</message>
<message>
<location filename="../../view/Page/Form/Chat/SelectedChatView.qml" line="303"/>
<source>chat_view_detail_delete_history_button</source>
<extracomment>&quot;Delete history&quot;</extracomment>
<translation>Supprimer l&apos;historique</translation>
</message>
<message>
<location filename="../../view/Page/Form/Chat/SelectedChatView.qml" line="306"/>
<source>chat_view_detail_delete_history_toast_title</source>
<extracomment>Delete history ?</extracomment>
<translation>Supprimer l&apos;historique ?</translation>
</message>
<message>
<location filename="../../view/Page/Form/Chat/SelectedChatView.qml" line="308"/>
<source>chat_view_detail_delete_history_toast_message</source>
<extracomment>All the messages will be removed from the chat room. Do you want to continue ?</extracomment>
<translation>Tous les messages seront supprimés. Souhaitez-vous continuer ?</translation>
</message>
<message>
<location filename="../../view/Page/Form/Chat/SelectedChatView.qml" line="282"/>
<source>chat_view_detail_leave_room_toast_button</source>
<extracomment>&quot;Leave Chat Room&quot;</extracomment>
<translation>Quitter la conversation</translation>
</message>
<message>
<location filename="../../view/Page/Form/Chat/SelectedChatView.qml" line="286"/>
<source>chat_view_detail_leave_room_toast_title</source>
<extracomment>Leave Chat Room ?</extracomment>
<translation>Quitter la conversation ?</translation>
</message>
<message>
<location filename="../../view/Page/Form/Chat/SelectedChatView.qml" line="288"/>
<source>chat_view_detail_leave_room_toast_message</source>
<extracomment>All the messages will be removed from the chat room. Do you want to continue ?</extracomment>
<translation>Vous ne recevrez ni pourrez envoyer des messages dans cette conversation, quitter ?</translation>
<location filename="../../view/Page/Form/Chat/SelectedChatView.qml" line="229"/>
<source>chat_view_send_area_placeholder_text</source>
<extracomment>Say something : placeholder text for sending message text area</extracomment>
<translation>Dites quelque chose</translation>
</message>
</context>
<context>
@ -6092,4 +6056,155 @@ Failed to create 1-1 conversation with %1 !</extracomment>
<translation>Ok</translation>
</message>
</context>
<context>
<name>OneOneConversationInfos</name>
<message>
<source>one_one_infos_call</source>
<extracomment>Call</extracomment>
<translation>Appel</translation>
</message>
<message>
<source>one_one_infos_mute</source>
<extracomment>Mute</extracomment>
<translation>Sourdine</translation>
</message>
<message>
<source>one_one_infos_search</source>
<extracomment>Search</extracomment>
<translation>Rechercher</translation>
</message>
<message>
<source>one_one_infos_media_docs</source>
<extracomment>Medias &amp; documents</extracomment>
<translation>Medias &amp; documents</translation>
</message>
<message>
<source>one_one_infos_shared_media</source>
<extracomment>Shared medias</extracomment>
<translation>Médias partagés</translation>
</message>
<message>
<source>one_one_infos_shared_docs</source>
<extracomment>Shared documents</extracomment>
<translation>Documents partagés</translation>
</message>
<message>
<source>one_one_infos_other_actions</source>
<extracomment>Other actions</extracomment>
<translation>Autres actions</translation>
</message>
<message>
<source>one_one_infos_enable_ephemerals</source>
<extracomment>Enable ephemeral messages</extracomment>
<translation>Activer les messages éphémères</translation>
</message>
<message>
<source>one_one_infos_disable_ephemerals</source>
<extracomment>Disable ephemeral messages</extracomment>
<translation>Désactiver les messages éphémères</translation>
</message>
<message>
<source>one_one_infos_delete_history</source>
<extracomment>Delete history</extracomment>
<translation>Supprimer l&apos;historique</translation>
</message>
<message>
<source>one_one_infos_delete_history_toast_title</source>
<extracomment>Delete history ?</extracomment>
<translation>Supprimer l&apos;historique ?</translation>
</message>
<message>
<source>one_one_infos_delete_history_toast_message</source>
<extracomment>All the messages will be removed from the chat room. Do you want to continue ?</extracomment>
<translation>Tous les messages seront supprimés. Souhaitez-vous continuer ?</translation>
</message>
<message>
<source>one_one_infos_open_contact</source>
<extracomment>Open contact</extracomment>
<translation>Voir le contact</translation>
</message>
<message>
<source>one_one_infos_create_contact</source>
<extracomment>Create contact</extracomment>
<translation>Créer un contact</translation>
</message>
</context>
<context>
<name>GroupConversationInfos</name>
<message>
<source>group_infos_call</source>
<extracomment>Call</extracomment>
<translation>Appel</translation>
</message>
<message>
<source>group_infos_mute</source>
<extracomment>Mute</extracomment>
<translation>Sourdine</translation>
</message>
<message>
<source>group_infos_meeting</source>
<extracomment>Meeting</extracomment>
<translation>Réunion</translation>
</message>
<message>
<source>group_infos_media_docs</source>
<extracomment>Medias &amp; documents</extracomment>
<translation>Medias &amp; documents</translation>
</message>
<message>
<source>group_infos_shared_media</source>
<extracomment>Shared medias</extracomment>
<translation>Médias partagés</translation>
</message>
<message>
<source>group_infos_shared_docs</source>
<extracomment>Shared documents</extracomment>
<translation>Documents partagés</translation>
</message>
<message>
<source>group_infos_other_actions</source>
<extracomment>Other actions</extracomment>
<translation>Autres actions</translation>
</message>
<message>
<source>group_infos_enable_ephemerals</source>
<extracomment>Enable ephemeral messages</extracomment>
<translation>Activer les messages éphémères</translation>
</message>
<message>
<source>group_infos_disable_ephemerals</source>
<extracomment>Disable ephemeral messages</extracomment>
<translation>Désactiver les messages éphémères</translation>
</message>
<message>
<source>group_infos_delete_history</source>
<extracomment>Delete history</extracomment>
<translation>Supprimer l&apos;historique</translation>
</message>
<message>
<source>group_infos_delete_history_toast_title</source>
<extracomment>Delete history ?</extracomment>
<translation>Supprimer l&apos;historique ?</translation>
</message>
<message>
<source>group_infos_delete_history_toast_message</source>
<extracomment>All the messages will be removed from the chat room. Do you want to continue ?</extracomment>
<translation>Tous les messages seront supprimés. Souhaitez-vous continuer ?</translation>
</message>
<message>
<source>group_infos_leave_room</source>
<extracomment>Leave Chat Room</extracomment>
<translation>Quitter la conversation</translation>
</message>
<message>
<source>group_infos_leave_room_toast_title</source>
<extracomment>Leave Chat Room ?</extracomment>
<translation>Quitter la conversation ?</translation>
</message>
<message>
<source>group_infos_leave_room_toast_message</source>
<extracomment>All the messages will be removed from the chat room. Do you want to continue ?</extracomment>
<translation>Vous ne recevrez ni pourrez envoyer des messages dans cette conversation, quitter ?</translation>
</message>
</context>
</TS>

View file

@ -20,6 +20,7 @@ list(APPEND _LINPHONEAPP_QML_FILES
view/Control/Button/Switch.qml
view/Control/Button/Settings/ComboSetting.qml
view/Control/Button/Settings/SwitchSetting.qml
view/Control/Button/LabelButton.qml
view/Control/Container/Carousel.qml
view/Control/Container/CreationFormLayout.qml
@ -150,6 +151,9 @@ list(APPEND _LINPHONEAPP_QML_FILES
view/Page/Layout/Settings/SecuritySettingsLayout.qml
view/Page/Layout/Settings/NetworkSettingsLayout.qml
view/Page/Layout/Settings/AdvancedSettingsLayout.qml
view/Page/Layout/Chat/GroupConversationInfos.qml
view/Page/Layout/Chat/OneOneConversationInfos.qml
view/Page/Layout/Chat/ChatInfoActionsGroup.qml
view/Page/Main/AbstractMainPage.qml
view/Page/Main/Account/AccountListView.qml

View file

@ -0,0 +1,35 @@
import QtQuick
import QtQuick.Controls.Basic as Control
import QtQuick.Effects
import QtQuick.Layouts
import Linphone
import 'qrc:/qt/qml/Linphone/view/Style/buttonStyle.js' as ButtonStyle
ColumnLayout {
id: labelButton
// property alias image: buttonImg
property alias button: button
property string label
spacing: Math.round(8 * DefaultStyle.dp)
Button {
id: button
Layout.alignment: Qt.AlignHCenter
Layout.preferredWidth: Math.round(56 * DefaultStyle.dp)
Layout.preferredHeight: Math.round(56 * DefaultStyle.dp)
topPadding: Math.round(16 * DefaultStyle.dp)
bottomPadding: Math.round(16 * DefaultStyle.dp)
leftPadding: Math.round(16 * DefaultStyle.dp)
rightPadding: Math.round(16 * DefaultStyle.dp)
contentImageColor: DefaultStyle.main2_600
radius: Math.round(40 * DefaultStyle.dp)
style: ButtonStyle.grey
}
Text {
Layout.alignment: Qt.AlignHCenter
text: labelButton.label
font {
pixelSize: Typography.p1.pixelSize
weight: Typography.p1.weight
}
}
}

View file

@ -12,7 +12,6 @@ ColumnLayout {
spacing: Math.round(30 * DefaultStyle.dp)
property var callHistoryGui
property var chatGui
property FriendGui contact
property var conferenceInfo: callHistoryGui?.core.conferenceInfo
@ -32,37 +31,6 @@ ColumnLayout {
property alias buttonContent: rightButton.data
property alias detailContent: detailControl.data
property var hideChat: false
component LabelButton: ColumnLayout {
id: labelButton
// property alias image: buttonImg
property alias button: button
property string label
spacing: Math.round(8 * DefaultStyle.dp)
Button {
id: button
Layout.alignment: Qt.AlignHCenter
Layout.preferredWidth: Math.round(56 * DefaultStyle.dp)
Layout.preferredHeight: Math.round(56 * DefaultStyle.dp)
topPadding: Math.round(16 * DefaultStyle.dp)
bottomPadding: Math.round(16 * DefaultStyle.dp)
leftPadding: Math.round(16 * DefaultStyle.dp)
rightPadding: Math.round(16 * DefaultStyle.dp)
contentImageColor: DefaultStyle.main2_600
radius: Math.round(40 * DefaultStyle.dp)
style: ButtonStyle.grey
}
Text {
Layout.alignment: Qt.AlignHCenter
text: labelButton.label
font {
pixelSize: Typography.p1.pixelSize
weight: Typography.p1.weight
}
}
}
ColumnLayout {
spacing: Math.round(13 * DefaultStyle.dp)
@ -171,7 +139,7 @@ ColumnLayout {
}
}
LabelButton {
visible: !mainItem.isConference && !SettingsCpp.disableChatFeature && !mainItem.hideChat
visible: !mainItem.isConference && !SettingsCpp.disableChatFeature
width: Math.round(56 * DefaultStyle.dp)
height: Math.round(56 * DefaultStyle.dp)
button.icon.width: Math.round(24 * DefaultStyle.dp)

View file

@ -253,80 +253,45 @@ RowLayout {
Layout.preferredWidth: Math.round(1 * DefaultStyle.dp)
Layout.fillHeight: true
}
Control.Control {
id: detailsPanel
visible: false
Layout.fillHeight: true
Layout.preferredWidth: Math.round(387 * DefaultStyle.dp)
background: Rectangle {
color: DefaultStyle.grey_0
anchors.fill: parent
}
contentItem: CallHistoryLayout {
chatGui: mainItem.chat
hideChat: mainItem.chat.core.isReadOnly
detailContent: ColumnLayout {
DetailLayout {
//: Other actions
label: qsTr("chat_view_detail_other_actions_title")
content: ColumnLayout {
// IconLabelButton {
// Layout.fillWidth: true
// Layout.preferredHeight: Math.round(50 * DefaultStyle.dp)
// icon.source: AppIcons.signOut
// //: "Quitter la conversation"
// text: qsTr("chat_view_detail_quit_chat_title")
// onClicked: {
Control.Control {
id: detailsPanel
visible: false
Layout.fillHeight: true
Layout.preferredWidth: Math.round(387 * DefaultStyle.dp)
// }
// style: ButtonStyle.noBackground
// }
IconLabelButton {
Layout.fillWidth: true
Layout.preferredHeight: Math.round(50 * DefaultStyle.dp)
icon.source: AppIcons.signOut
//: "Leave Chat Room"
text: qsTr("chat_view_detail_leave_room_toast_button")
visible: mainItem.chat.core.isGroupChat && !mainItem.chat.core.isReadOnly
onClicked: {
//: Leave Chat Room ?
mainWindow.showConfirmationLambdaPopup(qsTr("chat_view_detail_leave_room_toast_title"),
//: All the messages will be removed from the chat room. Do you want to continue ?
qsTr("chat_view_detail_leave_room_toast_message"),
"",
function(confirmed) {
if (confirmed) {
mainItem.chat.core.lLeave()
}
})
}
style: ButtonStyle.noBackground
}
IconLabelButton {
Layout.fillWidth: true
Layout.preferredHeight: Math.round(50 * DefaultStyle.dp)
icon.source: AppIcons.trashCan
//: "Delete history"
text: qsTr("chat_view_detail_delete_history_button")
onClicked: {
//: Delete history ?
mainWindow.showConfirmationLambdaPopup(qsTr("chat_view_detail_delete_history_toast_title"),
//: All the messages will be removed from the chat room. Do you want to continue ?
qsTr("chat_view_detail_delete_history_toast_message"),
"",
function(confirmed) {
if (confirmed) {
mainItem.chat.core.lDeleteHistory()
}
})
}
style: ButtonStyle.noBackgroundRed
}
}
}
Item {Layout.fillHeight: true}
}
}
}
background: Rectangle {
color: DefaultStyle.grey_0
anchors.fill: parent
}
contentItem: Loader {
id: contentLoader
anchors.top: parent.top
anchors.topMargin: Math.round(39 * DefaultStyle.dp)
active: true
property var chat: mainItem.chat
sourceComponent: chat && chat.core.isGroupChat ? groupInfoComponent : oneToOneInfoComponent
onLoaded: {
if (item && item.hasOwnProperty("chat")) {
item.chat = chat
}
}
}
Component {
id: oneToOneInfoComponent
OneOneConversationInfos {
chat: contentLoader.chat
}
}
Component {
id: groupInfoComponent
GroupConversationInfos {
chat: contentLoader.chat
}
}
}
}

View file

@ -0,0 +1,102 @@
import QtCore
import QtQuick
import QtQuick.Controls.Basic as Control
import QtQuick.Dialogs
import QtQuick.Effects
import QtQuick.Layouts
import Linphone
import UtilsCpp
import SettingsCpp
import 'qrc:/qt/qml/Linphone/view/Style/buttonStyle.js' as ButtonStyle
ColumnLayout {
property var title: String
property var entries
Text {
font: Typography.h4
color: DefaultStyle.main2_600
text: title
Layout.topMargin: Math.round(5 * DefaultStyle.dp)
}
Rectangle {
Layout.fillWidth: true
Layout.topMargin: Math.round(9 * DefaultStyle.dp)
color: DefaultStyle.grey_100
radius: Math.round(15 * DefaultStyle.dp)
height: contentColumn.implicitHeight
ColumnLayout {
id: contentColumn
anchors.fill: parent
spacing: 0
Repeater {
model: entries
delegate: ColumnLayout {
width: parent.width
spacing: 0
property bool hovered: false
Item {
Layout.fillWidth: true
Layout.preferredHeight: Math.round(56 * DefaultStyle.dp)
visible: modelData.visible
RowLayout {
anchors.fill: parent
spacing: Math.round(8 * DefaultStyle.dp)
anchors.leftMargin: Math.round(17 * DefaultStyle.dp)
anchors.rightMargin: Math.round(10 * DefaultStyle.dp)
EffectImage {
fillMode: Image.PreserveAspectFit
imageSource: modelData.icon
colorizationColor: modelData.color
Layout.preferredHeight: Math.round(20 * DefaultStyle.dp)
Layout.preferredWidth: Math.round(20 * DefaultStyle.dp)
}
Text {
text: modelData.text
font: hovered ? Typography.p1b : Typography.p1
color: modelData.color
Layout.alignment: Qt.AlignVCenter
Layout.fillWidth: true
}
EffectImage {
visible: modelData.showRightArrow
fillMode: Image.PreserveAspectFit
imageSource: AppIcons.rightArrow
colorizationColor: modelData.color
Layout.preferredHeight: Math.round(20 * DefaultStyle.dp)
Layout.preferredWidth: Math.round(20 * DefaultStyle.dp)
}
}
MouseArea {
anchors.fill: parent
cursorShape: Qt.PointingHandCursor
onClicked: modelData.action()
onEntered: hovered = true
onExited: hovered = false
hoverEnabled: true
}
}
Rectangle {
visible: index < entries.length - 1
color: DefaultStyle.main2_200
height: Math.round(1 * DefaultStyle.dp)
width: parent.width - Math.round(30 * DefaultStyle.dp)
Layout.leftMargin: Math.round(17 * DefaultStyle.dp)
}
}
}
}
}
}

View file

@ -0,0 +1,171 @@
import QtCore
import QtQuick
import QtQuick.Controls.Basic as Control
import QtQuick.Dialogs
import QtQuick.Effects
import QtQuick.Layouts
import Linphone
import UtilsCpp
import SettingsCpp
import 'qrc:/qt/qml/Linphone/view/Style/buttonStyle.js' as ButtonStyle
ColumnLayout {
id: mainItem
property var chat
spacing: 0
Avatar {
Layout.alignment: Qt.AlignHCenter
displayNameVal: mainItem.chat.core.avatarUri
Layout.preferredWidth: Math.round(100 * DefaultStyle.dp)
Layout.preferredHeight: Math.round(100 * DefaultStyle.dp)
}
Text {
font: Typography.p1
color: DefaultStyle.main2_700
text: mainItem.chat?.core.title || ""
Layout.alignment: Qt.AlignHCenter
Layout.topMargin: Math.round(11 * DefaultStyle.dp)
}
Text {
font: Typography.p3
color: DefaultStyle.main2_700
text: mainItem.chat?.core.peerAddress
Layout.alignment: Qt.AlignHCenter
Layout.topMargin: Math.round(5 * DefaultStyle.dp)
}
RowLayout {
spacing: Math.round(55 * DefaultStyle.dp)
Layout.alignment: Qt.AlignHCenter
Layout.topMargin: Math.round(30 * DefaultStyle.dp)
LabelButton {
width: Math.round(56 * DefaultStyle.dp)
height: Math.round(56 * DefaultStyle.dp)
button.icon.width: Math.round(24 * DefaultStyle.dp)
button.icon.height: Math.round(24 * DefaultStyle.dp)
button.icon.source: chat.core.muted ? AppIcons.bell : AppIcons.bellSlash
//: "Sourdine"
label: qsTr("group_infos_mute")
button.onClicked: {
chat.core.muted = !chat.core.muted
}
}
LabelButton {
width: Math.round(56 * DefaultStyle.dp)
height: Math.round(56 * DefaultStyle.dp)
button.icon.width: Math.round(24 * DefaultStyle.dp)
button.icon.height: Math.round(24 * DefaultStyle.dp)
button.icon.source: AppIcons.phone
//: "Appel"
label: qsTr("group_infos_call")
button.onClicked: {
//TODO
}
}
LabelButton {
width: Math.round(56 * DefaultStyle.dp)
height: Math.round(56 * DefaultStyle.dp)
button.icon.width: Math.round(24 * DefaultStyle.dp)
button.icon.height: Math.round(24 * DefaultStyle.dp)
button.icon.source: AppIcons.videoconference
//: "Réunion"
label: qsTr("group_infos_meeting")
button.onClicked: {
//TODO
}
}
}
ChatInfoActionsGroup {
Layout.leftMargin: Math.round(15 * DefaultStyle.dp)
Layout.rightMargin: Math.round(12 * DefaultStyle.dp)
Layout.topMargin: Math.round(30 * DefaultStyle.dp)
title: qsTr("group_infos_media_docs")
entries: [
{
icon: AppIcons.photo,
visible: true,
text: qsTr("group_infos_media_docs"),
color: DefaultStyle.main2_600,
showRightArrow: true,
action: function() {
console.log("group_infos_shared_media")
}
},
{
icon: AppIcons.pdf,
visible: true,
text: qsTr("group_infos_shared_docs"),
color: DefaultStyle.main2_600,
showRightArrow: true,
action: function() {
console.log("Opening shared documents")
}
}
]
}
ChatInfoActionsGroup {
Layout.leftMargin: Math.round(15 * DefaultStyle.dp)
Layout.rightMargin: Math.round(12 * DefaultStyle.dp)
Layout.topMargin: Math.round(17 * DefaultStyle.dp)
title: qsTr("group_infos_other_actions")
entries: [
{
icon: AppIcons.clockCountDown,
visible: true,
text: mainItem.chat.core.ephemeralEnabled ? qsTr("group_infos_disable_ephemerals") : qsTr("group_infos_enable_ephemerals"),
color: DefaultStyle.main2_600,
showRightArrow: false,
action: function() {
mainItem.chat.core.ephemeralEnabled = !mainItem.chat.core.ephemeralEnabled
}
},
{
icon: AppIcons.signOut,
visible: !mainItem.chat.core.isReadOnly,
text: qsTr("group_infos_leave_room"),
color: DefaultStyle.main2_600,
showRightArrow: false,
action: function() {
//: Leave Chat Room ?
mainWindow.showConfirmationLambdaPopup(qsTr("group_infos_leave_room_toast_title"),
//: All the messages will be removed from the chat room. Do you want to continue ?
qsTr("group_infos_leave_room_toast_message"),
"",
function(confirmed) {
if (confirmed) {
mainItem.chat.core.lLeave()
}
})
}
},
{
icon: AppIcons.trashCan,
visible: true,
text: qsTr("group_infos_delete_history"),
color: DefaultStyle.danger_500main,
showRightArrow: false,
action: function() {
//: Delete history ?
mainWindow.showConfirmationLambdaPopup(qsTr("group_infos_delete_history_toast_title"),
//: All the messages will be removed from the chat room. Do you want to continue ?
qsTr("group_infos_delete_history_toast_message"),
"",
function(confirmed) {
if (confirmed) {
mainItem.chat.core.lDeleteHistory()
}
})
}
}
]
}
Item {
Layout.fillHeight: true
}
}

View file

@ -0,0 +1,178 @@
import QtCore
import QtQuick
import QtQuick.Controls.Basic as Control
import QtQuick.Dialogs
import QtQuick.Effects
import QtQuick.Layouts
import Linphone
import UtilsCpp
import SettingsCpp
import 'qrc:/qt/qml/Linphone/view/Style/buttonStyle.js' as ButtonStyle
ColumnLayout {
id: mainItem
property var chat
property var contactObj: chat ? UtilsCpp.findFriendByAddress(chat?.core.peerAddress) : null
spacing: 0
Avatar {
Layout.alignment: Qt.AlignHCenter
contact: contactObj?.value || null
displayNameVal: contact ? "" : mainItem.chat.core.avatarUri
Layout.preferredWidth: Math.round(100 * DefaultStyle.dp)
Layout.preferredHeight: Math.round(100 * DefaultStyle.dp)
}
Text {
font: Typography.p1
color: DefaultStyle.main2_700
text: mainItem.chat?.core.title || ""
Layout.alignment: Qt.AlignHCenter
Layout.topMargin: Math.round(11 * DefaultStyle.dp)
}
Text {
font: Typography.p3
color: DefaultStyle.main2_700
text: mainItem.chat?.core.peerAddress
Layout.alignment: Qt.AlignHCenter
Layout.topMargin: Math.round(5 * DefaultStyle.dp)
}
Text {
font: Typography.p3
color: contactObj?.value.core.presenceColor
text: contactObj?.value.core.presenceStatus
Layout.alignment: Qt.AlignHCenter
Layout.topMargin: Math.round(5 * DefaultStyle.dp)
}
RowLayout {
spacing: Math.round(55 * DefaultStyle.dp)
Layout.alignment: Qt.AlignHCenter
Layout.topMargin: Math.round(30 * DefaultStyle.dp)
LabelButton {
width: Math.round(56 * DefaultStyle.dp)
height: Math.round(56 * DefaultStyle.dp)
button.icon.width: Math.round(24 * DefaultStyle.dp)
button.icon.height: Math.round(24 * DefaultStyle.dp)
button.icon.source: AppIcons.phone
//: "Appel"
label: qsTr("one_one_infos_call")
button.onClicked: {
mainWindow.startCallWithContact(contactObj.value, false, mainItem)
}
}
LabelButton {
width: Math.round(56 * DefaultStyle.dp)
height: Math.round(56 * DefaultStyle.dp)
button.icon.width: Math.round(24 * DefaultStyle.dp)
button.icon.height: Math.round(24 * DefaultStyle.dp)
button.icon.source: chat.core.muted ? AppIcons.bell : AppIcons.bellSlash
//: "Sourdine"
label: qsTr("one_one_infos_mute")
button.onClicked: {
chat.core.muted = !chat.core.muted
}
}
LabelButton {
width: Math.round(56 * DefaultStyle.dp)
height: Math.round(56 * DefaultStyle.dp)
button.icon.width: Math.round(24 * DefaultStyle.dp)
button.icon.height: Math.round(24 * DefaultStyle.dp)
button.icon.source: AppIcons.search
//: "Rechercher"
label: qsTr("one_one_infos_search")
button.onClicked: {
//TODO
}
}
}
ChatInfoActionsGroup {
Layout.leftMargin: Math.round(15 * DefaultStyle.dp)
Layout.rightMargin: Math.round(12 * DefaultStyle.dp)
Layout.topMargin: Math.round(30 * DefaultStyle.dp)
title: qsTr("one_one_infos_media_docs")
entries: [
{
icon: AppIcons.photo,
visible: true,
text: qsTr("one_one_infos_shared_media"),
color: DefaultStyle.main2_600,
showRightArrow: true,
action: function() {
console.log("Opening shared media")
}
},
{
icon: AppIcons.pdf,
visible: true,
text: qsTr("one_one_infos_shared_docs"),
color: DefaultStyle.main2_600,
showRightArrow: true,
action: function() {
console.log("Opening shared documents")
}
}
]
}
ChatInfoActionsGroup {
Layout.leftMargin: Math.round(15 * DefaultStyle.dp)
Layout.rightMargin: Math.round(12 * DefaultStyle.dp)
Layout.topMargin: Math.round(17 * DefaultStyle.dp)
title: qsTr("one_one_infos_other_actions")
entries: [
{
icon: AppIcons.adressBook,
visible: true,
text: contactObj.value ? qsTr("one_one_infos_open_contact") : qsTr("one_one_infos_create_contact"),
color: DefaultStyle.main2_600,
showRightArrow: false,
action: function() {
// contactObj.value = friendGui
if (contactObj.value)
mainWindow.displayContactPage(contactObj.value.core.defaultAddress)
else
mainWindow.displayCreateContactPage("",chat.core.peerAddress)
//mainItem.createContactRequested(contactDetail.contactName, chat.core.peerAddress)
}
},
{
icon: AppIcons.clockCountDown,
visible: true,
text: mainItem.chat.core.ephemeralEnabled ? qsTr("one_one_infos_disable_ephemerals") : qsTr("one_one_infos_enable_ephemerals"),
color: DefaultStyle.main2_600,
showRightArrow: false,
action: function() {
mainItem.chat.core.ephemeralEnabled = !mainItem.chat.core.ephemeralEnabled
}
},
{
icon: AppIcons.trashCan,
visible: true,
text: qsTr("one_one_infos_delete_history"),
color: DefaultStyle.danger_500main,
showRightArrow: false,
action: function() {
//: Delete history ?
mainWindow.showConfirmationLambdaPopup(qsTr("one_one_infos_delete_history_toast_title"),
//: All the messages will be removed from the chat room. Do you want to continue ?
qsTr("one_one_infos_delete_history_toast_message"),
"",
function(confirmed) {
if (confirmed) {
mainItem.chat.core.lDeleteHistory()
}
})
}
}
]
}
Item {
Layout.fillHeight: true
}
}

View file

@ -56,6 +56,10 @@ AbstractWindow {
openMainPage()
mainWindowStackView.currentItem.displayContactPage(contactAddress)
}
function displayCreateContactPage(name, contactAddress) {
openMainPage()
mainWindowStackView.currentItem.createContact(name, contactAddress)
}
function displayChatPage(contactAddress) {
openMainPage()
mainWindowStackView.currentItem.displayChatPage(contactAddress)

View file

@ -149,6 +149,7 @@ QtObject {
property string clockCountDown: "image://internal/clock-countdown.svg"
property string reply: "image://internal/reply.svg"
property string forward: "image://internal/forward.svg"
property string search: "image://internal/search.svg"
property string pdf: "image://internal/pdf.svg"
property string photo: "image://internal/photo.svg"
}

View file

@ -80,6 +80,13 @@ QtObject {
weight: Math.min(Math.round(400 * DefaultStyle.dp), 1000)
})
// Text/P1 - Paragraph text
property font p1b: Qt.font( {
family: DefaultStyle.defaultFont,
pixelSize: Math.round(15 * DefaultStyle.dp),
weight: Math.min(Math.round(400 * DefaultStyle.dp), 1000)
})
// Button/B1 - Big Button
property font b1: Qt.font( {
family: DefaultStyle.defaultFont,