diff --git a/linphone-app/assets/languages/en.ts b/linphone-app/assets/languages/en.ts
index 20da6536d..0bdb62704 100644
--- a/linphone-app/assets/languages/en.ts
+++ b/linphone-app/assets/languages/en.ts
@@ -450,6 +450,14 @@ Server URL not configured.
isComposing
%1 is typing...
+
+ chatTyping
+ '%1 is typing...' indicate that someone is composing in chat
+
+ %1 is typing...
+ %1 are typing...
+
+
Cli
@@ -693,6 +701,27 @@ Server URL not configured.
cleanHistory
Delete history
+
+ conversationMenuGroupInformations
+ 'Group informations' : Item menu to get information about the chat room
+ Group informations
+
+
+ conversationMenuDevices
+ "Conversation's devices" : Item menu to get all participant devices of the chat room
+ Conversation's devices
+
+
+ conversationMenuEphemeral
+ 'Ephemeral messages' : Item menu to enable ephemeral mode
+ Ephemeral messages
+
+
+ adminStatus
+ 'Admin' : Admin(istrator)
+ Admin
+ One word title for describing the current admin status
+
CreateAppSipAccount
@@ -798,6 +827,76 @@ Server URL not configured.
Send a file
+
+ EphemeralChatRoom
+
+ ephemeralTitle
+ "Ephemeral messages" : Popup title for ephemerals
+ Ephemeral messages
+
+
+ ephemeralText
+ 'New messages will be deleted on both ends once it has been read by your contact. Select a timeout.'
+ New messages will be deleted on both ends once it has been read by your contact. Select a timeout.
+ Explanation for ephemerals
+
+
+ ephemeralNotInConference!
+ '
+Ephemeral message is only supported in conference based chat room!'
+ Ephemeral message is only supported in conference based chat room!
+ Warning about not being in conference based chat room.
+
+
+ disabled
+ 'Disabled'
+ Disabled
+
+
+ nMinute
+ '%1 minute'
+
+ %1 minute
+ %1 minutes
+
+
+
+ nHour
+ '%1 hour'
+
+ %1 hour
+ %1 hours
+
+
+
+ nDay
+ '%1 day'
+----------
+'%1 days'
+
+ %1 day
+ %1 days
+
+
+
+ nWeek
+ '%1 week'
+
+ %1 week
+ %1 weeks
+
+
+
+ cancelButton
+ 'cancel' : button text for cancelling operation
+ CANCEL
+
+
+ startButton
+ 'start' : button text to start ephemeral mode
+ START
+
+
Event
@@ -860,15 +959,15 @@ Server URL not configured.
tooltipContactEdit
- Edit contact
+ Edit contact
tooltipContactAdd
- Add contact
+ Add contact
cleanHistory
- Delete history
+ Delete history
@@ -956,6 +1055,76 @@ Server URL not configured.
Stop recording.
+
+ InfoChatRoom
+
+ quitGroupButton
+ 'Exit group' : Button label
+ Exit group
+
+
+ ok
+ 'OK' : Button label
+ OK
+
+
+ addParticipantPlaceholder
+ 'Add Participants' : Placeholder in a search bar for adding participant to the chat room
+ Add Participants
+
+
+ addParticipantTooltip
+ 'Search participants in your contact list in order to invite them into the chat room.'
+ Search participants in your contact list in order to invite them into the chat room.
+ Explanation for inviting the selected participants into chat room
+
+
+ participantList
+ 'Participant list'
+ Participant list
+
+
+ adminStatus
+ 'Admin' : Admin(istrator)
+ Admin
+ word for admin status
+
+
+
+ InfoEncryption
+
+ cancelButton
+ 'CANCEL' : button text for cancelling operation
+ CANCEL
+
+
+ callButton
+ 'CALL' : Button that lead to a call
+ CALL
+
+
+ okButton
+ 'OK' : Button that validate the popup to be redirected to the device list
+ OK
+
+
+ infoEncryptionTitle
+ 'End-to-end encrypted' Popup title about encryption information.
+ End-to-end encrypted
+
+
+ encryptionExplanation
+ "Instant messages are end-to-end encrypted in secured conversations. It is possible to upgrade the security level of a conversation by authentificating participants."
+ Instant messages are end-to-end encrypted in secured conversations. It is possible to upgrade the security level of a conversation by authentificating participants.
+ Explanation of Encryption
+
+
+ encryptionProcessExplanation
+ "To do so, call the contact and follow the authentification process."
+ To do so, call the contact and follow the authentification process.
+ Explanation process
+
+
InviteFriends
@@ -1000,10 +1169,6 @@ Click here: <a href="%1">%1</a>
mainSearchBarPlaceholder
Search contact, start a call or a chat...
-
- homeEntry
- HOME
-
contactsEntry
CONTACTS
@@ -1076,6 +1241,40 @@ Click here: <a href="%1">%1</a>
menuPlayMe
Play me!
+
+ menuDeliveryStatus
+ 'Delivery status' : Item menu that lead to IMDN of a message
+ Delivery status
+
+
+ menuDelete
+ 'Delete' : Item menu to delete a message
+ Delete
+
+
+ deliveryDelivered
+ 'Send to %1 - %2' Little message to indicate the state of a message
+ Send to %1 - %2
+ %1 is someone, %2 is a date/time. The state is that the message has been sent but not received.
+
+
+ deliveryDeliveredToUser
+ 'Retrieved by %1 - %2' Little message to indicate the state of a message
+ Retrieved by %1 - %2
+ %1 is someone, %2 is a date/time. The state is that the message has been retrieved
+
+
+ deliveryDisplayed
+ 'Read by %1 - %2' Little message to indicate the state of a message
+ Read by %1 - %2
+ %1 is someone, %2 is a date/time. The state that the message has been read.
+
+
+ deliveryNotDelivered
+ "%1 have nothing received" Little message to indicate the state of a message
+ %1 have nothing received
+ %1 is someone. The state is that the message hasn't been delivered.
+
MultimediaParameters
@@ -1084,6 +1283,67 @@ Click here: <a href="%1">%1</a>
OK
+
+ NewChatRoom
+
+ cancelButton
+ 'Cancel' : Cancel button
+ CANCEL
+
+
+ startButton
+ 'Launch' : Start button
+ LAUNCH
+
+
+ newChatRoomTitle
+ 'Start a chat room' : Title of a popup about creation of a chat room
+ Start a chat room
+
+
+ askEncryption
+ 'Would you like to encrypt your chat?' : Ask about setting the chat room as secured.
+ Would you like to encrypt your chat?
+
+
+ subjectLabel
+ 'Subject' : Label of a text field about the subject of the chat room
+ Subject
+
+
+ subjectTooltip
+ 'Current subject of the Chat Room. It cannot be empty'
+ Current subject of the Chat Room. It cannot be empty.
+ Explanation about the subject of the chat room
+
+
+ participantSelectionPlaceholder
+ 'Select participants' : Placeholder for a search on participant to add them in selection.
+ Select participants
+
+
+ participantSelectionTooltip
+ 'Search in your contacts or add a custom one to the chat room.'
+ Search in your contacts or add a custom one to the chat room.
+
+
+ adminStatus
+ 'Admin' : Admin(istrator)
+ Admin
+ word for admin status
+
+
+ removeParticipantSelection
+ 'Remove this participant from the selection' : Explanation abo^ut removing participant from a selection
+ Remove this participant from the selection
+ This is a tooltip
+
+
+ requiredField
+ 'Required' : Word relative to a star to explain that it is a requirement (Field form)
+ Required
+
+
Notifier
@@ -1133,6 +1393,15 @@ Click here: <a href="%1">%1</a>
Delivered
+
+ ParticipantsView
+
+ participantsAdminHeader
+ '(Admin)' : One word for Admin(istrator)
+ (Admin)
+ Little Header in one word for a column in participant
+
+
Presence
@@ -1207,6 +1476,11 @@ Click here: <a href="%1">%1</a>
contactsTitle
Address Book Connector
+
+ noPlugin
+ 'No Plugins to load' : Text in combobox
+ No Plugins to load
+
SettingsAudio
@@ -2018,8 +2292,54 @@ Click here: <a href="%1">%1</a>
Timeline
- timelineTitle
- Previously
+ timelineFilter
+ A title for filtering mode.
+ Filter
+
+
+ timelineFilterAll
+ 'All' The mode for timelines filtering.
+ All
+
+
+ timelineFilterCustom
+ 'Custom' The mode for timelines filtering.
+ Custom
+
+
+ timelineFilterSimpleRooms
+ 'Simple rooms' : Filter item
+ Simple rooms
+ Selecting it will show all simple romms
+
+
+ timelineFilterSecureRooms
+ 'Secure rooms' : Filter item
+ Secure rooms
+ Selecting it will show all secure rooms
+
+
+ timelineFilterChatGroups
+ 'Chat groups' : Filter item
+ Chat groups
+ Selecting it will show all chat groups (with more than one participant)
+
+
+ timelineFilterSecureChatGroups
+ 'Secure Chat Groups' : Filter item
+ Secure Chat Groups
+ Selecting it will show all secure chat groups (with more than one participant)
+
+
+ timelineFilterEphemerals
+ 'Ephemerals' : Filter item
+ Ephemerals
+ Selecting it will show all chat rooms where the ephemeral mode has been enabled.
+
+
+ timelineSearchPlaceholderText
+ 'Search in the list' : ths is a placeholder when searching something in the timeline list
+ Search in the list
diff --git a/linphone-app/assets/languages/es.ts b/linphone-app/assets/languages/es.ts
index 9637897a3..36010de44 100644
--- a/linphone-app/assets/languages/es.ts
+++ b/linphone-app/assets/languages/es.ts
@@ -92,6 +92,22 @@
about
Acerca De
+
+ commandLineOptionFetchConfig
+
+
+
+ commandLineOptionFetchConfigArg
+
+
+
+ commandLineOptionCall
+
+
+
+ commandLineOptionCallArg
+
+
AssistantAbstractView
@@ -434,6 +450,14 @@ URL del servidor no configurada.
isComposing
%1 está escribiendo...
+
+ chatTyping
+ '%1 is typing...' indicate that someone is composing in chat
+
+
+
+
+
Cli
@@ -473,6 +497,10 @@ URL del servidor no configurada.
joinConferenceAsFunctionDescription
Únase a la conferencia organizada por la dirección de sip-como con la dirección de sip-guest. Si no está conectado a un proxy-config, consulte join-conference.
+
+ byeFunctionDescription
+
+
CodecsViewer
@@ -673,6 +701,27 @@ URL del servidor no configurada.
cleanHistory
Eliminar historial
+
+ conversationMenuGroupInformations
+ 'Group informations' : Item menu to get information about the chat room
+
+
+
+ conversationMenuDevices
+ "Conversation's devices" : Item menu to get all participant devices of the chat room
+
+
+
+ conversationMenuEphemeral
+ 'Ephemeral messages' : Item menu to enable ephemeral mode
+
+
+
+ adminStatus
+ 'Admin' : Admin(istrator)
+
+ One word title for describing the current admin status
+
CreateAppSipAccount
@@ -778,6 +827,76 @@ URL del servidor no configurada.
Enviar un archivo
+
+ EphemeralChatRoom
+
+ ephemeralTitle
+ "Ephemeral messages" : Popup title for ephemerals
+
+
+
+ ephemeralText
+ 'New messages will be deleted on both ends once it has been read by your contact. Select a timeout.'
+
+ Explanation for ephemerals
+
+
+ ephemeralNotInConference!
+ '
+Ephemeral message is only supported in conference based chat room!'
+
+ Warning about not being in conference based chat room.
+
+
+ disabled
+ 'Disabled'
+
+
+
+ nMinute
+ '%1 minute'
+
+
+
+
+
+
+ nHour
+ '%1 hour'
+
+
+
+
+
+
+ nDay
+ '%1 day'
+----------
+'%1 days'
+
+
+
+
+
+
+ nWeek
+ '%1 week'
+
+
+
+
+
+
+ cancelButton
+ 'cancel' : button text for cancelling operation
+
+
+
+ startButton
+ 'start' : button text to start ephemeral mode
+
+
+
Event
@@ -936,6 +1055,76 @@ URL del servidor no configurada.
Parar grabación.
+
+ InfoChatRoom
+
+ quitGroupButton
+ 'Exit group' : Button label
+
+
+
+ ok
+ 'OK' : Button label
+ OK
+
+
+ addParticipantPlaceholder
+ 'Add Participants' : Placeholder in a search bar for adding participant to the chat room
+
+
+
+ addParticipantTooltip
+ 'Search participants in your contact list in order to invite them into the chat room.'
+
+ Explanation for inviting the selected participants into chat room
+
+
+ participantList
+ 'Participant list'
+
+
+
+ adminStatus
+ 'Admin' : Admin(istrator)
+
+ word for admin status
+
+
+
+ InfoEncryption
+
+ cancelButton
+ 'CANCEL' : button text for cancelling operation
+
+
+
+ callButton
+ 'CALL' : Button that lead to a call
+
+
+
+ okButton
+ 'OK' : Button that validate the popup to be redirected to the device list
+
+
+
+ infoEncryptionTitle
+ 'End-to-end encrypted' Popup title about encryption information.
+
+
+
+ encryptionExplanation
+ "Instant messages are end-to-end encrypted in secured conversations. It is possible to upgrade the security level of a conversation by authentificating participants."
+
+ Explanation of Encryption
+
+
+ encryptionProcessExplanation
+ "To do so, call the contact and follow the authentification process."
+
+ Explanation process
+
+
InviteFriends
@@ -980,10 +1169,6 @@ Haga clic aquí: <a href="%1">%1 </a>
mainSearchBarPlaceholder
Buscar contacto, empezar una llamada o un chat
-
- homeEntry
- INICIO
-
contactsEntry
CONTACTOS
@@ -1056,6 +1241,40 @@ Haga clic aquí: <a href="%1">%1 </a>
menuPlayMe
¡Reprodúceme!
+
+ menuDeliveryStatus
+ 'Delivery status' : Item menu that lead to IMDN of a message
+
+
+
+ menuDelete
+ 'Delete' : Item menu to delete a message
+
+
+
+ deliveryDelivered
+ 'Send to %1 - %2' Little message to indicate the state of a message
+
+ %1 is someone, %2 is a date/time. The state is that the message has been sent but not received.
+
+
+ deliveryDeliveredToUser
+ 'Retrieved by %1 - %2' Little message to indicate the state of a message
+
+ %1 is someone, %2 is a date/time. The state is that the message has been retrieved
+
+
+ deliveryDisplayed
+ 'Read by %1 - %2' Little message to indicate the state of a message
+
+ %1 is someone, %2 is a date/time. The state that the message has been read.
+
+
+ deliveryNotDelivered
+ "%1 have nothing received" Little message to indicate the state of a message
+
+ %1 is someone. The state is that the message hasn't been delivered.
+
MultimediaParameters
@@ -1064,6 +1283,67 @@ Haga clic aquí: <a href="%1">%1 </a>
OK
+
+ NewChatRoom
+
+ cancelButton
+ 'Cancel' : Cancel button
+
+
+
+ startButton
+ 'Launch' : Start button
+
+
+
+ newChatRoomTitle
+ 'Start a chat room' : Title of a popup about creation of a chat room
+
+
+
+ askEncryption
+ 'Would you like to encrypt your chat?' : Ask about setting the chat room as secured.
+
+
+
+ subjectLabel
+ 'Subject' : Label of a text field about the subject of the chat room
+
+
+
+ subjectTooltip
+ 'Current subject of the Chat Room. It cannot be empty'
+
+ Explanation about the subject of the chat room
+
+
+ participantSelectionPlaceholder
+ 'Select participants' : Placeholder for a search on participant to add them in selection.
+
+
+
+ participantSelectionTooltip
+ 'Search in your contacts or add a custom one to the chat room.'
+
+
+
+ adminStatus
+ 'Admin' : Admin(istrator)
+
+ word for admin status
+
+
+ removeParticipantSelection
+ 'Remove this participant from the selection' : Explanation abo^ut removing participant from a selection
+
+ This is a tooltip
+
+
+ requiredField
+ 'Required' : Word relative to a star to explain that it is a requirement (Field form)
+
+
+
Notifier
@@ -1113,6 +1393,15 @@ Haga clic aquí: <a href="%1">%1 </a>
Enviado
+
+ ParticipantsView
+
+ participantsAdminHeader
+ '(Admin)' : One word for Admin(istrator)
+
+ Little Header in one word for a column in participant
+
+
Presence
@@ -1187,6 +1476,11 @@ Haga clic aquí: <a href="%1">%1 </a>
contactsTitle
Contactos
+
+ noPlugin
+ 'No Plugins to load' : Text in combobox
+
+
SettingsAudio
@@ -1366,6 +1660,172 @@ Haga clic aquí: <a href="%1">%1 </a>
El cifrado es obligatorio
+
+ SettingsLdap
+
+ newServer
+
+
+
+
+ SettingsLdapEdit
+
+ cancel
+ CANCELAR
+
+
+ confirm
+
+
+
+ displayNameLabel
+ Nombre mostrado (opcional)
+
+
+ displayNameTooltip
+
+
+
+ connectionTitle
+
+
+
+ serverLabel
+
+
+
+ serverTooltip
+
+
+
+ bindDNLabel
+
+
+
+ bindDNTooltip
+
+
+
+ passwordLabel
+ Contraseña
+
+
+ useTLSLabel
+
+
+
+ useTLSTooltip
+
+
+
+ useSalLabel
+
+
+
+ useSalTooltip
+
+
+
+ verifyTLSLabel
+
+
+
+ AutoMode
+
+
+
+ offMode
+
+
+
+ onMode
+
+
+
+ verifyTLSTooltip
+
+
+
+ searchTitle
+
+
+
+ baseObjectLabel
+
+
+
+ baseObjectPlaceholder
+
+
+
+ baseObjectTooltip
+
+
+
+ filterLabel
+
+
+
+ filterTooltip
+
+
+
+ maxResultsLabel
+
+
+
+ maxResultsTooltip
+
+
+
+ timeoutLabel
+
+
+
+ timeoutTooltip
+
+
+
+ parsingTitle
+
+
+
+ nameAttributesLabel
+
+
+
+ nameAttributesTooltip
+
+
+
+ sipAttributesLabel
+
+
+
+ sipAttributesTooltip
+
+
+
+ domainLabel
+
+
+
+ domainTooltip
+
+
+
+ miscLabel
+
+
+
+ debugLabel
+
+
+
+ debugTooltip
+
+
+
SettingsNetwork
@@ -1809,8 +2269,54 @@ Haga clic aquí: <a href="%1">%1 </a>
Timeline
- timelineTitle
- Previamente
+ timelineFilter
+ A title for filtering mode.
+
+
+
+ timelineFilterAll
+ 'All' The mode for timelines filtering.
+
+
+
+ timelineFilterCustom
+ 'Custom' The mode for timelines filtering.
+
+
+
+ timelineFilterSimpleRooms
+ 'Simple rooms' : Filter item
+
+ Selecting it will show all simple romms
+
+
+ timelineFilterSecureRooms
+ 'Secure rooms' : Filter item
+
+ Selecting it will show all secure rooms
+
+
+ timelineFilterChatGroups
+ 'Chat groups' : Filter item
+
+ Selecting it will show all chat groups (with more than one participant)
+
+
+ timelineFilterSecureChatGroups
+ 'Secure Chat Groups' : Filter item
+
+ Selecting it will show all secure chat groups (with more than one participant)
+
+
+ timelineFilterEphemerals
+ 'Ephemerals' : Filter item
+
+ Selecting it will show all chat rooms where the ephemeral mode has been enabled.
+
+
+ timelineSearchPlaceholderText
+ 'Search in the list' : ths is a placeholder when searching something in the timeline list
+
diff --git a/linphone-app/resources.qrc b/linphone-app/resources.qrc
index ba5f26bd0..324043073 100644
--- a/linphone-app/resources.qrc
+++ b/linphone-app/resources.qrc
@@ -1,154 +1,154 @@
-
- assets/fonts/NotoSans-hinted/NotoSans-BoldItalic.ttf
- assets/fonts/NotoSans-hinted/NotoSans-Bold.ttf
- assets/fonts/NotoSans-hinted/NotoSans-Italic.ttf
- assets/fonts/NotoSans-hinted/NotoSans-Regular.ttf
- assets/fonts/NotoSans-hinted/NotoSansUI-BoldItalic.ttf
- assets/fonts/NotoSans-hinted/NotoSansUI-Bold.ttf
- assets/fonts/NotoSans-hinted/NotoSansUI-Italic.ttf
- assets/fonts/NotoSans-hinted/NotoSansUI-Regular.ttf
- assets/images/add_disabled.svg
- assets/images/add_hovered.svg
- assets/images/add_normal.svg
- assets/images/add_pressed.svg
+
+ assets/fonts/NotoSans-hinted/NotoSans-BoldItalic.ttf
+ assets/fonts/NotoSans-hinted/NotoSans-Bold.ttf
+ assets/fonts/NotoSans-hinted/NotoSans-Italic.ttf
+ assets/fonts/NotoSans-hinted/NotoSans-Regular.ttf
+ assets/fonts/NotoSans-hinted/NotoSansUI-BoldItalic.ttf
+ assets/fonts/NotoSans-hinted/NotoSansUI-Bold.ttf
+ assets/fonts/NotoSans-hinted/NotoSansUI-Italic.ttf
+ assets/fonts/NotoSans-hinted/NotoSansUI-Regular.ttf
+ assets/images/add_disabled.svg
+ assets/images/add_hovered.svg
+ assets/images/add_normal.svg
+ assets/images/add_pressed.svg
assets/images/add_participant_hovered.svg
- assets/images/add_participant_normal.svg
- assets/images/add_participant_pressed.svg
- assets/images/admin_selected.svg
- assets/images/attachment_disabled.svg
- assets/images/attachment_hovered.svg
- assets/images/attachment_normal.svg
- assets/images/attachment_pressed.svg
- assets/images/auto_answer.svg
- assets/images/burger_menu_hovered.svg
- assets/images/burger_menu_light_hovered.svg
- assets/images/burger_menu_light_normal.svg
- assets/images/burger_menu_light_pressed.svg
- assets/images/burger_menu_normal.svg
- assets/images/burger_menu_pressed.svg
- assets/images/call_accept_hovered.svg
- assets/images/call_accept_normal.svg
- assets/images/call_accept_pressed.svg
- assets/images/call_chat_secure_hovered.svg
- assets/images/call_chat_secure_normal.svg
- assets/images/call_chat_secure_pressed.svg
- assets/images/call_chat_unsecure_hovered.svg
- assets/images/call_chat_unsecure_normal.svg
- assets/images/call_chat_unsecure_pressed.svg
- assets/images/call_hovered.svg
- assets/images/call_normal.svg
- assets/images/call_pressed.svg
- assets/images/call_quality_0.svg
- assets/images/call_quality_1.svg
- assets/images/call_quality_2.svg
- assets/images/call_quality_3.svg
- assets/images/call_sign_connected.svg
- assets/images/call_sign_ended.svg
- assets/images/call_sign_incoming.svg
- assets/images/call_sign_outgoing.svg
- assets/images/call_sign_paused.svg
- assets/images/camera_off_hovered.svg
- assets/images/camera_off_normal.svg
- assets/images/camera_off_pressed.svg
- assets/images/camera_off_updating.svg
- assets/images/camera_on_hovered.svg
- assets/images/camera_on_normal.svg
- assets/images/camera_on_pressed.svg
- assets/images/camera_on_updating.svg
- assets/images/camera.svg
- assets/images/cancel_hovered.svg
- assets/images/cancel_normal.svg
- assets/images/cancel_pressed.svg
- assets/images/chat_amount.svg
- assets/images/chat_count.svg
- assets/images/chat_delivered.svg
- assets/images/chat_error.svg
- assets/images/chat_hovered.svg
- assets/images/chat_is_composing_0.svg
- assets/images/chat_is_composing_1.svg
- assets/images/chat_is_composing_2.svg
- assets/images/chat_is_composing_3.svg
- assets/images/chat_micro.svg
- assets/images/chat_normal.svg
- assets/images/chat_pressed.svg
- assets/images/chat_read.svg
+ assets/images/add_participant_normal.svg
+ assets/images/add_participant_pressed.svg
+ assets/images/admin_selected.svg
+ assets/images/attachment_disabled.svg
+ assets/images/attachment_hovered.svg
+ assets/images/attachment_normal.svg
+ assets/images/attachment_pressed.svg
+ assets/images/auto_answer.svg
+ assets/images/burger_menu_hovered.svg
+ assets/images/burger_menu_light_hovered.svg
+ assets/images/burger_menu_light_normal.svg
+ assets/images/burger_menu_light_pressed.svg
+ assets/images/burger_menu_normal.svg
+ assets/images/burger_menu_pressed.svg
+ assets/images/call_accept_hovered.svg
+ assets/images/call_accept_normal.svg
+ assets/images/call_accept_pressed.svg
+ assets/images/call_chat_secure_hovered.svg
+ assets/images/call_chat_secure_normal.svg
+ assets/images/call_chat_secure_pressed.svg
+ assets/images/call_chat_unsecure_hovered.svg
+ assets/images/call_chat_unsecure_normal.svg
+ assets/images/call_chat_unsecure_pressed.svg
+ assets/images/call_hovered.svg
+ assets/images/call_normal.svg
+ assets/images/call_pressed.svg
+ assets/images/call_quality_0.svg
+ assets/images/call_quality_1.svg
+ assets/images/call_quality_2.svg
+ assets/images/call_quality_3.svg
+ assets/images/call_sign_connected.svg
+ assets/images/call_sign_ended.svg
+ assets/images/call_sign_incoming.svg
+ assets/images/call_sign_outgoing.svg
+ assets/images/call_sign_paused.svg
+ assets/images/camera_off_hovered.svg
+ assets/images/camera_off_normal.svg
+ assets/images/camera_off_pressed.svg
+ assets/images/camera_off_updating.svg
+ assets/images/camera_on_hovered.svg
+ assets/images/camera_on_normal.svg
+ assets/images/camera_on_pressed.svg
+ assets/images/camera_on_updating.svg
+ assets/images/camera.svg
+ assets/images/cancel_hovered.svg
+ assets/images/cancel_normal.svg
+ assets/images/cancel_pressed.svg
+ assets/images/chat_amount.svg
+ assets/images/chat_count.svg
+ assets/images/chat_delivered.svg
+ assets/images/chat_error.svg
+ assets/images/chat_hovered.svg
+ assets/images/chat_is_composing_0.svg
+ assets/images/chat_is_composing_1.svg
+ assets/images/chat_is_composing_2.svg
+ assets/images/chat_is_composing_3.svg
+ assets/images/chat_micro.svg
+ assets/images/chat_normal.svg
+ assets/images/chat_pressed.svg
+ assets/images/chat_read.svg
assets/images/chat_room.svg
assets/images/close.svg
- assets/images/collapse.svg
+ assets/images/collapse.svg
assets/images/collapsed.svg
assets/images/conferences_normal.svg
assets/images/conferences_selected.svg
- assets/images/contact_add_hovered.svg
- assets/images/contact_add_normal.svg
- assets/images/contact_add_pressed.svg
- assets/images/contact_add.svg
- assets/images/contact_card_photo_disabled.svg
- assets/images/contact_card_photo_hovered.svg
- assets/images/contact_card_photo_normal.svg
- assets/images/contact_card_photo_pressed.svg
- assets/images/contact_edit_hovered.svg
- assets/images/contact_edit_normal.svg
- assets/images/contact_edit_pressed.svg
- assets/images/contact_disabled.svg
- assets/images/contact_normal.svg
- assets/images/contact_selected.svg
+ assets/images/contact_add_hovered.svg
+ assets/images/contact_add_normal.svg
+ assets/images/contact_add_pressed.svg
+ assets/images/contact_add.svg
+ assets/images/contact_card_photo_disabled.svg
+ assets/images/contact_card_photo_hovered.svg
+ assets/images/contact_card_photo_normal.svg
+ assets/images/contact_card_photo_pressed.svg
+ assets/images/contact_edit_hovered.svg
+ assets/images/contact_edit_normal.svg
+ assets/images/contact_edit_pressed.svg
+ assets/images/contact_disabled.svg
+ assets/images/contact_normal.svg
+ assets/images/contact_selected.svg
assets/images/current_account_status_online.svg
assets/images/current_account_status_offline.svg
assets/images/current_account_status_dnd.svg
assets/images/current_account_status_busy.svg
- assets/images/declined_incoming_call.svg
- assets/images/declined_outgoing_call.svg
- assets/images/delete_hovered.svg
- assets/images/delete_normal.svg
- assets/images/delete_pressed.svg
- assets/images/download.svg
- assets/images/drop_down.svg
- assets/images/edit_hovered.svg
- assets/images/edit_normal.svg
- assets/images/edit_pressed.svg
- assets/images/ended_call.svg
+ assets/images/declined_incoming_call.svg
+ assets/images/declined_outgoing_call.svg
+ assets/images/delete_hovered.svg
+ assets/images/delete_normal.svg
+ assets/images/delete_pressed.svg
+ assets/images/download.svg
+ assets/images/drop_down.svg
+ assets/images/edit_hovered.svg
+ assets/images/edit_normal.svg
+ assets/images/edit_pressed.svg
+ assets/images/ended_call.svg
assets/images/expanded.svg
- assets/images/file_hovered.svg
- assets/images/file_normal.svg
- assets/images/file_pressed.svg
- assets/images/file_sign.svg
- assets/images/filter.svg
- assets/images/folder_hovered.svg
- assets/images/folder_normal.svg
- assets/images/folder_pressed.svg
- assets/images/fullscreen_hovered.svg
- assets/images/fullscreen_normal.svg
- assets/images/fullscreen_pressed.svg
- assets/images/generic_error_hovered.svg
- assets/images/generic_error_normal.svg
- assets/images/generic_error_pressed.svg
- assets/images/generic_error.svg
- assets/images/group_chat_hovered.svg
- assets/images/group_chat_normal.svg
- assets/images/group_chat_pressed.svg
- assets/images/hangup_hovered.svg
- assets/images/hangup_normal.svg
- assets/images/hangup_pressed.svg
- assets/images/history_hovered.svg
- assets/images/history_normal.svg
- assets/images/history_pressed.svg
- assets/images/history.svg
- assets/images/home_account_assistant.svg
- assets/images/home_invite_friends.svg
- assets/images/home_normal.svg
- assets/images/home_pressed.svg
+ assets/images/file_hovered.svg
+ assets/images/file_normal.svg
+ assets/images/file_pressed.svg
+ assets/images/file_sign.svg
+ assets/images/filter.svg
+ assets/images/folder_hovered.svg
+ assets/images/folder_normal.svg
+ assets/images/folder_pressed.svg
+ assets/images/fullscreen_hovered.svg
+ assets/images/fullscreen_normal.svg
+ assets/images/fullscreen_pressed.svg
+ assets/images/generic_error_hovered.svg
+ assets/images/generic_error_normal.svg
+ assets/images/generic_error_pressed.svg
+ assets/images/generic_error.svg
+ assets/images/group_chat_hovered.svg
+ assets/images/group_chat_normal.svg
+ assets/images/group_chat_pressed.svg
+ assets/images/hangup_hovered.svg
+ assets/images/hangup_normal.svg
+ assets/images/hangup_pressed.svg
+ assets/images/history_hovered.svg
+ assets/images/history_normal.svg
+ assets/images/history_pressed.svg
+ assets/images/history.svg
+ assets/images/home_account_assistant.svg
+ assets/images/home_invite_friends.svg
+ assets/images/home_normal.svg
+ assets/images/home_pressed.svg
assets/images/home_hovered.svg
assets/images/home_disabled.svg
- assets/images/home_use_linphone.svg
- assets/images/incoming_call.svg
- assets/images/led_green.svg
- assets/images/led_orange.svg
- assets/images/led_red.svg
- assets/images/led_white.svg
- assets/images/menu_copy_text.svg
- assets/images/menu_delete.svg
- assets/images/menu_imdn_info.svg
+ assets/images/home_use_linphone.svg
+ assets/images/incoming_call.svg
+ assets/images/led_green.svg
+ assets/images/led_orange.svg
+ assets/images/led_red.svg
+ assets/images/led_white.svg
+ assets/images/menu_copy_text.svg
+ assets/images/menu_delete.svg
+ assets/images/menu_imdn_info.svg
assets/images/menu_vdots_normal.svg
assets/images/menu_vdots_hovered.svg
assets/images/menu_vdots_pressed.svg
@@ -158,412 +158,411 @@
assets/images/menu_devices_selected.svg
assets/images/menu_ephemeral.svg
assets/images/menu_ephemeral_selected.svg
- assets/images/message_sign.svg
- assets/images/micro_off_hovered.svg
- assets/images/micro_off_normal.svg
- assets/images/micro_off_pressed.svg
- assets/images/micro_on_hovered.svg
- assets/images/micro_on_normal.svg
- assets/images/micro_on_pressed.svg
- assets/images/micro.svg
- assets/images/missed_incoming_call.svg
- assets/images/missed_outgoing_call.svg
- assets/images/new_call_hovered.svg
- assets/images/new_call_normal.svg
- assets/images/new_call_pressed.svg
+ assets/images/message_sign.svg
+ assets/images/micro_off_hovered.svg
+ assets/images/micro_off_normal.svg
+ assets/images/micro_off_pressed.svg
+ assets/images/micro_on_hovered.svg
+ assets/images/micro_on_normal.svg
+ assets/images/micro_on_pressed.svg
+ assets/images/micro.svg
+ assets/images/missed_incoming_call.svg
+ assets/images/missed_outgoing_call.svg
+ assets/images/new_call_hovered.svg
+ assets/images/new_call_normal.svg
+ assets/images/new_call_pressed.svg
assets/images/new_chat_hovered.svg
- assets/images/new_chat_normal.svg
- assets/images/new_chat_pressed.svg
+ assets/images/new_chat_normal.svg
+ assets/images/new_chat_pressed.svg
assets/images/new_chat_group_hovered.svg
- assets/images/new_chat_group_normal.svg
- assets/images/new_chat_group_pressed.svg
- assets/images/new_conference_hovered.svg
- assets/images/new_conference_normal.svg
- assets/images/new_conference_pressed.svg
- assets/images/options_hovered.svg
- assets/images/options_normal.svg
- assets/images/options_pressed.svg
- assets/images/outgoing_call.svg
- assets/images/panel_arrow.svg
+ assets/images/new_chat_group_normal.svg
+ assets/images/new_chat_group_pressed.svg
+ assets/images/new_conference_hovered.svg
+ assets/images/new_conference_normal.svg
+ assets/images/new_conference_pressed.svg
+ assets/images/options_hovered.svg
+ assets/images/options_normal.svg
+ assets/images/options_pressed.svg
+ assets/images/outgoing_call.svg
+ assets/images/panel_arrow.svg
assets/images/panel_hidden_normal.svg
assets/images/panel_hidden_hovered.svg
assets/images/panel_hidden_pressed.svg
assets/images/panel_shown_normal.svg
assets/images/panel_shown_hovered.svg
assets/images/panel_shown_pressed.svg
- assets/images/pause_off_hovered.svg
- assets/images/pause_off_normal.svg
- assets/images/pause_off_pressed.svg
- assets/images/pause_off_updating.svg
- assets/images/pause_on_hovered.svg
- assets/images/pause_on_normal.svg
- assets/images/pause_on_pressed.svg
- assets/images/pause_on_updating.svg
+ assets/images/pause_off_hovered.svg
+ assets/images/pause_off_normal.svg
+ assets/images/pause_off_pressed.svg
+ assets/images/pause_off_updating.svg
+ assets/images/pause_on_hovered.svg
+ assets/images/pause_on_normal.svg
+ assets/images/pause_on_pressed.svg
+ assets/images/pause_on_updating.svg
assets/images/plus_disabled.svg
- assets/images/plus_hovered.svg
- assets/images/plus_normal.svg
- assets/images/plus_pressed.svg
- assets/images/recording_sign.svg
- assets/images/record_off.svg
- assets/images/record_on.svg
+ assets/images/plus_hovered.svg
+ assets/images/plus_normal.svg
+ assets/images/plus_pressed.svg
+ assets/images/recording_sign.svg
+ assets/images/record_off.svg
+ assets/images/record_on.svg
assets/images/remove_participant_hovered.svg
- assets/images/remove_participant_normal.svg
- assets/images/remove_participant_pressed.svg
- assets/images/screenshot_hovered.svg
- assets/images/screenshot_normal.svg
- assets/images/screenshot_pressed.svg
- assets/images/search.svg
+ assets/images/remove_participant_normal.svg
+ assets/images/remove_participant_pressed.svg
+ assets/images/screenshot_hovered.svg
+ assets/images/screenshot_normal.svg
+ assets/images/screenshot_pressed.svg
+ assets/images/search.svg
assets/images/secure_level_unsafe.svg
assets/images/secure_level_1.svg
assets/images/secure_level_2.svg
assets/images/secure_off.svg
assets/images/secure_on.svg
assets/images/send.svg
- assets/images/settings_advanced_normal.svg
- assets/images/settings_advanced_selected.svg
- assets/images/settings_audio_normal.svg
- assets/images/settings_audio_selected.svg
- assets/images/settings_call_normal.svg
- assets/images/settings_call_selected.svg
- assets/images/settings_network_normal.svg
- assets/images/settings_network_selected.svg
- assets/images/settings_sip_accounts_normal.svg
- assets/images/settings_sip_accounts_selected.svg
- assets/images/settings_video_normal.svg
- assets/images/settings_video_selected.svg
- assets/images/snapshot_sign.svg
- assets/images/speaker_off_hovered.svg
- assets/images/speaker_off_normal.svg
- assets/images/speaker_off_pressed.svg
- assets/images/speaker_on_hovered.svg
- assets/images/speaker_on_normal.svg
- assets/images/speaker_on_pressed.svg
- assets/images/speaker.svg
+ assets/images/settings_advanced_normal.svg
+ assets/images/settings_advanced_selected.svg
+ assets/images/settings_audio_normal.svg
+ assets/images/settings_audio_selected.svg
+ assets/images/settings_call_normal.svg
+ assets/images/settings_call_selected.svg
+ assets/images/settings_network_normal.svg
+ assets/images/settings_network_selected.svg
+ assets/images/settings_sip_accounts_normal.svg
+ assets/images/settings_sip_accounts_selected.svg
+ assets/images/settings_video_normal.svg
+ assets/images/settings_video_selected.svg
+ assets/images/snapshot_sign.svg
+ assets/images/speaker_off_hovered.svg
+ assets/images/speaker_off_normal.svg
+ assets/images/speaker_off_pressed.svg
+ assets/images/speaker_on_hovered.svg
+ assets/images/speaker_on_normal.svg
+ assets/images/speaker_on_pressed.svg
+ assets/images/speaker.svg
assets/images/timer.svg
- assets/images/tel_keypad_hovered.svg
- assets/images/tel_keypad_normal.svg
- assets/images/tel_keypad_pressed.svg
- assets/images/timeline_history.svg
+ assets/images/tel_keypad_hovered.svg
+ assets/images/tel_keypad_normal.svg
+ assets/images/tel_keypad_pressed.svg
+ assets/images/timeline_history.svg
assets/images/timeline_filter.svg
assets/images/timeline_search.svg
assets/images/timeline_close.svg
- assets/images/tooltip_arrow_bottom.svg
- assets/images/tooltip_arrow_left.svg
- assets/images/tooltip_arrow_right.svg
- assets/images/tooltip_arrow_top.svg
- assets/images/transfer_hovered.svg
- assets/images/transfer_normal.svg
- assets/images/transfer_pressed.svg
- assets/images/update_sign.svg
- assets/images/video_call_accept_hovered.svg
- assets/images/video_call_accept_normal.svg
- assets/images/video_call_accept_pressed.svg
- assets/images/video_call_hovered.svg
- assets/images/video_call_normal.svg
- assets/images/video_call_pressed.svg
- assets/images/warning.svg
- ui/modules/Common/Animations/BusyIndicator.qml
- ui/modules/Common/Constants/Constants.qml
- ui/modules/Common/Dialog/ConfirmDialog.qml
- ui/modules/Common/Dialog/DialogDescription.qml
- ui/modules/Common/Dialog/DialogPlus.qml
+ assets/images/tooltip_arrow_bottom.svg
+ assets/images/tooltip_arrow_left.svg
+ assets/images/tooltip_arrow_right.svg
+ assets/images/tooltip_arrow_top.svg
+ assets/images/transfer_hovered.svg
+ assets/images/transfer_normal.svg
+ assets/images/transfer_pressed.svg
+ assets/images/update_sign.svg
+ assets/images/video_call_accept_hovered.svg
+ assets/images/video_call_accept_normal.svg
+ assets/images/video_call_accept_pressed.svg
+ assets/images/video_call_hovered.svg
+ assets/images/video_call_normal.svg
+ assets/images/video_call_pressed.svg
+ assets/images/warning.svg
+ ui/modules/Common/Animations/BusyIndicator.qml
+ ui/modules/Common/Constants/Constants.qml
+ ui/modules/Common/Dialog/ConfirmDialog.qml
+ ui/modules/Common/Dialog/DialogDescription.qml
+ ui/modules/Common/Dialog/DialogPlus.qml
ui/modules/Common/Dialog/DialogTitle.qml
- ui/modules/Common/Form/ActionBar.qml
- ui/modules/Common/Form/ActionButton.qml
- ui/modules/Common/Form/ActionSwitch.qml
- ui/modules/Common/Form/Buttons/AbstractTextButton.qml
- ui/modules/Common/Form/Buttons/ExclusiveButtons.qml
- ui/modules/Common/Form/Buttons/FileChooserButton.qml
- ui/modules/Common/Form/Buttons/SmallButton.qml
- ui/modules/Common/Form/Buttons/TextButtonA.qml
- ui/modules/Common/Form/Buttons/TextButtonB.qml
- ui/modules/Common/Form/CheckBoxText.qml
- ui/modules/Common/Form/ComboBox.js
- ui/modules/Common/Form/ComboBox.qml
- ui/modules/Common/Form/CommonItemDelegate.qml
- ui/modules/Common/Form/DroppableTextArea.qml
- ui/modules/Common/Form/Fields/HexField.qml
- ui/modules/Common/Form/Fields/NumericField.qml
- ui/modules/Common/Form/Fields/PasswordField.qml
- ui/modules/Common/Form/Fields/PortField.qml
- ui/modules/Common/Form/Fields/ScrollableListViewField.qml
- ui/modules/Common/Form/Fields/TextAreaField.qml
- ui/modules/Common/Form/Fields/TextField.qml
- ui/modules/Common/Form/ListForm.js
- ui/modules/Common/Form/ListForm.qml
- ui/modules/Common/Form/ListItemSelector.js
- ui/modules/Common/Form/ListItemSelector.qml
- ui/modules/Common/Form/MouseArea.qml
- ui/modules/Common/Form/Placements/FormEmptyLine.qml
- ui/modules/Common/Form/Placements/FormGroup.qml
- ui/modules/Common/Form/Placements/FormHGroup.qml
- ui/modules/Common/Form/Placements/FormLine.qml
- ui/modules/Common/Form/Placements/Form.qml
- ui/modules/Common/Form/Placements/FormTableEntry.qml
- ui/modules/Common/Form/Placements/FormTableLine.qml
- ui/modules/Common/Form/Placements/FormTable.qml
- ui/modules/Common/Form/Placements/FormVGroup.qml
- ui/modules/Common/Form/SearchBox.qml
- ui/modules/Common/Form/Slider.qml
- ui/modules/Common/Form/StaticListForm.qml
- ui/modules/Common/Form/Switch.qml
- ui/modules/Common/Form/Tab/TabBar.qml
- ui/modules/Common/Form/Tab/TabButton.qml
- ui/modules/Common/Form/Tab/TabContainer.qml
- ui/modules/Common/Form/TransparentTextInput.qml
- ui/modules/Common/Helpers/DragBox.qml
- ui/modules/Common/Helpers/InvertedMouseArea.qml
- ui/modules/Common/Image/Icon.qml
- ui/modules/Common/Image/RoundedImage.qml
- ui/modules/Common/Indicators/VuMeter.qml
- ui/modules/Common/Menus/ApplicationMenuEntry.qml
- ui/modules/Common/Menus/ApplicationMenu.qml
- ui/modules/Common/Menus/DropDownDynamicMenu.qml
- ui/modules/Common/Menus/DropDownStaticMenuEntry.qml
- ui/modules/Common/Menus/DropDownStaticMenu.qml
- ui/modules/Common/Menus/MenuItem.qml
- ui/modules/Common/Menus/Menu.qml
- ui/modules/Common/Misc/Borders.qml
- ui/modules/Common/Misc/ForceScrollBar.qml
- ui/modules/Common/Misc/Paned.qml
- ui/modules/Common/Popup/DesktopPopup.qml
- ui/modules/Common/Popup/Popup.qml
- ui/modules/Common/Popup/PopupShadow.qml
- ui/modules/Common/qmldir
- ui/modules/Common/Styles/Animations/BusyIndicatorStyle.qml
- ui/modules/Common/Styles/Dialog/DialogStyle.qml
- ui/modules/Common/Styles/Form/ActionBarStyle.qml
- ui/modules/Common/Styles/Form/Buttons/AbstractTextButtonStyle.qml
- ui/modules/Common/Styles/Form/Buttons/ExclusiveButtonsStyle.qml
- ui/modules/Common/Styles/Form/Buttons/FileChooserButtonStyle.qml
- ui/modules/Common/Styles/Form/Buttons/SmallButtonStyle.qml
- ui/modules/Common/Styles/Form/Buttons/TextButtonAStyle.qml
- ui/modules/Common/Styles/Form/Buttons/TextButtonBStyle.qml
- ui/modules/Common/Styles/Form/CheckBoxTextStyle.qml
- ui/modules/Common/Styles/Form/ComboBoxStyle.qml
- ui/modules/Common/Styles/Form/CommonItemDelegateStyle.qml
- ui/modules/Common/Styles/Form/DroppableTextAreaStyle.qml
- ui/modules/Common/Styles/Form/Fields/NumericFieldStyle.qml
- ui/modules/Common/Styles/Form/Fields/TextAreaFieldStyle.qml
- ui/modules/Common/Styles/Form/Fields/TextFieldStyle.qml
- ui/modules/Common/Styles/Form/ListFormStyle.qml
- ui/modules/Common/Styles/Form/Placements/FormHGroupStyle.qml
- ui/modules/Common/Styles/Form/Placements/FormLineStyle.qml
- ui/modules/Common/Styles/Form/Placements/FormStyle.qml
- ui/modules/Common/Styles/Form/Placements/FormTableLineStyle.qml
- ui/modules/Common/Styles/Form/Placements/FormTableStyle.qml
- ui/modules/Common/Styles/Form/Placements/FormVGroupStyle.qml
- ui/modules/Common/Styles/Form/SearchBoxStyle.qml
- ui/modules/Common/Styles/Form/SliderStyle.qml
- ui/modules/Common/Styles/Form/SwitchStyle.qml
- ui/modules/Common/Styles/Form/Tab/TabButtonStyle.qml
- ui/modules/Common/Styles/Form/Tab/TabContainerStyle.qml
- ui/modules/Common/Styles/Form/TransparentTextInputStyle.qml
- ui/modules/Common/Styles/Indicators/VuMeterStyle.qml
- ui/modules/Common/Styles/Menus/ApplicationMenuStyle.qml
- ui/modules/Common/Styles/Menus/DropDownStaticMenuStyle.qml
- ui/modules/Common/Styles/Menus/MenuItemStyle.qml
- ui/modules/Common/Styles/Menus/MenuStyle.qml
- ui/modules/Common/Styles/Misc/ForceScrollBarStyle.qml
- ui/modules/Common/Styles/Misc/PanedStyle.qml
- ui/modules/Common/Styles/Popup/PopupStyle.qml
- ui/modules/Common/Styles/qmldir
- ui/modules/Common/Styles/Tooltip/TooltipStyle.qml
- ui/modules/Common/Styles/Window/WindowStyle.qml
- ui/modules/Common/Tooltip/TooltipArea.qml
- ui/modules/Common/Tooltip/Tooltip.qml
- ui/modules/Common/View/ScrollableListView.qml
- ui/modules/Common/Window/ApplicationWindow.qml
- ui/modules/Common/Window/VirtualWindow.qml
- ui/modules/Common/Window/Window.js
- ui/modules/Common/Window/Window.qml
- ui/modules/Konami/Konami.qml
- ui/modules/Konami/qmldir
- ui/modules/Linphone/Account/AccountStatus.qml
- ui/modules/Linphone/Blocks/CardBlock.qml
- ui/modules/Linphone/Blocks/RequestBlock.qml
- ui/modules/Linphone/Calls/CallControls.qml
- ui/modules/Linphone/Calls/Calls.js
- ui/modules/Linphone/Calls/Calls.qml
- ui/modules/Linphone/Calls/CallStatistics.qml
- ui/modules/Linphone/Calls/ConferenceControls.qml
- ui/modules/Linphone/Chat/Chat.js
- ui/modules/Linphone/Chat/Chat.qml
- ui/modules/Linphone/Chat/Event.qml
- ui/modules/Linphone/Chat/FileMessage.qml
- ui/modules/Linphone/Chat/IncomingMessage.qml
- ui/modules/Linphone/Chat/Message.js
- ui/modules/Linphone/Chat/Message.qml
+ ui/modules/Common/Form/ActionBar.qml
+ ui/modules/Common/Form/ActionButton.qml
+ ui/modules/Common/Form/ActionSwitch.qml
+ ui/modules/Common/Form/Buttons/AbstractTextButton.qml
+ ui/modules/Common/Form/Buttons/ExclusiveButtons.qml
+ ui/modules/Common/Form/Buttons/FileChooserButton.qml
+ ui/modules/Common/Form/Buttons/SmallButton.qml
+ ui/modules/Common/Form/Buttons/TextButtonA.qml
+ ui/modules/Common/Form/Buttons/TextButtonB.qml
+ ui/modules/Common/Form/CheckBoxText.qml
+ ui/modules/Common/Form/ComboBox.js
+ ui/modules/Common/Form/ComboBox.qml
+ ui/modules/Common/Form/CommonItemDelegate.qml
+ ui/modules/Common/Form/DroppableTextArea.qml
+ ui/modules/Common/Form/Fields/HexField.qml
+ ui/modules/Common/Form/Fields/NumericField.qml
+ ui/modules/Common/Form/Fields/PasswordField.qml
+ ui/modules/Common/Form/Fields/PortField.qml
+ ui/modules/Common/Form/Fields/ScrollableListViewField.qml
+ ui/modules/Common/Form/Fields/TextAreaField.qml
+ ui/modules/Common/Form/Fields/TextField.qml
+ ui/modules/Common/Form/ListForm.js
+ ui/modules/Common/Form/ListForm.qml
+ ui/modules/Common/Form/ListItemSelector.js
+ ui/modules/Common/Form/ListItemSelector.qml
+ ui/modules/Common/Form/MouseArea.qml
+ ui/modules/Common/Form/Placements/FormEmptyLine.qml
+ ui/modules/Common/Form/Placements/FormGroup.qml
+ ui/modules/Common/Form/Placements/FormHGroup.qml
+ ui/modules/Common/Form/Placements/FormLine.qml
+ ui/modules/Common/Form/Placements/Form.qml
+ ui/modules/Common/Form/Placements/FormTableEntry.qml
+ ui/modules/Common/Form/Placements/FormTableLine.qml
+ ui/modules/Common/Form/Placements/FormTable.qml
+ ui/modules/Common/Form/Placements/FormVGroup.qml
+ ui/modules/Common/Form/SearchBox.qml
+ ui/modules/Common/Form/Slider.qml
+ ui/modules/Common/Form/StaticListForm.qml
+ ui/modules/Common/Form/Switch.qml
+ ui/modules/Common/Form/Tab/TabBar.qml
+ ui/modules/Common/Form/Tab/TabButton.qml
+ ui/modules/Common/Form/Tab/TabContainer.qml
+ ui/modules/Common/Form/TransparentTextInput.qml
+ ui/modules/Common/Helpers/DragBox.qml
+ ui/modules/Common/Helpers/InvertedMouseArea.qml
+ ui/modules/Common/Image/Icon.qml
+ ui/modules/Common/Image/RoundedImage.qml
+ ui/modules/Common/Indicators/VuMeter.qml
+ ui/modules/Common/Menus/ApplicationMenuEntry.qml
+ ui/modules/Common/Menus/ApplicationMenu.qml
+ ui/modules/Common/Menus/DropDownDynamicMenu.qml
+ ui/modules/Common/Menus/DropDownStaticMenuEntry.qml
+ ui/modules/Common/Menus/DropDownStaticMenu.qml
+ ui/modules/Common/Menus/MenuItem.qml
+ ui/modules/Common/Menus/Menu.qml
+ ui/modules/Common/Misc/Borders.qml
+ ui/modules/Common/Misc/ForceScrollBar.qml
+ ui/modules/Common/Misc/Paned.qml
+ ui/modules/Common/Popup/DesktopPopup.qml
+ ui/modules/Common/Popup/Popup.qml
+ ui/modules/Common/Popup/PopupShadow.qml
+ ui/modules/Common/qmldir
+ ui/modules/Common/Styles/Animations/BusyIndicatorStyle.qml
+ ui/modules/Common/Styles/Dialog/DialogStyle.qml
+ ui/modules/Common/Styles/Form/ActionBarStyle.qml
+ ui/modules/Common/Styles/Form/Buttons/AbstractTextButtonStyle.qml
+ ui/modules/Common/Styles/Form/Buttons/ExclusiveButtonsStyle.qml
+ ui/modules/Common/Styles/Form/Buttons/FileChooserButtonStyle.qml
+ ui/modules/Common/Styles/Form/Buttons/SmallButtonStyle.qml
+ ui/modules/Common/Styles/Form/Buttons/TextButtonAStyle.qml
+ ui/modules/Common/Styles/Form/Buttons/TextButtonBStyle.qml
+ ui/modules/Common/Styles/Form/CheckBoxTextStyle.qml
+ ui/modules/Common/Styles/Form/ComboBoxStyle.qml
+ ui/modules/Common/Styles/Form/CommonItemDelegateStyle.qml
+ ui/modules/Common/Styles/Form/DroppableTextAreaStyle.qml
+ ui/modules/Common/Styles/Form/Fields/NumericFieldStyle.qml
+ ui/modules/Common/Styles/Form/Fields/TextAreaFieldStyle.qml
+ ui/modules/Common/Styles/Form/Fields/TextFieldStyle.qml
+ ui/modules/Common/Styles/Form/ListFormStyle.qml
+ ui/modules/Common/Styles/Form/Placements/FormHGroupStyle.qml
+ ui/modules/Common/Styles/Form/Placements/FormLineStyle.qml
+ ui/modules/Common/Styles/Form/Placements/FormStyle.qml
+ ui/modules/Common/Styles/Form/Placements/FormTableLineStyle.qml
+ ui/modules/Common/Styles/Form/Placements/FormTableStyle.qml
+ ui/modules/Common/Styles/Form/Placements/FormVGroupStyle.qml
+ ui/modules/Common/Styles/Form/SearchBoxStyle.qml
+ ui/modules/Common/Styles/Form/SliderStyle.qml
+ ui/modules/Common/Styles/Form/SwitchStyle.qml
+ ui/modules/Common/Styles/Form/Tab/TabButtonStyle.qml
+ ui/modules/Common/Styles/Form/Tab/TabContainerStyle.qml
+ ui/modules/Common/Styles/Form/TransparentTextInputStyle.qml
+ ui/modules/Common/Styles/Indicators/VuMeterStyle.qml
+ ui/modules/Common/Styles/Menus/ApplicationMenuStyle.qml
+ ui/modules/Common/Styles/Menus/DropDownStaticMenuStyle.qml
+ ui/modules/Common/Styles/Menus/MenuItemStyle.qml
+ ui/modules/Common/Styles/Menus/MenuStyle.qml
+ ui/modules/Common/Styles/Misc/ForceScrollBarStyle.qml
+ ui/modules/Common/Styles/Misc/PanedStyle.qml
+ ui/modules/Common/Styles/Popup/PopupStyle.qml
+ ui/modules/Common/Styles/qmldir
+ ui/modules/Common/Styles/Tooltip/TooltipStyle.qml
+ ui/modules/Common/Styles/Window/WindowStyle.qml
+ ui/modules/Common/Tooltip/TooltipArea.qml
+ ui/modules/Common/Tooltip/Tooltip.qml
+ ui/modules/Common/View/ScrollableListView.qml
+ ui/modules/Common/Window/ApplicationWindow.qml
+ ui/modules/Common/Window/VirtualWindow.qml
+ ui/modules/Common/Window/Window.js
+ ui/modules/Common/Window/Window.qml
+ ui/modules/Konami/Konami.qml
+ ui/modules/Konami/qmldir
+ ui/modules/Linphone/Account/AccountStatus.qml
+ ui/modules/Linphone/Blocks/CardBlock.qml
+ ui/modules/Linphone/Blocks/RequestBlock.qml
+ ui/modules/Linphone/Calls/CallControls.qml
+ ui/modules/Linphone/Calls/Calls.js
+ ui/modules/Linphone/Calls/Calls.qml
+ ui/modules/Linphone/Calls/CallStatistics.qml
+ ui/modules/Linphone/Calls/ConferenceControls.qml
+ ui/modules/Linphone/Chat/Chat.js
+ ui/modules/Linphone/Chat/Chat.qml
+ ui/modules/Linphone/Chat/Event.qml
+ ui/modules/Linphone/Chat/FileMessage.qml
+ ui/modules/Linphone/Chat/IncomingMessage.qml
+ ui/modules/Linphone/Chat/Message.js
+ ui/modules/Linphone/Chat/Message.qml
ui/modules/Linphone/Chat/Notice.qml
- ui/modules/Linphone/Chat/OutgoingMessage.qml
- ui/modules/Linphone/Codecs/CodecAttribute.qml
- ui/modules/Linphone/Codecs/CodecLegend.qml
- ui/modules/Linphone/Codecs/CodecsViewer.qml
- ui/modules/Linphone/Contact/Avatar.qml
- ui/modules/Linphone/Contact/ContactDescription.qml
- ui/modules/Linphone/Contact/ContactMessageCounter.qml
- ui/modules/Linphone/Contact/Contact.qml
- ui/modules/Linphone/Dialog/OnlineInstallerDialog.qml
- ui/modules/Linphone/History/History.qml
- ui/modules/Linphone/History/History.js
- ui/modules/Linphone/History/Event.qml
- ui/modules/Linphone/Menus/SipAddressesMenu.qml
- ui/modules/Linphone/Misc/MessageCounter.qml
- ui/modules/Linphone/Notifications/NotificationBasic.qml
- ui/modules/Linphone/Notifications/NotificationNewVersionAvailable.qml
- ui/modules/Linphone/Notifications/Notification.qml
- ui/modules/Linphone/Notifications/NotificationReceivedCall.qml
- ui/modules/Linphone/Notifications/NotificationReceivedFileMessage.qml
- ui/modules/Linphone/Notifications/NotificationReceivedMessage.qml
- ui/modules/Linphone/Notifications/NotificationRecordingCompleted.qml
- ui/modules/Linphone/Notifications/NotificationSnapshotWasTaken.qml
- ui/modules/Linphone/Presence/PresenceLevel.qml
- ui/modules/Linphone/qmldir
- ui/modules/Linphone/SmartSearchBar/SmartSearchBar.qml
- ui/modules/Linphone/Styles/Account/AccountStatusStyle.qml
- ui/modules/Linphone/Styles/Blocks/CardBlockStyle.qml
- ui/modules/Linphone/Styles/Blocks/RequestBlockStyle.qml
- ui/modules/Linphone/Styles/Calls/CallControlsStyle.qml
- ui/modules/Linphone/Styles/Calls/CallsStyle.qml
- ui/modules/Linphone/Styles/Calls/CallStatisticsStyle.qml
- ui/modules/Linphone/Styles/Calls/ConferenceControlsStyle.qml
- ui/modules/Linphone/Styles/Chat/ChatStyle.qml
- ui/modules/Linphone/Styles/Codecs/CodecsViewerStyle.qml
- ui/modules/Linphone/Styles/Contact/AvatarStyle.qml
- ui/modules/Linphone/Styles/Contact/ContactDescriptionStyle.qml
- ui/modules/Linphone/Styles/Contact/ContactMessageCounterStyle.qml
- ui/modules/Linphone/Styles/Contact/ContactStyle.qml
- ui/modules/Linphone/Styles/Dialog/OnlineInstallerDialogStyle.qml
- ui/modules/Linphone/Styles/History/HistoryStyle.qml
- ui/modules/Linphone/Styles/Menus/SipAddressesMenuStyle.qml
- ui/modules/Linphone/Styles/Misc/MessageCounterStyle.qml
- ui/modules/Linphone/Styles/Notifications/NotificationBasicStyle.qml
- ui/modules/Linphone/Styles/Notifications/NotificationReceivedCallStyle.qml
- ui/modules/Linphone/Styles/Notifications/NotificationReceivedFileMessageStyle.qml
- ui/modules/Linphone/Styles/Notifications/NotificationReceivedMessageStyle.qml
- ui/modules/Linphone/Styles/Notifications/NotificationStyle.qml
- ui/modules/Linphone/Styles/qmldir
- ui/modules/Linphone/Styles/TelKeypad/TelKeypadStyle.qml
- ui/modules/Linphone/Styles/Timeline/TimelineStyle.qml
- ui/modules/Linphone/Styles/View/SipAddressesViewStyle.qml
- ui/modules/Linphone/Styles/View/ParticipantsViewStyle.qml
- ui/modules/Linphone/TelKeypad/TelKeypadButton.qml
- ui/modules/Linphone/TelKeypad/TelKeypad.js
- ui/modules/Linphone/TelKeypad/TelKeypad.qml
- ui/modules/Linphone/Timeline/Timeline.js
- ui/modules/Linphone/Timeline/Timeline.qml
+ ui/modules/Linphone/Chat/OutgoingMessage.qml
+ ui/modules/Linphone/Codecs/CodecAttribute.qml
+ ui/modules/Linphone/Codecs/CodecLegend.qml
+ ui/modules/Linphone/Codecs/CodecsViewer.qml
+ ui/modules/Linphone/Contact/Avatar.qml
+ ui/modules/Linphone/Contact/ContactDescription.qml
+ ui/modules/Linphone/Contact/ContactMessageCounter.qml
+ ui/modules/Linphone/Contact/Contact.qml
+ ui/modules/Linphone/Dialog/OnlineInstallerDialog.qml
+ ui/modules/Linphone/History/History.qml
+ ui/modules/Linphone/History/History.js
+ ui/modules/Linphone/History/Event.qml
+ ui/modules/Linphone/Menus/SipAddressesMenu.qml
+ ui/modules/Linphone/Misc/MessageCounter.qml
+ ui/modules/Linphone/Notifications/NotificationBasic.qml
+ ui/modules/Linphone/Notifications/NotificationNewVersionAvailable.qml
+ ui/modules/Linphone/Notifications/Notification.qml
+ ui/modules/Linphone/Notifications/NotificationReceivedCall.qml
+ ui/modules/Linphone/Notifications/NotificationReceivedFileMessage.qml
+ ui/modules/Linphone/Notifications/NotificationReceivedMessage.qml
+ ui/modules/Linphone/Notifications/NotificationRecordingCompleted.qml
+ ui/modules/Linphone/Notifications/NotificationSnapshotWasTaken.qml
+ ui/modules/Linphone/Presence/PresenceLevel.qml
+ ui/modules/Linphone/qmldir
+ ui/modules/Linphone/SmartSearchBar/SmartSearchBar.qml
+ ui/modules/Linphone/Styles/Account/AccountStatusStyle.qml
+ ui/modules/Linphone/Styles/Blocks/CardBlockStyle.qml
+ ui/modules/Linphone/Styles/Blocks/RequestBlockStyle.qml
+ ui/modules/Linphone/Styles/Calls/CallControlsStyle.qml
+ ui/modules/Linphone/Styles/Calls/CallsStyle.qml
+ ui/modules/Linphone/Styles/Calls/CallStatisticsStyle.qml
+ ui/modules/Linphone/Styles/Calls/ConferenceControlsStyle.qml
+ ui/modules/Linphone/Styles/Chat/ChatStyle.qml
+ ui/modules/Linphone/Styles/Codecs/CodecsViewerStyle.qml
+ ui/modules/Linphone/Styles/Contact/AvatarStyle.qml
+ ui/modules/Linphone/Styles/Contact/ContactDescriptionStyle.qml
+ ui/modules/Linphone/Styles/Contact/ContactMessageCounterStyle.qml
+ ui/modules/Linphone/Styles/Contact/ContactStyle.qml
+ ui/modules/Linphone/Styles/Dialog/OnlineInstallerDialogStyle.qml
+ ui/modules/Linphone/Styles/History/HistoryStyle.qml
+ ui/modules/Linphone/Styles/Menus/SipAddressesMenuStyle.qml
+ ui/modules/Linphone/Styles/Misc/MessageCounterStyle.qml
+ ui/modules/Linphone/Styles/Notifications/NotificationBasicStyle.qml
+ ui/modules/Linphone/Styles/Notifications/NotificationReceivedCallStyle.qml
+ ui/modules/Linphone/Styles/Notifications/NotificationReceivedFileMessageStyle.qml
+ ui/modules/Linphone/Styles/Notifications/NotificationReceivedMessageStyle.qml
+ ui/modules/Linphone/Styles/Notifications/NotificationStyle.qml
+ ui/modules/Linphone/Styles/qmldir
+ ui/modules/Linphone/Styles/TelKeypad/TelKeypadStyle.qml
+ ui/modules/Linphone/Styles/Timeline/TimelineStyle.qml
+ ui/modules/Linphone/Styles/View/SipAddressesViewStyle.qml
+ ui/modules/Linphone/Styles/View/ParticipantsViewStyle.qml
+ ui/modules/Linphone/TelKeypad/TelKeypadButton.qml
+ ui/modules/Linphone/TelKeypad/TelKeypad.js
+ ui/modules/Linphone/TelKeypad/TelKeypad.qml
+ ui/modules/Linphone/Timeline/Timeline.js
+ ui/modules/Linphone/Timeline/Timeline.qml
ui/modules/Linphone/View/ParticipantsView.qml
- ui/modules/Linphone/View/SipAddressesView.qml
- ui/scripts/LinphoneUtils/linphone-utils.js
- ui/scripts/LinphoneUtils/qmldir
- ui/scripts/Utils/port-tools.js
- ui/scripts/Utils/qmldir
- ui/scripts/Utils/uri-tools.js
- ui/scripts/Utils/utils.js
- ui/views/App/Calls/AbstractStartingCall.qml
- ui/views/App/Calls/CallsWindow.js
- ui/views/App/Calls/CallsWindow.qml
- ui/views/App/Calls/Conference.qml
- ui/views/App/Calls/Dialogs/CallSipAddress.qml
- ui/views/App/Calls/Dialogs/CallTransfer.qml
- ui/views/App/Calls/Dialogs/ConferenceManager.qml
- ui/views/App/Calls/Dialogs/MultimediaParameters.qml
- ui/views/App/Calls/EndedCall.qml
- ui/views/App/Calls/IncallAvatar.qml
- ui/views/App/Calls/IncallFullscreenWindow.qml
- ui/views/App/Calls/Incall.js
- ui/views/App/Calls/Incall.qml
- ui/views/App/Calls/IncomingCall.qml
- ui/views/App/Calls/OutgoingCall.qml
- ui/views/App/Calls/ZrtpTokenAuthentication.qml
- ui/views/App/Main/Assistant/ActivateAppSipAccountWithEmail.qml
- ui/views/App/Main/Assistant/ActivateAppSipAccountWithPhoneNumber.qml
- ui/views/App/Main/Assistant/AssistantAbstractView.qml
- ui/views/App/Main/Assistant/AssistantHome.qml
- ui/views/App/Main/Assistant/CreateAppSipAccount.qml
- ui/views/App/Main/Assistant/CreateAppSipAccountWithEmail.qml
- ui/views/App/Main/Assistant/CreateAppSipAccountWithPhoneNumber.qml
- ui/views/App/Main/Assistant/FetchRemoteConfiguration.qml
- ui/views/App/Main/Assistant.qml
- ui/views/App/Main/Assistant/UseAppSipAccount.qml
- ui/views/App/Main/Assistant/UseAppSipAccountWithPhoneNumber.qml
- ui/views/App/Main/Assistant/UseAppSipAccountWithUsername.qml
- ui/views/App/Main/Assistant/UseOtherSipAccount.qml
- ui/views/App/Main/ContactEdit.js
- ui/views/App/Main/ContactEdit.qml
- ui/views/App/Main/Contacts.qml
- ui/views/App/Main/Conversation.js
- ui/views/App/Main/Conversation.qml
- ui/views/App/Main/Dialogs/About.qml
- ui/views/App/Main/Dialogs/AuthenticationRequest.js
- ui/views/App/Main/Dialogs/AuthenticationRequest.qml
+ ui/modules/Linphone/View/SipAddressesView.qml
+ ui/scripts/LinphoneUtils/linphone-utils.js
+ ui/scripts/LinphoneUtils/qmldir
+ ui/scripts/Utils/port-tools.js
+ ui/scripts/Utils/qmldir
+ ui/scripts/Utils/uri-tools.js
+ ui/scripts/Utils/utils.js
+ ui/views/App/Calls/AbstractStartingCall.qml
+ ui/views/App/Calls/CallsWindow.js
+ ui/views/App/Calls/CallsWindow.qml
+ ui/views/App/Calls/Conference.qml
+ ui/views/App/Calls/Dialogs/CallSipAddress.qml
+ ui/views/App/Calls/Dialogs/CallTransfer.qml
+ ui/views/App/Calls/Dialogs/ConferenceManager.qml
+ ui/views/App/Calls/Dialogs/MultimediaParameters.qml
+ ui/views/App/Calls/EndedCall.qml
+ ui/views/App/Calls/IncallAvatar.qml
+ ui/views/App/Calls/IncallFullscreenWindow.qml
+ ui/views/App/Calls/Incall.js
+ ui/views/App/Calls/Incall.qml
+ ui/views/App/Calls/IncomingCall.qml
+ ui/views/App/Calls/OutgoingCall.qml
+ ui/views/App/Calls/ZrtpTokenAuthentication.qml
+ ui/views/App/Main/Assistant/ActivateAppSipAccountWithEmail.qml
+ ui/views/App/Main/Assistant/ActivateAppSipAccountWithPhoneNumber.qml
+ ui/views/App/Main/Assistant/AssistantAbstractView.qml
+ ui/views/App/Main/Assistant/AssistantHome.qml
+ ui/views/App/Main/Assistant/CreateAppSipAccount.qml
+ ui/views/App/Main/Assistant/CreateAppSipAccountWithEmail.qml
+ ui/views/App/Main/Assistant/CreateAppSipAccountWithPhoneNumber.qml
+ ui/views/App/Main/Assistant/FetchRemoteConfiguration.qml
+ ui/views/App/Main/Assistant.qml
+ ui/views/App/Main/Assistant/UseAppSipAccount.qml
+ ui/views/App/Main/Assistant/UseAppSipAccountWithPhoneNumber.qml
+ ui/views/App/Main/Assistant/UseAppSipAccountWithUsername.qml
+ ui/views/App/Main/Assistant/UseOtherSipAccount.qml
+ ui/views/App/Main/ContactEdit.js
+ ui/views/App/Main/ContactEdit.qml
+ ui/views/App/Main/Contacts.qml
+ ui/views/App/Main/Conversation.js
+ ui/views/App/Main/Conversation.qml
+ ui/views/App/Main/Dialogs/About.qml
+ ui/views/App/Main/Dialogs/AuthenticationRequest.js
+ ui/views/App/Main/Dialogs/AuthenticationRequest.qml
ui/views/App/Main/Dialogs/EphemeralChatRoom.qml
ui/views/App/Main/Dialogs/InfoChatRoom.qml
ui/views/App/Main/Dialogs/InfoEncryption.qml
- ui/views/App/Main/Dialogs/ManageAccount.js
- ui/views/App/Main/Dialogs/ManageAccounts.qml
- ui/views/App/Main/Dialogs/ManageChatRoom.qml
+ ui/views/App/Main/Dialogs/ManageAccount.js
+ ui/views/App/Main/Dialogs/ManageAccounts.qml
ui/views/App/Main/Dialogs/NewChatRoom.qml
ui/views/App/Main/Dialogs/ParticipantsDevices.qml
- ui/views/App/Main/Home.qml
- ui/views/App/Main/HistoryView.qml
- ui/views/App/Main/HistoryView.js
- ui/views/App/Main/InviteFriends.qml
- ui/views/App/Main/MainWindow.js
- ui/views/App/Main/MainWindowMenuBar.qml
- ui/views/App/Main/MainWindow.qml
- ui/views/App/Main/MainWindowTopMenuBar.qml
- ui/views/App/Settings/Dialogs/SettingsLdapEdit.qml
- ui/views/App/Settings/Dialogs/SettingsSipAccountsEdit.js
- ui/views/App/Settings/Dialogs/SettingsSipAccountsEdit.qml
- ui/views/App/Settings/Dialogs/SettingsVideoPreview.qml
- ui/views/App/Settings/SettingsAdvanced.js
- ui/views/App/Settings/SettingsAdvanced.qml
- ui/views/App/Settings/SettingsAudio.qml
- ui/views/App/Settings/SettingsCallsChat.qml
- ui/views/App/Settings/SettingsLdap.qml
- ui/views/App/Settings/SettingsNetwork.qml
- ui/views/App/Settings/SettingsSipAccounts.js
- ui/views/App/Settings/SettingsSipAccounts.qml
- ui/views/App/Settings/SettingsUi.js
- ui/views/App/Settings/SettingsUi.qml
- ui/views/App/Settings/SettingsVideo.js
- ui/views/App/Settings/SettingsVideo.qml
- ui/views/App/Settings/SettingsWindow.qml
- ui/views/App/Styles/Calls/CallStyle.qml
- ui/views/App/Styles/Calls/CallsWindowStyle.qml
- ui/views/App/Styles/Calls/ConferenceStyle.qml
- ui/views/App/Styles/Calls/Dialogs/CallSipAddressStyle.qml
- ui/views/App/Styles/Calls/Dialogs/CallTransferStyle.qml
- ui/views/App/Styles/Calls/Dialogs/ConferenceManagerStyle.qml
- ui/views/App/Styles/Calls/Dialogs/MultimediaParametersStyle.qml
- ui/views/App/Styles/Main/Assistant/ActivateAppSipAccountWithEmailStyle.qml
- ui/views/App/Styles/Main/Assistant/ActivateAppSipAccountWithPhoneNumberStyle.qml
- ui/views/App/Styles/Main/Assistant/AssistantAbstractViewStyle.qml
- ui/views/App/Styles/Main/Assistant/AssistantHomeStyle.qml
- ui/views/App/Styles/Main/Assistant/CreateAppSipAccountStyle.qml
- ui/views/App/Styles/Main/AssistantStyle.qml
- ui/views/App/Styles/Main/Assistant/UseAppSipAccountStyle.qml
- ui/views/App/Styles/Main/ContactEditStyle.qml
- ui/views/App/Styles/Main/ContactsStyle.qml
- ui/views/App/Styles/Main/ConversationStyle.qml
- ui/views/App/Styles/Main/Dialogs/AboutStyle.qml
- ui/views/App/Styles/Main/Dialogs/AuthenticationRequestStyle.qml
- ui/views/App/Styles/Main/Dialogs/InfoChatRoomStyle.qml
- ui/views/App/Styles/Main/Dialogs/InfoEncryptionStyle.qml
- ui/views/App/Styles/Main/Dialogs/ManageAccountsStyle.qml
- ui/views/App/Styles/Main/HomeStyle.qml
- ui/views/App/Styles/Main/InviteFriendsStyle.qml
- ui/views/App/Styles/Main/HistoryViewStyle.qml
- ui/views/App/Styles/Main/MainWindowStyle.qml
- ui/views/App/Styles/qmldir
- ui/views/App/Styles/Settings/Dialogs/SettingsSipAccountsEditStyle.qml
- ui/views/App/Styles/Settings/Dialogs/SettingsVideoPreviewStyle.qml
- ui/views/App/Styles/Settings/SettingsAdvancedStyle.qml
- ui/views/App/Styles/Settings/SettingsAudioStyle.qml
- ui/views/App/Styles/Settings/SettingsWindowStyle.qml
- assets/images/linphone_logo.svg
- ui/dev-modules/Units/Units.qml
- assets/icon.ico
-
+ ui/views/App/Main/Home.qml
+ ui/views/App/Main/HistoryView.qml
+ ui/views/App/Main/HistoryView.js
+ ui/views/App/Main/InviteFriends.qml
+ ui/views/App/Main/MainWindow.js
+ ui/views/App/Main/MainWindowMenuBar.qml
+ ui/views/App/Main/MainWindow.qml
+ ui/views/App/Main/MainWindowTopMenuBar.qml
+ ui/views/App/Settings/Dialogs/SettingsLdapEdit.qml
+ ui/views/App/Settings/Dialogs/SettingsSipAccountsEdit.js
+ ui/views/App/Settings/Dialogs/SettingsSipAccountsEdit.qml
+ ui/views/App/Settings/Dialogs/SettingsVideoPreview.qml
+ ui/views/App/Settings/SettingsAdvanced.js
+ ui/views/App/Settings/SettingsAdvanced.qml
+ ui/views/App/Settings/SettingsAudio.qml
+ ui/views/App/Settings/SettingsCallsChat.qml
+ ui/views/App/Settings/SettingsLdap.qml
+ ui/views/App/Settings/SettingsNetwork.qml
+ ui/views/App/Settings/SettingsSipAccounts.js
+ ui/views/App/Settings/SettingsSipAccounts.qml
+ ui/views/App/Settings/SettingsUi.js
+ ui/views/App/Settings/SettingsUi.qml
+ ui/views/App/Settings/SettingsVideo.js
+ ui/views/App/Settings/SettingsVideo.qml
+ ui/views/App/Settings/SettingsWindow.qml
+ ui/views/App/Styles/Calls/CallStyle.qml
+ ui/views/App/Styles/Calls/CallsWindowStyle.qml
+ ui/views/App/Styles/Calls/ConferenceStyle.qml
+ ui/views/App/Styles/Calls/Dialogs/CallSipAddressStyle.qml
+ ui/views/App/Styles/Calls/Dialogs/CallTransferStyle.qml
+ ui/views/App/Styles/Calls/Dialogs/ConferenceManagerStyle.qml
+ ui/views/App/Styles/Calls/Dialogs/MultimediaParametersStyle.qml
+ ui/views/App/Styles/Main/Assistant/ActivateAppSipAccountWithEmailStyle.qml
+ ui/views/App/Styles/Main/Assistant/ActivateAppSipAccountWithPhoneNumberStyle.qml
+ ui/views/App/Styles/Main/Assistant/AssistantAbstractViewStyle.qml
+ ui/views/App/Styles/Main/Assistant/AssistantHomeStyle.qml
+ ui/views/App/Styles/Main/Assistant/CreateAppSipAccountStyle.qml
+ ui/views/App/Styles/Main/AssistantStyle.qml
+ ui/views/App/Styles/Main/Assistant/UseAppSipAccountStyle.qml
+ ui/views/App/Styles/Main/ContactEditStyle.qml
+ ui/views/App/Styles/Main/ContactsStyle.qml
+ ui/views/App/Styles/Main/ConversationStyle.qml
+ ui/views/App/Styles/Main/Dialogs/AboutStyle.qml
+ ui/views/App/Styles/Main/Dialogs/AuthenticationRequestStyle.qml
+ ui/views/App/Styles/Main/Dialogs/InfoChatRoomStyle.qml
+ ui/views/App/Styles/Main/Dialogs/InfoEncryptionStyle.qml
+ ui/views/App/Styles/Main/Dialogs/ManageAccountsStyle.qml
+ ui/views/App/Styles/Main/HomeStyle.qml
+ ui/views/App/Styles/Main/InviteFriendsStyle.qml
+ ui/views/App/Styles/Main/HistoryViewStyle.qml
+ ui/views/App/Styles/Main/MainWindowStyle.qml
+ ui/views/App/Styles/qmldir
+ ui/views/App/Styles/Settings/Dialogs/SettingsSipAccountsEditStyle.qml
+ ui/views/App/Styles/Settings/Dialogs/SettingsVideoPreviewStyle.qml
+ ui/views/App/Styles/Settings/SettingsAdvancedStyle.qml
+ ui/views/App/Styles/Settings/SettingsAudioStyle.qml
+ ui/views/App/Styles/Settings/SettingsWindowStyle.qml
+ assets/images/linphone_logo.svg
+ ui/dev-modules/Units/Units.qml
+ assets/icon.ico
+
diff --git a/linphone-app/src/components/chat-events/ChatMessageModel.cpp b/linphone-app/src/components/chat-events/ChatMessageModel.cpp
index 6219f3b4e..da0b6953d 100644
--- a/linphone-app/src/components/chat-events/ChatMessageModel.cpp
+++ b/linphone-app/src/components/chat-events/ChatMessageModel.cpp
@@ -386,6 +386,10 @@ QString ChatMessageModel::getFromDisplayName() const{
return Utils::getDisplayName(mChatMessage->getFromAddress());
}
+QString ChatMessageModel::getFromSipAddress() const{
+ return Utils::cleanSipAddress(Utils::coreStringToAppString(mChatMessage->getFromAddress()->asStringUriOnly()));
+}
+
QString ChatMessageModel::getToDisplayName() const{
return Utils::getDisplayName(mChatMessage->getToAddress());
}
diff --git a/linphone-app/src/components/chat-events/ChatMessageModel.hpp b/linphone-app/src/components/chat-events/ChatMessageModel.hpp
index bf02c8ed7..e7ef4b930 100644
--- a/linphone-app/src/components/chat-events/ChatMessageModel.hpp
+++ b/linphone-app/src/components/chat-events/ChatMessageModel.hpp
@@ -135,6 +135,7 @@ public:
Q_PROPERTY(QString fromDisplayName READ getFromDisplayName CONSTANT)
+ Q_PROPERTY(QString fromSipAddress READ getFromSipAddress CONSTANT)
Q_PROPERTY(QString toDisplayName READ getToDisplayName CONSTANT)
Q_PROPERTY(ContactModel * contactModel READ getContactModel CONSTANT)
@@ -159,6 +160,7 @@ public:
//----------------------------------------------------------------------------
QString getFromDisplayName() const;
+ QString getFromSipAddress() const;
QString getToDisplayName() const;
ContactModel * getContactModel() const;
bool isEphemeral() const;
diff --git a/linphone-app/src/components/chat-room/ChatRoomModel.cpp b/linphone-app/src/components/chat-room/ChatRoomModel.cpp
index cd39a9075..45700dbec 100644
--- a/linphone-app/src/components/chat-room/ChatRoomModel.cpp
+++ b/linphone-app/src/components/chat-room/ChatRoomModel.cpp
@@ -654,19 +654,21 @@ void ChatRoomModel::onIsComposingReceived(const std::shared_ptrgetLastUpdateTime()));
}
void ChatRoomModel::onMessageReceived(const std::shared_ptr & chatRoom, const std::shared_ptr & message){
setUnreadMessagesCount(chatRoom->getUnreadMessagesCount());
+ setLastUpdateTime(QDateTime::fromMSecsSinceEpoch(chatRoom->getLastUpdateTime()));
}
void ChatRoomModel::onNewEvent(const std::shared_ptr & chatRoom, const std::shared_ptr & eventLog){
if( eventLog->getType() == linphone::EventLog::Type::ConferenceCallEnd ){
setMissedCallsCount(mMissedCallsCount+1);
- setLastUpdateTime(QDateTime::fromMSecsSinceEpoch(chatRoom->getLastUpdateTime()));
}else if( eventLog->getType() == linphone::EventLog::Type::ConferenceCreated ){
emit fullPeerAddressChanged();
}
+ setLastUpdateTime(QDateTime::fromMSecsSinceEpoch(chatRoom->getLastUpdateTime()));
}
void ChatRoomModel::onChatMessageReceived(const std::shared_ptr & chatRoom, const std::shared_ptr & eventLog) {
@@ -688,6 +690,7 @@ void ChatRoomModel::onChatMessageSending(const std::shared_ptr & chatRoom, const std::shared_ptr & eventLog){
+ setLastUpdateTime(QDateTime::fromMSecsSinceEpoch(chatRoom->getLastUpdateTime()));
}
void ChatRoomModel::onParticipantAdded(const std::shared_ptr & chatRoom, const std::shared_ptr & eventLog){
@@ -695,6 +698,7 @@ void ChatRoomModel::onParticipantAdded(const std::shared_ptr
auto e = std::find(events.begin(), events.end(), eventLog);
if( e != events.end() )
insertNotice(*e);
+ setLastUpdateTime(QDateTime::fromMSecsSinceEpoch(chatRoom->getLastUpdateTime()));
emit participantAdded(chatRoom, eventLog);
emit fullPeerAddressChanged();
}
@@ -704,16 +708,19 @@ void ChatRoomModel::onParticipantRemoved(const std::shared_ptrgetLastUpdateTime()));
emit participantRemoved(chatRoom, eventLog);
emit fullPeerAddressChanged();
}
void ChatRoomModel::onParticipantAdminStatusChanged(const std::shared_ptr & chatRoom, const std::shared_ptr & eventLog){
+ setLastUpdateTime(QDateTime::fromMSecsSinceEpoch(chatRoom->getLastUpdateTime()));
emit participantAdminStatusChanged(chatRoom, eventLog);
emit isMeAdminChanged(); // It is not the case all the time but calling getters is not a heavy request
}
void ChatRoomModel::onStateChanged(const std::shared_ptr & chatRoom, linphone::ChatRoom::State newState){
+ setLastUpdateTime(QDateTime::fromMSecsSinceEpoch(chatRoom->getLastUpdateTime()));
emit stateChanged(getState());
}
@@ -722,21 +729,26 @@ void ChatRoomModel::onSecurityEvent(const std::shared_ptr &
auto e = std::find(events.begin(), events.end(), eventLog);
if( e != events.end() )
insertNotice(*e);
+ setLastUpdateTime(QDateTime::fromMSecsSinceEpoch(chatRoom->getLastUpdateTime()));
emit securityLevelChanged((int)chatRoom->getSecurityLevel());
}
void ChatRoomModel::onSubjectChanged(const std::shared_ptr & chatRoom, const std::shared_ptr & eventLog) {
+ setLastUpdateTime(QDateTime::fromMSecsSinceEpoch(chatRoom->getLastUpdateTime()));
emit subjectChanged(getSubject());
emit usernameChanged();
}
void ChatRoomModel::onUndecryptableMessageReceived(const std::shared_ptr & chatRoom, const std::shared_ptr & message){
+ setLastUpdateTime(QDateTime::fromMSecsSinceEpoch(chatRoom->getLastUpdateTime()));
}
void ChatRoomModel::onParticipantDeviceAdded(const std::shared_ptr & chatRoom, const std::shared_ptr & eventLog){
+ setLastUpdateTime(QDateTime::fromMSecsSinceEpoch(chatRoom->getLastUpdateTime()));
emit participantDeviceAdded(chatRoom, eventLog);
}
void ChatRoomModel::onParticipantDeviceRemoved(const std::shared_ptr & chatRoom, const std::shared_ptr & eventLog){
+ setLastUpdateTime(QDateTime::fromMSecsSinceEpoch(chatRoom->getLastUpdateTime()));
emit participantDeviceRemoved(chatRoom, eventLog);
}
@@ -752,6 +764,7 @@ void ChatRoomModel::onConferenceJoined(const std::shared_ptr
insertNotice(*e);
}
setUnreadMessagesCount(mChatRoom->getUnreadMessagesCount()); // Update message count. In the case of joining conference, the conference id was not valid thus, the missing count was not about the chat room but a global one.
+ setLastUpdateTime(QDateTime::fromMSecsSinceEpoch(chatRoom->getLastUpdateTime()));
emit usernameChanged();
emit conferenceJoined(chatRoom, eventLog);
emit hasBeenLeftChanged();
@@ -769,6 +782,7 @@ void ChatRoomModel::onConferenceLeft(const std::shared_ptr &
if(e != events.end() )
insertNotice(*e);
}
+ setLastUpdateTime(QDateTime::fromMSecsSinceEpoch(chatRoom->getLastUpdateTime()));
emit conferenceLeft(chatRoom, eventLog);
emit hasBeenLeftChanged();
}
@@ -779,18 +793,23 @@ void ChatRoomModel::onEphemeralEvent(const std::shared_ptr &
auto e = std::find(events.begin(), events.end(), eventLog);
if(e != events.end() )
insertNotice(*e);
+ setLastUpdateTime(QDateTime::fromMSecsSinceEpoch(chatRoom->getLastUpdateTime()));
}
void ChatRoomModel::onEphemeralMessageTimerStarted(const std::shared_ptr & chatRoom, const std::shared_ptr & eventLog){
+ setLastUpdateTime(QDateTime::fromMSecsSinceEpoch(chatRoom->getLastUpdateTime()));
}
void ChatRoomModel::onEphemeralMessageDeleted(const std::shared_ptr & chatRoom, const std::shared_ptr & eventLog){
+ setLastUpdateTime(QDateTime::fromMSecsSinceEpoch(chatRoom->getLastUpdateTime()));
}
void ChatRoomModel::onConferenceAddressGeneration(const std::shared_ptr & chatRoom){
+ setLastUpdateTime(QDateTime::fromMSecsSinceEpoch(chatRoom->getLastUpdateTime()));
}
void ChatRoomModel::onParticipantRegistrationSubscriptionRequested(const std::shared_ptr & chatRoom, const std::shared_ptr & participantAddress){
+ setLastUpdateTime(QDateTime::fromMSecsSinceEpoch(chatRoom->getLastUpdateTime()));
emit participantRegistrationSubscriptionRequested(chatRoom, participantAddress);
}
diff --git a/linphone-app/src/components/timeline/TimelineListModel.cpp b/linphone-app/src/components/timeline/TimelineListModel.cpp
index 2ee30a8c9..421ce8314 100644
--- a/linphone-app/src/components/timeline/TimelineListModel.cpp
+++ b/linphone-app/src/components/timeline/TimelineListModel.cpp
@@ -65,7 +65,7 @@ void TimelineListModel::update(){
void TimelineListModel::selectAll(const bool& selected){
for(auto it = mTimelines.begin() ; it != mTimelines.end() ; ++it)
- (*it)->mSelected = selected;
+ (*it)->setSelected(selected);
}
int TimelineListModel::rowCount (const QModelIndex &) const {
return mTimelines.count();
@@ -275,6 +275,7 @@ void TimelineListModel::updateTimelines () {
}
void TimelineListModel::add (std::shared_ptr timeline){
+ connect(timeline->getChatRoomModel(), &ChatRoomModel::lastUpdateTimeChanged, this, &TimelineListModel::updated);
int row = mTimelines.count();
beginInsertRows(QModelIndex(), row, row);
mTimelines << timeline;
diff --git a/linphone-app/ui/modules/Common/Form/Buttons/AbstractTextButton.qml b/linphone-app/ui/modules/Common/Form/Buttons/AbstractTextButton.qml
index b59c32e61..a5bc36d04 100644
--- a/linphone-app/ui/modules/Common/Form/Buttons/AbstractTextButton.qml
+++ b/linphone-app/ui/modules/Common/Form/Buttons/AbstractTextButton.qml
@@ -28,6 +28,8 @@ Item {
property alias text: button.text
property bool enabled: true
property bool showBorder : false
+
+ property alias capitalization : button.capitalization
signal clicked
@@ -72,6 +74,7 @@ Item {
Button {
id: button
+ property int capitalization
background: Rectangle {
color: _getBackgroundColor()
@@ -85,6 +88,7 @@ Item {
font {
bold: true
pointSize: AbstractTextButtonStyle.text.pointSize
+ capitalization: button.capitalization
}
wrapMode: Text.WordWrap
//elide: Text.ElideRight
diff --git a/linphone-app/ui/modules/Common/Tooltip/TooltipArea.qml b/linphone-app/ui/modules/Common/Tooltip/TooltipArea.qml
index 3b559c048..dd44105ed 100644
--- a/linphone-app/ui/modules/Common/Tooltip/TooltipArea.qml
+++ b/linphone-app/ui/modules/Common/Tooltip/TooltipArea.qml
@@ -36,7 +36,9 @@ MouseArea {
delay: tooltipArea.delay
parent: tooltipParent
visible: _visible || force
- width: tooltipParent.width>TooltipStyle.minWidth?tooltipParent.width:TooltipStyle.minWidth
+ width: Math.min(tooltip.implicitWidth, Math.max(tooltipParent.width, TooltipStyle.minWidth))
+
+ //tooltipParent.width>TooltipStyle.minWidth?tooltipParent.width:TooltipStyle.minWidth
timeout: -1
diff --git a/linphone-app/ui/modules/Linphone/Chat/Chat.qml b/linphone-app/ui/modules/Linphone/Chat/Chat.qml
index 1f5970b37..a7495540a 100644
--- a/linphone-app/ui/modules/Linphone/Chat/Chat.qml
+++ b/linphone-app/ui/modules/Linphone/Chat/Chat.qml
@@ -200,84 +200,9 @@ Rectangle {
leftPadding: ChatStyle.composingText.leftPadding
visible: composers.length > 0 && SettingsModel.chatEnabled
wrapMode: Text.Wrap
-
- text:(composers.length==0?'':(composers.length>1 ? '%1 are typing...' : '%1 is typing...').arg(container.proxyModel.getDisplayNameComposers()))
+ //: '%1 is typing...' indicate that someone is composing in chat
+ text:(composers.length==0?'': qsTr('chatTyping','',composers.length).arg(container.proxyModel.getDisplayNameComposers()))
}
-
-
- /* GridView{
- height: visible ? ChatStyle.composingText.height*container.proxyModel.composers.length : 0
- width:parent.width
- cellWidth: parent.width; cellHeight: ChatStyle.composingText.height
-
- property var composersLength : container.proxyModel.composers.length
- onComposersLengthChanged:{
- model.clear()
- console.log(container.proxyModel.composers)
- for(var j = 0 ; j < container.proxyModel.composers.length ; ++j) {
- console.log(container.proxyModel.composers[j])
- model.append({text:container.proxyModel.composers[j]})
- }
- }
- model: ListModel{}
- delegate:Rectangle{
- height:ChatStyle.composingText.height
- width:parent.width
- color:"red"
- }
- }*/
-
-
- /*
- Column{
- height: 100 *container.proxyModel.composers.length
- width:parent.width
- onHeightChanged: {
- composerRepeater.model = []
- composerRepeater.model = container.proxyModel.composers
- }
- Repeater{
- id:composerRepeater
- model:["toto"]
- Rectangle{
- height:100
- width:parent.width
- color:"red"
- }
- }
- }*/
-
-
- /*
- Column{
- height: visible ? ChatStyle.composingText.height*container.proxyModel.composers.length : 0
- width:parent.width
- visible:SettingsModel.chatEnabled
- onHeightChanged: {
- composers.clear()
- composerRepeater.model = []
- composerRepeater.model = container.proxyModel.composers
- }
- Repeater{
- id:composerRepeater
- model:ListModel{
- id:composers
- }
- onModelChanged: console.log(container.proxyModel.composers.length)
-
- Text {
- color: ChatStyle.composingText.color
- font.pointSize: ChatStyle.composingText.pointSize
- height: visible ? ChatStyle.composingText.height : 0
-
- leftPadding: ChatStyle.composingText.leftPadding
- visible: text.length > 0 && SettingsModel.chatEnabled
-
- text: modelData + ' ' +'is typing...'
- Component.onCompleted: console.log(text + "=>" +width+"/"+height+" : "+visible)
- }
- }
- }*/
}
// -------------------------------------------------------------------------
diff --git a/linphone-app/ui/modules/Linphone/Chat/IncomingMessage.qml b/linphone-app/ui/modules/Linphone/Chat/IncomingMessage.qml
index b59a625e7..cb697cb25 100644
--- a/linphone-app/ui/modules/Linphone/Chat/IncomingMessage.qml
+++ b/linphone-app/ui/modules/Linphone/Chat/IncomingMessage.qml
@@ -9,63 +9,69 @@ import LinphoneUtils 1.0
// =============================================================================
RowLayout {
- implicitHeight: message.height
- spacing: 0
-
- Item {
- Layout.alignment: Qt.AlignTop
- Layout.preferredHeight: ChatStyle.entry.lineHeight
- Layout.preferredWidth: ChatStyle.entry.metaWidth
-
- Avatar {
- anchors.centerIn: parent
- height: ChatStyle.entry.message.incoming.avatarSize
- image: $chatEntry.contactModel? $chatEntry.contactModel.vcard.avatar : '' //chat.sipAddressObserver.contact ? chat.sipAddressObserver.contact.vcard.avatar : ''
- username: $chatEntry.fromDisplayName
-
- width: ChatStyle.entry.message.incoming.avatarSize
-
- // The avatar is only visible for the first message of a incoming messages sequence.
- visible: {
- if (index <= 0) {
- return true // 1. First message, so visible.
- }
-
- var previousEntry = proxyModel.data(proxyModel.index(index - 1, 0))
- if (!previousEntry) {
- return true
- }
-
- // 2. Previous entry is a call event. => Visible.
- // 3. I have sent a message before my contact. => Visible.
- // 4. One hour between two incoming messages. => Visible.
- return previousEntry.type !== ChatRoomModel.MessageEntry ||
- previousEntry.isOutgoing ||
- $chatEntry.timestamp.getTime() - previousEntry.timestamp.getTime() > 3600
- }
- }
- }
-
- Message {
- id: message
-
- Layout.fillWidth: true
-
- // Not a style. Workaround to avoid a 0 width.
- // Arbitrary value.
- Layout.minimumWidth: 1
-
- backgroundColor: ChatStyle.entry.message.incoming.backgroundColor
- color: ChatStyle.entry.message.incoming.text.color
- pointSize: ChatStyle.entry.message.incoming.text.pointSize
-
- ActionButton {
- height: ChatStyle.entry.lineHeight
- icon: 'delete'
- iconSize: ChatStyle.entry.deleteIconSize
- visible: isHoverEntry()
-
- onClicked: removeEntry()
- }
- }
+ id:mainRow
+ implicitHeight: message.height
+ spacing: 0
+
+ Item {
+ Layout.alignment: Qt.AlignTop
+ Layout.preferredHeight: ChatStyle.entry.lineHeight
+ Layout.preferredWidth: ChatStyle.entry.metaWidth
+
+ Avatar {
+ id:avatar
+ anchors.centerIn: parent
+ height: ChatStyle.entry.message.incoming.avatarSize
+ image: $chatEntry.contactModel? $chatEntry.contactModel.vcard.avatar : '' //chat.sipAddressObserver.contact ? chat.sipAddressObserver.contact.vcard.avatar : ''
+ username: $chatEntry.fromDisplayName
+
+ width: ChatStyle.entry.message.incoming.avatarSize
+
+ // The avatar is only visible for the first message of a incoming messages sequence.
+ visible: {
+ if (index <= 0) {
+ return true // 1. First message, so visible.
+ }
+
+ var previousEntry = proxyModel.data(proxyModel.index(index - 1, 0))
+ if (!previousEntry) {
+ return true
+ }
+
+ // 2. Previous entry is a call event. => Visible.
+ // 3. I have sent a message before my contact. => Visible.
+ // 4. One hour between two incoming messages. => Visible.
+ return previousEntry.type !== ChatRoomModel.MessageEntry ||
+ previousEntry.isOutgoing ||
+ $chatEntry.timestamp.getTime() - previousEntry.timestamp.getTime() > 3600
+ }
+ TooltipArea{
+ text:avatar.username+'\n'+$chatEntry.fromSipAddress
+ tooltipParent:mainRow
+ }
+ }
+ }
+
+ Message {
+ id: message
+
+ Layout.fillWidth: true
+
+ // Not a style. Workaround to avoid a 0 width.
+ // Arbitrary value.
+ Layout.minimumWidth: 1
+
+ backgroundColor: ChatStyle.entry.message.incoming.backgroundColor
+ color: ChatStyle.entry.message.incoming.text.color
+ pointSize: ChatStyle.entry.message.incoming.text.pointSize
+
+ ActionButton {
+ height: ChatStyle.entry.lineHeight
+ icon: 'delete'
+ iconSize: ChatStyle.entry.deleteIconSize
+ visible: isHoverEntry()
+
+ onClicked: removeEntry()
+ }
+ }
}
diff --git a/linphone-app/ui/modules/Linphone/Chat/Message.qml b/linphone-app/ui/modules/Linphone/Chat/Message.qml
index 36a67405c..fba910e19 100644
--- a/linphone-app/ui/modules/Linphone/Chat/Message.qml
+++ b/linphone-app/ui/modules/Linphone/Chat/Message.qml
@@ -124,7 +124,8 @@ Item {
onTriggered: TextToSpeech.say($chatEntry.content)
}
MenuItem {
- text: 'Delivery Status'
+ //: 'Delivery status' : Item menu that lead to IMDN of a message
+ text: qsTr('menuDeliveryStatus')
iconMenu: 'menu_imdn_info'
iconSizeMenu: 17
iconLayoutDirection: Qt.RightToLeft
@@ -133,7 +134,8 @@ Item {
onTriggered: deliveryLayout.visible = !deliveryLayout.visible
}
MenuItem {
- text: 'Delete'
+ //: 'Delete' : Item menu to delete a message
+ text: qsTr('menuDelete')
iconMenu: 'menu_delete'
iconSizeMenu: 17
iconLayoutDirection: Qt.RightToLeft
@@ -191,21 +193,23 @@ Item {
}
}*/
model: $chatEntry.getProxyImdnStates()
- property var i18n: [
- 'Envoyé à %1 - %2', // LinphoneEnums.ChatMessageStateDelivered
- 'Reçu par %1 - %2', // LinphoneEnums.ChatMessageStateDeliveredToUser
- 'Lu par %1 - %2' , // LinphoneEnums.ChatMessageStateDisplayed
- "%1 n'a encore rien reçu" // LinphoneEnums.ChatMessageStateNotDelivered
- ]
function getText(state){
if(state == LinphoneEnums.ChatMessageStateDelivered)
- return i18n[0]
+ //: 'Send to %1 - %2' Little message to indicate the state of a message
+ //~ Context %1 is someone, %2 is a date/time. The state is that the message has been sent but not received.
+ return qsTr('deliveryDelivered')
else if(state == LinphoneEnums.ChatMessageStateDeliveredToUser)
- return i18n[1]
+ //: 'Retrieved by %1 - %2' Little message to indicate the state of a message
+ //~ Context %1 is someone, %2 is a date/time. The state is that the message has been retrieved
+ return qsTr('deliveryDeliveredToUser')
else if(state == LinphoneEnums.ChatMessageStateDisplayed)
- return i18n[2]
+ //: 'Read by %1 - %2' Little message to indicate the state of a message
+ //~ Context %1 is someone, %2 is a date/time. The state that the message has been read.
+ return qsTr('deliveryDisplayed')
else if(state == LinphoneEnums.ChatMessageStateNotDelivered)
- return i18n[3]
+ //: "%1 have nothing received" Little message to indicate the state of a message
+ //~ Context %1 is someone. The state is that the message hasn't been delivered.
+ return qsTr('deliveryNotDelivered')
else return ''
}
delegate:Text{
diff --git a/linphone-app/ui/modules/Linphone/Timeline/Timeline.qml b/linphone-app/ui/modules/Linphone/Timeline/Timeline.qml
index cca72e11f..60cf7e031 100644
--- a/linphone-app/ui/modules/Linphone/Timeline/Timeline.qml
+++ b/linphone-app/ui/modules/Linphone/Timeline/Timeline.qml
@@ -90,8 +90,13 @@ Rectangle {
Layout.leftMargin: TimelineStyle.legend.leftMargin
color: TimelineStyle.legend.color
font.pointSize: TimelineStyle.legend.pointSize
- //height: parent.height
- text: 'Filter : ' +(timeline.model.filterFlags == 0 || timeline.model.filterFlags == TimelineProxyModel.AllChatRooms?'All' : 'Custom')
+ //: A title for filtering mode.
+ text: qsTr('timelineFilter')+' : '
+ +(timeline.model.filterFlags == 0 || timeline.model.filterFlags == TimelineProxyModel.AllChatRooms
+ //: 'All' The mode for timelines filtering.
+ ? qsTr('timelineFilterAll')
+ //: 'Custom' The mode for timelines filtering.
+ : qsTr('timelineFilterCustom'))
verticalAlignment: Text.AlignVCenter
}
@@ -146,31 +151,41 @@ Rectangle {
}
CheckBoxText {
id:simpleFilter
- text:'Simple rooms'
+ //: 'Simple rooms' : Filter item
+ //~ Mode Selecting it will show all simple romms
+ text:qsTr('timelineFilterSimpleRooms')
property var value : (checked?TimelineProxyModel.SimpleChatRoom:0)
onValueChanged: timeline.model.filterFlags = filterChoices.getFilterFlags()
}
CheckBoxText {
id:secureFilter
- text:'Secure rooms'
+ //: 'Secure rooms' : Filter item
+ //~ Mode Selecting it will show all secure rooms
+ text:qsTr('timelineFilterSecureRooms')
property var value : (checked?TimelineProxyModel.SecureChatRoom:0)
onValueChanged: timeline.model.filterFlags = filterChoices.getFilterFlags()
}
CheckBoxText {
id:groupFilter
- text:'Chat groups'
+ //: 'Chat groups' : Filter item
+ //~ Mode Selecting it will show all chat groups (with more than one participant)
+ text:qsTr('timelineFilterChatGroups')
property var value : (checked?TimelineProxyModel.GroupChatRoom:0)
onValueChanged: timeline.model.filterFlags = filterChoices.getFilterFlags()
}
CheckBoxText {
id:secureGroupFilter
- text:'Secure Chat Groups'
+ //: 'Secure Chat Groups' : Filter item
+ //~ Mode Selecting it will show all secure chat groups (with more than one participant)
+ text:qsTr('timelineFilterSecureChatGroups')
property var value : (checked?TimelineProxyModel.SecureGroupChatRoom:0)
onValueChanged: timeline.model.filterFlags = filterChoices.getFilterFlags()
}
CheckBoxText {
id:ephemeralsFilter
- text:'Ephemerals'
+ //: 'Ephemerals' : Filter item
+ //~ Mode Selecting it will show all chat rooms where the ephemeral mode has been enabled.
+ text:qsTr('timelineFilterEphemerals')
property var value : (checked?TimelineProxyModel.EphemeralChatRoom:0)
onValueChanged: timeline.model.filterFlags = filterChoices.getFilterFlags()
}
@@ -190,19 +205,20 @@ Rectangle {
visible:false
//color: ContactsStyle.bar.backgroundColor
onVisibleChanged: timeline.model.filterText = (visible?searchBar.text : '')
-
- TextField {
- id:searchBar
- anchors {
+
+ TextField {
+ id:searchBar
+ anchors {
fill: parent
margins: 7
- }
+ }
Layout.fillWidth: true
icon: 'search'
- placeholderText: 'Search in the list'
+ //: 'Search in the list' : ths is a placeholder when searching something in the timeline list
+ placeholderText: qsTr('timelineSearchPlaceholderText')
onTextChanged: timeline.model.filterText = text
- }
+ }
}
// -------------------------------------------------------------------------
@@ -213,9 +229,6 @@ Rectangle {
id: view
Layout.fillHeight: true
Layout.fillWidth: true
- //anchors.left:parent.left
- //anchors.right:parent.right
- //anchors.bottom:parent.bottom
currentIndex: -1
delegate: Item {
@@ -234,8 +247,6 @@ Rectangle {
: TimelineStyle.contact.backgroundColor.b
)
displayUnreadMessageCount: SettingsModel.chatEnabled
- //entry: $timelineEntry
- //entry: SipAddressesModel.getSipAddressObserver(modelData.fullPeerAddress, modelData.fullLocalAddress)
entry: modelData.chatRoomModel
sipAddressColor: isSelected
? TimelineStyle.contact.sipAddress.color.selected
@@ -271,7 +282,6 @@ Rectangle {
//timeline.model.unselectAll()
modelData.selected = true
view.currentIndex = index;
- //timeline.entrySelected($timelineEntry.sipAddress, $timelineEntry.isSecure)
}
}
Connections{
@@ -282,7 +292,6 @@ Rectangle {
}
}
}
- // onCountChanged: Logic.handleCountChanged(count)
}
}
}
diff --git a/linphone-app/ui/modules/Linphone/View/ParticipantsView.qml b/linphone-app/ui/modules/Linphone/View/ParticipantsView.qml
index 963a9b66f..f62be9d8d 100644
--- a/linphone-app/ui/modules/Linphone/View/ParticipantsView.qml
+++ b/linphone-app/ui/modules/Linphone/View/ParticipantsView.qml
@@ -229,7 +229,9 @@ ScrollableListView {
Layout.fillHeight: true
Layout.fillWidth: true
showContactAddress: sipAddressesView.showContactAddress
- statusText : showAdminStatus && modelData.adminStatus ? '(Admin)' : ''
+ //: '(Admin)' : One word for Admin(istrator)
+ //~ Context Little Header in one word for a column in participant
+ statusText : showAdminStatus && modelData.adminStatus ? qsTr('participantsAdminHeader') : ''
entry: modelData
diff --git a/linphone-app/ui/views/App/Main/Contacts.qml b/linphone-app/ui/views/App/Main/Contacts.qml
index a881a08cb..e3bdf6c2d 100644
--- a/linphone-app/ui/views/App/Main/Contacts.qml
+++ b/linphone-app/ui/views/App/Main/Contacts.qml
@@ -197,24 +197,6 @@ ColumnLayout {
CallsListModel.launchAudioCall,
function (sipAddress) {CallsListModel.launchChat( sipAddress,0 )},
function (sipAddress) {CallsListModel.launchChat( sipAddress,1 )}
- /*
- function (sipAddress) {
- CallsListModel.launchSecureChat(sipAddress)
- window.setView('Conversation', {
- chatRoomModel: CallsListModel.createSecureChat("", sipAddress),
- //peerAddress: sipAddress,
- //localAddress: AccountSettingsModel.sipAddress,
- //fullPeerAddress: sipAddress,
- //fullLocalAddress: AccountSettingsModel.fullSipAddress,
- isSecure:1
- })
-
- //Logic.manageAccounts()
- window.attachVirtualWindow(Qt.resolvedUrl('Dialogs/ManageChatRoom.qml'), {
- //window.setView('Dialogs/ManageChatRoom', {
- participantAddress: sipAddress
- })
- }*/
]
model: handlers
diff --git a/linphone-app/ui/views/App/Main/Conversation.qml b/linphone-app/ui/views/App/Main/Conversation.qml
index f01f55f70..e36ce98c3 100644
--- a/linphone-app/ui/views/App/Main/Conversation.qml
+++ b/linphone-app/ui/views/App/Main/Conversation.qml
@@ -70,7 +70,7 @@ ColumnLayout {
//username: Logic.getUsername()
username: chatRoomModel?chatRoomModel.username:Logic.getUsername()
- visible: !groupChat.visible
+ visible: !groupChat.visible
}
Icon {
@@ -107,7 +107,9 @@ ColumnLayout {
}
Text{
anchors.verticalCenter: parent.verticalCenter
- text:'Admin'
+ //: 'Admin' : Admin(istrator)
+ //~ Context One word title for describing the current admin status
+ text: qsTr('adminStatus')
color:"#9FA6AB"
font.pointSize: Units.dp * 8
}
@@ -248,7 +250,8 @@ ColumnLayout {
y:mainBar.height
menuStyle : MenuStyle.aux2
MenuItem{
- text:'Groupe informations'
+ //: 'Group informations' : Item menu to get information about the chat room
+ text: qsTr('conversationMenuGroupInformations')
iconMenu: (hovered ? 'menu_infos_selected' : 'menu_infos')
iconSizeMenu: 25
menuItemStyle : MenuItemStyle.aux2
@@ -264,7 +267,8 @@ ColumnLayout {
color:Colors.u.color
}
MenuItem{
- text:"Conversation's devices"
+ //: "Conversation's devices" : Item menu to get all participant devices of the chat room
+ text: qsTr('conversationMenuDevices')
iconMenu: (hovered ? 'menu_devices_selected' : 'menu_devices' )
iconSizeMenu: 25
menuItemStyle : MenuItemStyle.aux2
@@ -280,7 +284,8 @@ ColumnLayout {
color:Colors.u.color
}
MenuItem{
- text:'Ephemeral messages'
+ //: 'Ephemeral messages' : Item menu to enable ephemeral mode
+ text: qsTr('conversationMenuEphemeral')
iconMenu: (hovered ? 'menu_ephemeral_selected' : 'menu_ephemeral')
iconSizeMenu: 25
menuItemStyle : MenuItemStyle.aux2
diff --git a/linphone-app/ui/views/App/Main/Dialogs/EphemeralChatRoom.qml b/linphone-app/ui/views/App/Main/Dialogs/EphemeralChatRoom.qml
index 24bcaea89..f40e62de7 100644
--- a/linphone-app/ui/views/App/Main/Dialogs/EphemeralChatRoom.qml
+++ b/linphone-app/ui/views/App/Main/Dialogs/EphemeralChatRoom.qml
@@ -17,17 +17,18 @@ DialogPlus {
id:dialog
buttons: [
TextButtonA {
- text: 'CANCEL'
-
+ //: 'cancel' : button text for cancelling operation
+ text: qsTr('cancelButton')
+ capitalization: Font.AllUppercase
onClicked:{
exit(0)
}
},
TextButtonB {
- text: 'START'
+ //: 'start' : button text to start ephemeral mode
+ text: qsTr('startButton')
onClicked: {
- console.log("Timer selected : " +dialog.timer)
if(dialog.timer=== 0)
chatRoomModel.ephemeralEnabled = false
else {
@@ -39,8 +40,8 @@ DialogPlus {
}
]
flat : true
-
- title: "Ephemeral messages"
+ //: "Ephemeral messages" : Popup title for ephemerals
+ title: qsTr('ephemeralTitle')
showCloseCross:false
property ChatRoomModel chatRoomModel
@@ -74,8 +75,12 @@ DialogPlus {
maximumLineCount: 4
wrapMode: Text.Wrap
- text: 'New messages will be deleted on both ends once it has been read by your contact. Select a timeout.'
- +(!chatRoomModel.canBeEphemeral?'\nEphemeral message is only supported in conference based chat room!':'')
+ //: 'New messages will be deleted on both ends once it has been read by your contact. Select a timeout.'
+ //~ Context Explanation for ephemerals
+ text: qsTr('ephemeralText')
+ //: '\nEphemeral message is only supported in conference based chat room!'
+ //~ Context Warning about not being in conference based chat room.
+ +(!chatRoomModel.canBeEphemeral?'\n'+qsTr('ephemeralNotInConference!'):'')
verticalAlignment: Text.AlignVCenter
horizontalAlignment: Text.AlignHCenter
font.pointSize: Units.dp * 11
@@ -100,22 +105,40 @@ DialogPlus {
return 4;
else if( chatRoomModel.ephemeralLifetime <= 604800 )
return 5;
- model:ListModel{
- ListElement{ text:'Disabled'
- value:0}
- ListElement{ text:'1 minute'
- value:60}
- ListElement{ text:'1 heure'
- value:3600}
- ListElement{ text:'1 jour'
- value:86400}
- ListElement{ text:'3 jours'
- value:259200}
- ListElement{ text:'1 semaine'
- value:604800}
- }
+ else
+ return 5;
+ /*
+ property var fields : [
+ //: 'Disabled'
+ qsTr('disabled'),
+ //: '%1 minute'
+ qsTr('nMinute', '', 1).arg(1),
+ //: '%1 hour'
+ qsTr('nHour', '', 1).arg(1),
+ //: '%1 day'
+ qsTr('nDay', '', 1).arg(1),
+ //: '%1 days'
+ qsTr('nDay', '', 3).arg(3),
+ //: '%1 week'
+ qsTr('nWeek', '', 1).arg(1)
+ ]
+ */
+ model:[
+ //: 'Disabled'
+ {text:qsTr('disabled'), value:0},
+ //: '%1 minute'
+ { text:qsTr('nMinute', '', 1).arg(1), value:60},
+ //: '%1 hour'
+ { text:qsTr('nHour', '', 1).arg(1), value:3600},
+ //: '%1 day'
+ { text:qsTr('nDay', '', 1).arg(1), value:86400},
+ //: '%1 days'
+ { text:qsTr('nDay', '', 3).arg(3), value:259200},
+ //: '%1 week'
+ { text:qsTr('nWeek', '', 1).arg(1), value:604800}
+ ]
- onActivated: dialog.timer = model.get(index).value
+ onActivated: dialog.timer = model[index].value
visible: chatRoomModel.canBeEphemeral
}
diff --git a/linphone-app/ui/views/App/Main/Dialogs/InfoChatRoom.qml b/linphone-app/ui/views/App/Main/Dialogs/InfoChatRoom.qml
index d96acabfa..aba2bb68a 100644
--- a/linphone-app/ui/views/App/Main/Dialogs/InfoChatRoom.qml
+++ b/linphone-app/ui/views/App/Main/Dialogs/InfoChatRoom.qml
@@ -17,7 +17,9 @@ DialogPlus {
id:dialog
buttons: [
TextButtonA {
- text: 'QUITTER LE GROUPE'
+ //: 'Exit group' : Button label
+ text: qsTr('quitGroupButton')
+ capitalization: Font.AllUppercase
textButtonStyle: InfoChatRoomStyle.leaveButton
showBorder: true
onClicked:{
@@ -29,7 +31,9 @@ DialogPlus {
Layout.fillWidth: true
},
TextButtonB {
- text: 'OK'
+ //: 'OK' : Button label
+ text: qsTr('ok')
+ capitalization: Font.AllUppercase
onClicked: {
if(!chatRoomModel.hasBeenLeft)
@@ -40,7 +44,8 @@ DialogPlus {
]
flat : true
showCloseCross: true
-
+ //: "Group information" : Popup title.
+ //~ This popup display data about the current chat room
title: "Group information"
property ChatRoomModel chatRoomModel
@@ -73,8 +78,11 @@ DialogPlus {
visible: dialog.adminMode && chatRoomModel.canHandleParticipants
maxMenuHeight: MainWindowStyle.searchBox.maxHeight
- placeholderText: 'Ajouter des participants'
- tooltipText: "Rechercher des participants dans votre liste de contact pour les inviter dans le groupe. L'ajout est effectif une fois le formulaire validé."
+ //: 'Add Participants' : Placeholder in a search bar for adding participant to the chat room
+ placeholderText: qsTr('addParticipantPlaceholder')
+ //: 'Search participants in your contact list in order to invite them into the chat room.'
+ //~ Tooltip Explanation for inviting the selected participants into chat room
+ tooltipText: qsTr('addParticipantTooltip')
actions:[{
icon: 'add_participant',
secure:0,
@@ -104,7 +112,8 @@ DialogPlus {
Text{
Layout.topMargin: InfoChatRoomStyle.results.title.topMargin
Layout.leftMargin: InfoChatRoomStyle.results.title.leftMargin
- text:'Liste des participants'
+ //: 'Participant list'
+ text:qsTr('participantList')
color: InfoChatRoomStyle.results.title.color
font.pointSize:InfoChatRoomStyle.results.title.pointSize
font.weight: InfoChatRoomStyle.results.title.weight
@@ -114,7 +123,9 @@ DialogPlus {
Layout.rightMargin: InfoChatRoomStyle.results.header.rightMargin
Layout.alignment: Qt.AlignRight | Qt.AlignBottom
//Layout.topMargin: InfoChatRoomStyle.results.topMargin
- text : 'Admin'
+ //: 'Admin' : Admin(istrator)
+ //~ one word for admin status
+ text : qsTr('adminStatus')
color: InfoChatRoomStyle.results.header.color
font.pointSize: InfoChatRoomStyle.results.header.pointSize
diff --git a/linphone-app/ui/views/App/Main/Dialogs/InfoEncryption.qml b/linphone-app/ui/views/App/Main/Dialogs/InfoEncryption.qml
index 0d861a155..1d970c69d 100644
--- a/linphone-app/ui/views/App/Main/Dialogs/InfoEncryption.qml
+++ b/linphone-app/ui/views/App/Main/Dialogs/InfoEncryption.qml
@@ -17,14 +17,19 @@ DialogPlus {
id:dialog
buttons: [
TextButtonA {
- text: 'CANCEL'
- //visible: addressToCall != ''
+ //: 'CANCEL' : button text for cancelling operation
+ text: qsTr('cancelButton')
+ capitalization: Font.AllUppercase
onClicked:{
exit(0)
}
},
TextButtonB {
- text: (addressToCall != '' ? 'CALL' : 'OK')
+ //: 'CALL' : Button that lead to a call
+ text: (addressToCall != '' ? qsTr('callButton')
+ //: 'OK' : Button that validate the popup to be redirected to the device list
+ : qsTr('okButton')
+ )
textButtonStyle: InfoEncryptionStyle.okButton
onClicked: {
if(addressToCall != ''){
@@ -35,8 +40,8 @@ DialogPlus {
}
]
flat : true
-
- title: "End-to-end encrypted"
+ //: 'End-to-end encrypted' Popup title about encryption information.
+ title: qsTr('infoEncryptionTitle')
showCloseCross:false
property int securityLevel
@@ -76,11 +81,12 @@ DialogPlus {
color: Colors.d.color
wrapMode: Text.Wrap
-
- text: "Instant messages are end-to-end encrypted in secured conversations. It is possible to upgrade the security level of a conversation by authentificating participants."
+ //: "Instant messages are end-to-end encrypted in secured conversations. It is possible to upgrade the security level of a conversation by authentificating participants."
+ //~ Context Explanation of Encryption
+ text: qsTr('encryptionExplanation')
}
Text{
- Layout.fillWidth: true
+ Layout.fillWidth: true
Layout.alignment: Qt.AlignCenter
Layout.leftMargin: 10
Layout.rightMargin: 10
@@ -91,7 +97,9 @@ DialogPlus {
color: Colors.d.color
wrapMode: Text.Wrap
- text :"To do so, call the contact and follow the authentification process."
+ //: "To do so, call the contact and follow the authentification process."
+ //~ Context Explanation process
+ text: qsTr('encryptionProcessExplanation')
}
}
}
\ No newline at end of file
diff --git a/linphone-app/ui/views/App/Main/Dialogs/ManageChatRoom.qml b/linphone-app/ui/views/App/Main/Dialogs/ManageChatRoom.qml
deleted file mode 100644
index fb644e96f..000000000
--- a/linphone-app/ui/views/App/Main/Dialogs/ManageChatRoom.qml
+++ /dev/null
@@ -1,142 +0,0 @@
-import QtQuick 2.7
-
-import Common 1.0
-import Linphone 1.0
-import Utils 1.0
-
-import App.Styles 1.0
-
-
-// =============================================================================
-
-DialogPlus {
- property ChatRoomModel chatRoomModel
- property var participantAddress : (chatRoomModel?chatRoomModel.getParticipants(): null)
-
- buttons: [
- TextButtonA {
- text: 'cancel'
-
- onClicked: exit(0)
- },
- TextButtonB {
- text: 'del'
- visible:chatRoomModel
-
- onClicked: {
- if(chatRoomModel){
- chatRoomModel.leaveChatRoom()
- exit(0)
- }
- }
- },
- TextButtonB {
- text: 'ok'
-
- onClicked: {
- if(chatRoomModel && CallsListModel.createSecureChat(subject.text, participantAddress))
- exit(0)
- }
- }
- ]
-
- buttonsAlignment: Qt.AlignCenter
-
- height: ManageAccountsStyle.height + 30
- width: ManageAccountsStyle.width
-
- // ---------------------------------------------------------------------------
-
- Form {
- anchors.fill: parent
- orientation: Qt.Vertical
-
- FormLine {
-
- FormGroup {
- label: 'Details'
-
- FormLine {
- FormGroup {
- label: 'Subject*'
- TextField {
- id:subject
- placeholderText :"Subject"
- text:(chatRoomModel?chatRoomModel.getSubject():'')
- Keys.onReturnPressed: nextItemInFocusChain().forceActiveFocus()
- error : text == ''
- TooltipArea{
- text : 'Current subject of the ChatRoom. It cannot be empty'
- }
- }
- }
- }
- }
- }
-
-
- FormLine {
- FormGroup {
- label: 'Participants : '+participantAddress
- /*
-ScrollableListViewField {
-width: parent.width
-height: ManageAccountsStyle.accountSelector.height
-
-radius: 0
-
-ScrollableListView {
-id: view
-
-property string textRole: 'fullSipAddress' // Used by delegate.
-
-anchors.fill: parent
-model: AccountSettingsModel.accounts
-
-onModelChanged: currentIndex = Utils.findIndex(AccountSettingsModel.accounts, function (account) {
-return account.sipAddress === AccountSettingsModel.sipAddress
-})
-
-delegate: CommonItemDelegate {
-id: item
-container: view
-flattenedModel: modelData
-itemIcon: ''//Start with no error and let some time before getting status with the below timer
-width: parent.width
-
-Timer{// This timer is used to synchronize registration state by proxy, without having to deal with change signals
-interval: 1000; running: item.visible; repeat: true
-onTriggered:itemIcon= Logic.getItemIcon(flattenedModel)
-}
-
-ActionButton {
-icon: 'options'
-iconSize: 30
-anchors.fill: parent
-visible:false
-//TODO handle click and jump to proxy config settings
-}
-
-onClicked: {
-container.currentIndex = index
-if(flattenedModel.proxyConfig)
-AccountSettingsModel.setDefaultProxyConfig(flattenedModel.proxyConfig)
-else
-AccountSettingsModel.setDefaultProxyConfig()
-}
-
-MessageCounter {
-anchors.fill: parent
-count: flattenedModel.unreadMessageCount+flattenedModel.missedCallCount
-}
-}
-}
-}
-*/
- }
-
- }
-
- }
-}
-
diff --git a/linphone-app/ui/views/App/Main/Dialogs/NewChatRoom.qml b/linphone-app/ui/views/App/Main/Dialogs/NewChatRoom.qml
index e4dea5fa0..9a19527a4 100644
--- a/linphone-app/ui/views/App/Main/Dialogs/NewChatRoom.qml
+++ b/linphone-app/ui/views/App/Main/Dialogs/NewChatRoom.qml
@@ -22,13 +22,17 @@ DialogPlus {
buttons: [
TextButtonA {
- text: 'CANCEL'
+ //: 'Cancel' : Cancel button
+ text: qsTr('cancelButton')
+ capitalization: Font.AllUppercase
onClicked: exit(0)
},
TextButtonB {
//enabled: toAddView.count >= conferenceManager.minParticipants
- text: 'LANCER'
+ //: 'Launch' : Start button
+ text: qsTr('startButton')
+ capitalization: Font.AllUppercase
onClicked: {
if(CallsListModel.createChatRoom(subject.text, secureSwitch.checked, selectedParticipants.getParticipants() ))
@@ -38,7 +42,8 @@ DialogPlus {
]
buttonsAlignment: Qt.AlignRight
- title:'Lancer un chat de groupe'
+ //: 'Start a chat room' : Title of a popup about creation of a chat room
+ title:qsTr('newChatRoomTitle')
height: 500
width: 800
@@ -70,7 +75,8 @@ DialogPlus {
spacing:4
Text {
Layout.fillWidth: true
- text:'Would you like to encrypt your chat?'
+ //: 'Would you like to encrypt your chat?' : Ask about setting the chat room as secured.
+ text:qsTr('askEncryption')
color: Colors.g.color
font.pointSize: Units.dp * 11
font.weight: Font.DemiBold
@@ -94,7 +100,6 @@ DialogPlus {
anchors.leftMargin : 5
anchors.verticalCenter: parent.verticalCenter
width:50
- //Layout.preferredWidth: 50
enabled:true
onClicked: checked = !checked
indicatorStyle: SwitchStyle.aux
@@ -121,7 +126,8 @@ DialogPlus {
spacing:10
Text{
textFormat: Text.RichText
- text :'Nom du groupe' +'*'
+ //: 'Subject' : Label of a text field about the subject of the chat room
+ text :qsTr('subjectLabel') +'*'
color: Colors.g.color
font.pointSize: Units.dp * 11
font.weight: Font.DemiBold
@@ -130,12 +136,14 @@ DialogPlus {
id:subject
Layout.fillWidth: true
Layout.rightMargin: 15
- placeholderText :"Nommer le groupe"
+ //: 'Give a subject' : Placeholder in a form about setting a subject
+ placeholderText :'Give a subject'
text:(chatRoomModel?chatRoomModel.getSubject():'')
Keys.onReturnPressed: nextItemInFocusChain().forceActiveFocus()
- //error : text == ''
TooltipArea{
- text : 'Current subject of the ChatRoom. It cannot be empty'
+ //: 'Current subject of the Chat Room. It cannot be empty'
+ //~ Tooltip Explanation about the subject of the chat room
+ text : qsTr('subjectTooltip')
}
}
@@ -146,10 +154,10 @@ DialogPlus {
ColumnLayout {
Layout.fillWidth: true
Layout.fillHeight: true
- //Layout.preferredHeight: 200
spacing:20
Text{
- text :'Contacts récents'
+ //: 'Last contacts' : Header for showing last contacts
+ text :'Last contacts'
color: Colors.g.color
font.pointSize: Units.dp * 11
font.weight: Font.DemiBold
@@ -163,7 +171,6 @@ DialogPlus {
id:lastContacts
property int reloadCount : 0
model:TimelineListModel.getLastChatRooms(5)
- //[{username:'Danyl Robertson'}, {username:'Toto harrytop'}]
delegate :
Item{
Layout.fillHeight: true
@@ -184,25 +191,11 @@ DialogPlus {
anchors.topMargin: -5
visible: UtilsCpp.hasCapability(modelData.sipAddress, LinphoneEnums.FriendCapabilityLimeX3Dh)
icon: 'secure_on'
- iconSize:20/*
- Rectangle{
- id:secureMask
- anchors.fill:parent
- color:'white'
- opacity: 0.5
- visible: smartSearchBar.isIgnored(modelData.sipAddress)
- Connections{// Workaround for refreshing data on events
- target:lastContacts
- onReloadCountChanged: {
- secureMask.visible=smartSearchBar.isIgnored(modelData.sipAddress)
- }
- }
- }*/
+ iconSize:20
}
}
Text{
Layout.fillHeight: true
- //Layout.maximumHeight: 100
Layout.preferredWidth: 60
Layout.alignment: Qt.AlignVCenter | Qt.AlignTop
maximumLineCount: 5
@@ -252,48 +245,6 @@ DialogPlus {
}
}
}
- /*
- ScrollableListViewField {
- Layout.fillHeight: true
- Layout.fillWidth: true
-
- readOnly: toAddView.count >= conferenceManager.maxParticipants
-
- SipAddressesView {
- anchors.fill: parent
-
- actions: [{
- icon: 'transfer',
- handler: function (entry) {
- conferenceHelperModel.toAdd.addToConference(entry.sipAddress)
- }
- }]
-
- genSipAddress: filter.text
-
- model: ConferenceHelperModel {
- id: conferenceHelperModel
- }
-
- onEntryClicked: actions[0].handler(entry)
- }
- }
- }
- }
-*/
- // -------------------------------------------------------------------------
- // Separator.
- // -------------------------------------------------------------------------
- /*
- Rectangle {
- Layout.fillHeight: true
- Layout.leftMargin: ConferenceManagerStyle.columns.separator.leftMargin
- Layout.preferredWidth: ConferenceManagerStyle.columns.separator.width
- Layout.rightMargin: ConferenceManagerStyle.columns.separator.rightMargin
-
- color: ConferenceManagerStyle.columns.separator.color
- }
-*/
// -------------------------------------------------------------------------
// See and remove selected addresses.
// -------------------------------------------------------------------------
@@ -324,8 +275,10 @@ DialogPlus {
showHeader:false
maxMenuHeight: MainWindowStyle.searchBox.maxHeight
- placeholderText: 'toto'
- tooltipText: 'tooltip'
+ //: 'Select participants' : Placeholder for a search on participant to add them in selection.
+ placeholderText: qsTr('participantSelectionPlaceholder')
+ //: 'Search in your contacts or add a custom one to the chat room.'
+ tooltipText: qsTr('participantSelectionTooltip')
actions:[{
icon: 'add_participant',
secure:0,
@@ -340,28 +293,16 @@ DialogPlus {
selectedParticipants.add(entry)
smartSearchBar.addAddressToIgnore(entry);
++lastContacts.reloadCount
- //selectedParticipants.append({$sipAddress:entry})
}
- //resultExceptions: selectedParticipants
}
-
- /*
- TextField {
- id: filter
-
- Layout.fillWidth: true
-
- icon: 'search'
-
- onTextChanged: conferenceHelperModel.setFilter(text)
- }
- */
Text{
Layout.preferredHeight: 20
Layout.rightMargin: 65
Layout.alignment: Qt.AlignRight | Qt.AlignBottom
Layout.topMargin: ConferenceManagerStyle.columns.selector.spacing
- text : 'Admin'
+ //: 'Admin' : Admin(istrator)
+ //~ one word for admin status
+ text : qsTr('adminStatus')
color: Colors.g.color
font.pointSize: Units.dp * 11
@@ -390,7 +331,9 @@ DialogPlus {
actions: [{
icon: 'remove_participant',
- tooltipText: 'Remove this participant from the selection',
+ //: 'Remove this participant from the selection' : Explanation abo^ut removing participant from a selection
+ //~ Tooltip This is a tooltip
+ tooltipText: qsTr('removeParticipantSelection'),
handler: function (entry) {
smartSearchBar.removeAddressToIgnore(entry.sipAddress)
selectedParticipants.remove(entry)
@@ -405,81 +348,19 @@ DialogPlus {
chatRoomModel:null
}
-
onEntryClicked: actions[0].handler(entry)
-
}
}
-
}
-
}
-
- /*
- SearchBox{
- id: searchBox
- anchors.left:parent.left
- anchors.right:parent.right
- anchors.top:parent.top
- anchors.topMargin: 30
- anchors.leftMargin:15
- anchors.rightMargin: 15
-
- placeholderText:'Search contact or enter SIP address'
-
- entryHeight: 200
- SipAddressesView {
- id: view
- actions: [{
- icon: 'add',
- secure:0,
- handler: function (entry) {
- //searchBox.closeMenu()
- //searchBox.launchVideoCall(entry.sipAddress)
- },
- visible: true
- }]
- genSipAddress: searchBox.filter
-
- model: SearchSipAddressesModel {}
- }
-
- }
- ScrollableListViewField {
- anchors.top:search.bottom
- anchors.bottom:parent.bottom
- anchors.left:parent.left
- anchors.right:parent.right
- anchors.leftMargin:15
- anchors.rightMargin: 15
- anchors.topMargin: 15
-
-
- SipAddressesView {
- id: toAddView
-
- anchors.fill: parent
-
- actions: [{
- icon: 'cancel',
- handler: function (entry) {
- //model.removeFromConference(entry.sipAddress)
- }
- }]
-
- //model: conferenceHelperModel.toAdd
-
- //onEntryClicked: actions[0].handler(entry)
- }
- }
- }*/
Item{
Layout.fillWidth: true
Layout.preferredHeight: 20
Text{
anchors.fill:parent
textFormat: Text.RichText
- text : '* Obligatoire'
+ //: 'Required' : Word relative to a star to explain that it is a requirement (Field form)
+ text : '* '+qsTr('requiredField')
//font.weight: Font.DemiBold
color: Colors.g.color
font.pointSize: Units.dp * 8
diff --git a/linphone-app/ui/views/App/Main/MainWindow.qml b/linphone-app/ui/views/App/Main/MainWindow.qml
index 3be33607b..ae3177b8b 100644
--- a/linphone-app/ui/views/App/Main/MainWindow.qml
+++ b/linphone-app/ui/views/App/Main/MainWindow.qml
@@ -271,7 +271,10 @@ ApplicationWindow {
name: qsTr('contactsEntry')
visible: SettingsModel.contactsEnabled
- onSelected: setView('Contacts')
+ onSelected: {
+ timeline.model.unselectAll()
+ setView('Contacts')
+ }
Icon{
anchors.right:parent.right
anchors.verticalCenter: parent.verticalCenter
diff --git a/linphone-app/ui/views/App/Settings/Dialogs/SettingsLdapEdit.qml b/linphone-app/ui/views/App/Settings/Dialogs/SettingsLdapEdit.qml
index d77946da9..f8ec495e6 100644
--- a/linphone-app/ui/views/App/Settings/Dialogs/SettingsLdapEdit.qml
+++ b/linphone-app/ui/views/App/Settings/Dialogs/SettingsLdapEdit.qml
@@ -57,6 +57,7 @@ DialogPlus {
Keys.onReturnPressed: nextItemInFocusChain().forceActiveFocus()
TooltipArea{
text : qsTr('displayNameTooltip')//'The display name of the server to be shown in the list'
+ //tooltipParent: dialog
}
}
}
@@ -79,6 +80,7 @@ DialogPlus {
error : ldapData.serverFieldError
TooltipArea{
text : qsTr('serverTooltip')//'LDAP Server. eg: ldap:/// for a localhost server or ldap://ldap.example.org/'
+ //tooltipParent: dialog
}
}
}
@@ -96,6 +98,7 @@ DialogPlus {
onTextChanged: ldapData.bindDn= text
TooltipArea{
text : qsTr('bindDNTooltip')//'The bind DN is the credential that is used to authenticate against an LDAP.\n eg: cn=ausername,ou=people,dc=bc,dc=com'
+ //tooltipParent: dialog
}
}
}
@@ -162,6 +165,7 @@ DialogPlus {
onActivated: ldapData.verifyServerCertificates = index-1
TooltipArea{
text : qsTr('verifyTLSTooltip')//'Specify whether the tls server certificate must be verified when connecting to a LDAP server.'
+ //tooltipParent: dialog
}
}
}
@@ -187,6 +191,7 @@ DialogPlus {
onTextChanged: ldapData.baseObject = text
TooltipArea{
text : qsTr('baseObjectTooltip')//'BaseObject is a specification for LDAP Search Scopes that specifies that the Search Request should only be performed against the entry specified as the search base DN.\n\nNo entries below it will be considered.'
+ //tooltipParent: dialog
}
}
}
@@ -206,6 +211,7 @@ DialogPlus {
placeholderText :"(sn=%s)"
TooltipArea{
text : qsTr('filterTooltip')//'The search is base on this filter to search friends. Default value : (sn=%s)'
+ //tooltipParent: dialog
}
}
}
@@ -249,6 +255,7 @@ DialogPlus {
// -----------------------------------------------------------------------
Form {
+ id:parsingForm
title: qsTr('parsingTitle')//'Parsing'
width: parent.width
@@ -263,6 +270,7 @@ DialogPlus {
onTextChanged: ldapData.nameAttributes = text
TooltipArea{
text : qsTr('nameAttributesTooltip')//'Check these attributes To build Name Friend, separated by a comma and the first is the highest priority. The default value is: sn'
+ tooltipParent: nameAttributes
}
}
}
@@ -278,6 +286,7 @@ DialogPlus {
onTextChanged: ldapData.sipAttributes = text
TooltipArea{
text : qsTr('sipAttributesTooltip')//'Check these attributes to build the SIP username in address of Friend. Attributes are separated by a comma and the first is the highest priority. The default value is: mobile,telephoneNumber,homePhone,sn'
+ tooltipParent: sipAttributes
}
}
}
@@ -293,6 +302,7 @@ DialogPlus {
onTextChanged: ldapData.sipDomain = text
TooltipArea{
text : qsTr('domainTooltip')//'Add the domain to the sip address(username@domain). The default value is sip.linphone.org'
+ //tooltipParent: dialog
}
}
}
diff --git a/linphone-app/ui/views/App/Settings/SettingsAdvanced.qml b/linphone-app/ui/views/App/Settings/SettingsAdvanced.qml
index 3353bb395..0fc2ee68c 100644
--- a/linphone-app/ui/views/App/Settings/SettingsAdvanced.qml
+++ b/linphone-app/ui/views/App/Settings/SettingsAdvanced.qml
@@ -279,13 +279,14 @@ TabContainer {
id: pluginChoice
model:ContactsImporterPluginsManager.getPlugins()
textRole: "pluginTitle"
- displayText: currentIndex === -1 ? 'No Plugins to load' : currentText
+ //: 'No Plugins to load' : Text in combobox
+ displayText: currentIndex === -1 ? qsTr('noPlugin') : currentText
Text{// Hack, combobox show empty text when empty
anchors.fill:parent
visible:pluginChoice.currentIndex===-1
verticalAlignment: Qt.AlignVCenter
horizontalAlignment: Qt.AlignHCenter
- text: 'No Plugins to load'
+ text: qsTr('noPlugin')
font {
bold:false
italic: true