From 59ea9c69e5eb483527ee51821e651a18152e8584 Mon Sep 17 00:00:00 2001 From: Julien Wadel Date: Wed, 26 Jul 2023 16:49:02 +0200 Subject: [PATCH] Make an option for displaying only usernames instead of the whole SIP address. Move options button in waiting room because of readability. Add a confirmation before calling a group from conversation. Make an option to set RLS URI. Avoid to close smart search bar when changing focus. It will now close only on empty text, esc keybutton or by manually closing it (cross icon when text has been entered) Hide "adding contact" if search box is empty. Add a switch in accounts selection to easily register them. Update SDK to 5.2.81 # Conflicts: # linphone-app/src/components/search/SearchSipAddressesModel.cpp # linphone-sdk --- CHANGELOG.md | 6 +- linphone-app/assets/languages/cs.ts | 44 +++++++++-- linphone-app/assets/languages/da.ts | 44 +++++++++-- linphone-app/assets/languages/de.ts | 44 +++++++++-- linphone-app/assets/languages/en.ts | 44 +++++++++-- linphone-app/assets/languages/es.ts | 44 +++++++++-- linphone-app/assets/languages/fr_FR.ts | 44 +++++++++-- linphone-app/assets/languages/hu.ts | 44 +++++++++-- linphone-app/assets/languages/it.ts | 44 +++++++++-- linphone-app/assets/languages/ja.ts | 44 +++++++++-- linphone-app/assets/languages/lt.ts | 44 +++++++++-- linphone-app/assets/languages/pt_BR.ts | 44 +++++++++-- linphone-app/assets/languages/ru.ts | 44 +++++++++-- linphone-app/assets/languages/sv.ts | 44 +++++++++-- linphone-app/assets/languages/tr.ts | 44 +++++++++-- linphone-app/assets/languages/uk.ts | 44 +++++++++-- linphone-app/assets/languages/zh_CN.ts | 44 +++++++++-- .../components/assistant/AssistantModel.cpp | 1 - .../components/contacts/ContactsListModel.cpp | 3 +- .../participant/ParticipantListModel.cpp | 5 +- .../search/SearchSipAddressesModel.cpp | 8 +- .../settings/AccountSettingsModel.cpp | 64 +++++++++------- .../settings/AccountSettingsModel.hpp | 2 + .../src/components/settings/SettingsModel.cpp | 76 ++++++++----------- .../src/components/settings/SettingsModel.hpp | 15 +++- .../Common/Form/CommonItemDelegate.qml | 8 +- .../modules/Common/Form/Fields/TextField.qml | 2 +- .../ui/modules/Common/Form/SearchBox.qml | 30 +++++--- .../Common/Menus/DropDownDynamicMenu.qml | 2 +- .../Linphone/Account/AccountStatus.qml | 2 +- .../modules/Linphone/Chat/ChatFileMessage.qml | 2 +- .../modules/Linphone/Chat/IncomingMessage.qml | 2 +- .../ui/modules/Linphone/Contact/Contact.qml | 2 +- .../NotificationReceivedMessage.qml | 2 +- .../SmartSearchBar/SmartSearchBar.qml | 3 - .../Linphone/View/SipAddressesView.qml | 2 +- .../views/App/Calls/AbstractStartingCall.qml | 2 +- .../ui/views/App/Calls/Conference.qml | 2 +- linphone-app/ui/views/App/Calls/Incall.qml | 2 +- .../ui/views/App/Calls/WaitingRoom.qml | 29 +++++-- .../ui/views/App/Main/Conversation.qml | 41 +++++++--- .../views/App/Main/Dialogs/ManageAccounts.qml | 18 ++++- .../ui/views/App/Main/HistoryView.qml | 2 +- linphone-app/ui/views/App/Main/MainWindow.qml | 13 +++- .../ui/views/App/Settings/SettingsNetwork.qml | 16 ++-- .../ui/views/App/Settings/SettingsUi.qml | 16 ++++ .../App/Styles/Calls/WaitingRoomStyle.qml | 12 +-- 47 files changed, 814 insertions(+), 280 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 5e2dab076..88fb83eb1 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -11,12 +11,15 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 - Bubble chat layout. - Camera stickers and conference layout stabilization. - Robot voice with some devices (SDK fix). +- Smart search bar behavior on empty text and focus changing. ### Added - VFS Encryption. - File viewer in chats (Image/Animated Image/Video/Texts/Pdf) with the option to export the file for VFS mode. - Accept/decline CLI commands. - Colored Emojis with its own font family. +- Option to set RLS URI in settings. +- Option to display only usernames when showing SIP addresses. - OAuth2 connection to retrieve remote provisioning (Experimental and not usable without configuration). - Create an account with a manual validation (external captcha as of 5.1.0). - Add/View contact from a message. @@ -31,7 +34,8 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 - Create thumbnails into memory instead of disk. - Display video thumbnails. - Crop thumbnail and pictures if distored. -- Update SDK to 5.2.75 +- Enable registration from accounts list. +- Update SDK to 5.2.81 ### Removed - Picture zoom on mouse over. diff --git a/linphone-app/assets/languages/cs.ts b/linphone-app/assets/languages/cs.ts index 04a266324..28ad22c92 100644 --- a/linphone-app/assets/languages/cs.ts +++ b/linphone-app/assets/languages/cs.ts @@ -1118,6 +1118,26 @@ Adresa URL serveru není nakonfigurována. 'Enable notifications' : Item menu to enable chat's notifications Povolit oznámení + + groupCallConfirmTitle + 'Group call' : Title for a group call confirmation. + + + + groupCallConfirmDescription + 'Do you want to start a group call?<br/>Everyone in this group will receive a call to join the meeting." + + + + cancelButton + 'Cancel' : Cancel button + + + + startButton + 'Start' : Start button + + CreateAppSipAccount @@ -1809,6 +1829,7 @@ Klikněte zde: <a href="%1">%1</a> contactsEntry + 'Contacts' : Contacts section label in main waindow. KONTAKTY @@ -1863,6 +1884,11 @@ Klikněte zde: <a href="%1">%1</a> 'Do you want to download and apply configuration from this URL?' : text to confirm to fetch a specified URL Chcete stáhnout a použít konfiguraci z této adresy URL? + + localContactsEntry + 'Local contacts' : Contacts section label in main window when we have to specify that they are local to the application. + + MainWindowMenuBar @@ -3170,14 +3196,6 @@ Klikněte zde: <a href="%1">%1</a> rlsUriLabel Použít RLS URI - - rlsUriAuto - AUTOMATICKY - - - rlsUriDisabled - NIKDY - showNetworkSettingsLabel Zobrazit nastavení sítě @@ -3669,6 +3687,16 @@ Klikněte zde: <a href="%1">%1</a> 'Emojis' : Label for changing emojis fonts Emotikony + + displayUsernamesLabel + 'Display only usernames' : Option text to display only usernames from SIP addresses. + + + + displayUsernamesTooltip + 'Display only usernames from SIP addresses' : tooltip for addresses display mode where username is only shown. + + SettingsVideo diff --git a/linphone-app/assets/languages/da.ts b/linphone-app/assets/languages/da.ts index 851402e24..46966c130 100644 --- a/linphone-app/assets/languages/da.ts +++ b/linphone-app/assets/languages/da.ts @@ -1112,6 +1112,26 @@ Server url ikke konfigureret. 'Enable notifications' : Item menu to enable chat's notifications + + groupCallConfirmTitle + 'Group call' : Title for a group call confirmation. + + + + groupCallConfirmDescription + 'Do you want to start a group call?<br/>Everyone in this group will receive a call to join the meeting." + + + + cancelButton + 'Cancel' : Cancel button + + + + startButton + 'Start' : Start button + + CreateAppSipAccount @@ -1799,6 +1819,7 @@ Klik her: <a href="%1">%1</a> contactsEntry + 'Contacts' : Contacts section label in main waindow. KONTAKTER @@ -1853,6 +1874,11 @@ Klik her: <a href="%1">%1</a> 'Do you want to download and apply configuration from this URL?' : text to confirm to fetch a specified URL + + localContactsEntry + 'Local contacts' : Contacts section label in main window when we have to specify that they are local to the application. + + MainWindowMenuBar @@ -3133,14 +3159,6 @@ Klik her: <a href="%1">%1</a> rlsUriLabel Brug RLS URI - - rlsUriAuto - AUTO - - - rlsUriDisabled - ALDRIG - showNetworkSettingsLabel Vis netværks indstillinger @@ -3632,6 +3650,16 @@ Klik her: <a href="%1">%1</a> 'Emojis' : Label for changing emojis fonts + + displayUsernamesLabel + 'Display only usernames' : Option text to display only usernames from SIP addresses. + + + + displayUsernamesTooltip + 'Display only usernames from SIP addresses' : tooltip for addresses display mode where username is only shown. + + SettingsVideo diff --git a/linphone-app/assets/languages/de.ts b/linphone-app/assets/languages/de.ts index d92c70a19..326d2b429 100644 --- a/linphone-app/assets/languages/de.ts +++ b/linphone-app/assets/languages/de.ts @@ -1112,6 +1112,26 @@ Server URL ist nicht konfiguriert. 'Enable notifications' : Item menu to enable chat's notifications + + groupCallConfirmTitle + 'Group call' : Title for a group call confirmation. + + + + groupCallConfirmDescription + 'Do you want to start a group call?<br/>Everyone in this group will receive a call to join the meeting." + + + + cancelButton + 'Cancel' : Cancel button + ABBRECHEN + + + startButton + 'Start' : Start button + START + CreateAppSipAccount @@ -1799,6 +1819,7 @@ Klicken Sie hier: <a href="%1">%1</a> contactsEntry + 'Contacts' : Contacts section label in main waindow. KONTAKTE @@ -1853,6 +1874,11 @@ Klicken Sie hier: <a href="%1">%1</a> 'Do you want to download and apply configuration from this URL?' : text to confirm to fetch a specified URL + + localContactsEntry + 'Local contacts' : Contacts section label in main window when we have to specify that they are local to the application. + + MainWindowMenuBar @@ -3133,14 +3159,6 @@ Klicken Sie hier: <a href="%1">%1</a> rlsUriLabel Benutze RLS URI - - rlsUriAuto - AUTOMATISCH - - - rlsUriDisabled - NIE - showNetworkSettingsLabel Netzwerkeinstellungen anzeigen @@ -3632,6 +3650,16 @@ Klicken Sie hier: <a href="%1">%1</a> 'Emojis' : Label for changing emojis fonts + + displayUsernamesLabel + 'Display only usernames' : Option text to display only usernames from SIP addresses. + + + + displayUsernamesTooltip + 'Display only usernames from SIP addresses' : tooltip for addresses display mode where username is only shown. + + SettingsVideo diff --git a/linphone-app/assets/languages/en.ts b/linphone-app/assets/languages/en.ts index 897235ee1..8773634b8 100644 --- a/linphone-app/assets/languages/en.ts +++ b/linphone-app/assets/languages/en.ts @@ -1112,6 +1112,26 @@ Server URL not configured. 'Enable notifications' : Item menu to enable chat's notifications Enable notifications + + groupCallConfirmTitle + 'Group call' : Title for a group call confirmation. + Group call + + + groupCallConfirmDescription + 'Do you want to start a group call?<br/>Everyone in this group will receive a call to join the meeting." + Do you want to start a group call?<br/>Everyone in this group will receive a call to join the meeting. + + + cancelButton + 'Cancel' : Cancel button + Cancel + + + startButton + 'Start' : Start button + Start + CreateAppSipAccount @@ -1799,6 +1819,7 @@ Click here: <a href="%1">%1</a> contactsEntry + 'Contacts' : Contacts section label in main waindow. CONTACTS @@ -1853,6 +1874,11 @@ Click here: <a href="%1">%1</a> 'Do you want to download and apply configuration from this URL?' : text to confirm to fetch a specified URL Do you want to download and apply configuration from this URL? + + localContactsEntry + 'Local contacts' : Contacts section label in main window when we have to specify that they are local to the application. + Local contacts + MainWindowMenuBar @@ -3158,14 +3184,6 @@ Click here: <a href="%1">%1</a> rlsUriLabel Use RLS URI - - rlsUriAuto - AUTO - - - rlsUriDisabled - NEVER - showNetworkSettingsLabel Show network settings @@ -3657,6 +3675,16 @@ Click here: <a href="%1">%1</a> 'Emojis' : Label for changing emojis fonts Emojis + + displayUsernamesLabel + 'Display only usernames' : Option text to display only usernames from SIP addresses. + Display only usernames + + + displayUsernamesTooltip + 'Display only usernames from SIP addresses' : tooltip for addresses display mode where username is only shown. + Display only usernames from SIP addresses + SettingsVideo diff --git a/linphone-app/assets/languages/es.ts b/linphone-app/assets/languages/es.ts index 54df21709..3438bd115 100644 --- a/linphone-app/assets/languages/es.ts +++ b/linphone-app/assets/languages/es.ts @@ -1112,6 +1112,26 @@ URL del servidor no configurada. 'Enable notifications' : Item menu to enable chat's notifications + + groupCallConfirmTitle + 'Group call' : Title for a group call confirmation. + + + + groupCallConfirmDescription + 'Do you want to start a group call?<br/>Everyone in this group will receive a call to join the meeting." + + + + cancelButton + 'Cancel' : Cancel button + + + + startButton + 'Start' : Start button + + CreateAppSipAccount @@ -1799,6 +1819,7 @@ Haga clic aquí: <a href="%1">%1 </a> contactsEntry + 'Contacts' : Contacts section label in main waindow. CONTACTOS @@ -1853,6 +1874,11 @@ Haga clic aquí: <a href="%1">%1 </a> 'Do you want to download and apply configuration from this URL?' : text to confirm to fetch a specified URL + + localContactsEntry + 'Local contacts' : Contacts section label in main window when we have to specify that they are local to the application. + + MainWindowMenuBar @@ -3133,14 +3159,6 @@ Haga clic aquí: <a href="%1">%1 </a> rlsUriLabel Usar URI RLS - - rlsUriAuto - AUTOMÁTICO - - - rlsUriDisabled - NUNCA - showNetworkSettingsLabel Mostrar ajustes de red @@ -3632,6 +3650,16 @@ Haga clic aquí: <a href="%1">%1 </a> 'Emojis' : Label for changing emojis fonts + + displayUsernamesLabel + 'Display only usernames' : Option text to display only usernames from SIP addresses. + + + + displayUsernamesTooltip + 'Display only usernames from SIP addresses' : tooltip for addresses display mode where username is only shown. + + SettingsVideo diff --git a/linphone-app/assets/languages/fr_FR.ts b/linphone-app/assets/languages/fr_FR.ts index 0770b5278..4c3138e5d 100644 --- a/linphone-app/assets/languages/fr_FR.ts +++ b/linphone-app/assets/languages/fr_FR.ts @@ -1112,6 +1112,26 @@ URL du serveur non configurée. 'Enable notifications' : Item menu to enable chat's notifications Activer les notifications + + groupCallConfirmTitle + 'Group call' : Title for a group call confirmation. + Appel de groupe + + + groupCallConfirmDescription + 'Do you want to start a group call?<br/>Everyone in this group will receive a call to join the meeting." + Voule-vous démarrer un appel de groupe?<br/>Toutes les personnes dans cette conversation vont recevoir un appel. + + + cancelButton + 'Cancel' : Cancel button + Annuler + + + startButton + 'Start' : Start button + Démarrer + CreateAppSipAccount @@ -1799,6 +1819,7 @@ Cliquez ici : <a href="%1">%1</a> contactsEntry + 'Contacts' : Contacts section label in main waindow. CONTACTS @@ -1853,6 +1874,11 @@ Cliquez ici : <a href="%1">%1</a> 'Do you want to download and apply configuration from this URL?' : text to confirm to fetch a specified URL Voulez-vous télécharger et appliquer la configuration depuis cette adresse ? + + localContactsEntry + 'Local contacts' : Contacts section label in main window when we have to specify that they are local to the application. + Contacts locaux + MainWindowMenuBar @@ -3133,14 +3159,6 @@ Cliquez ici : <a href="%1">%1</a> rlsUriLabel Utiliser l'URI RLS - - rlsUriAuto - AUTO - - - rlsUriDisabled - JAMAIS - showNetworkSettingsLabel Afficher les paramètres réseaux @@ -3632,6 +3650,16 @@ Cliquez ici : <a href="%1">%1</a> 'Emojis' : Label for changing emojis fonts Émojis + + displayUsernamesLabel + 'Display only usernames' : Option text to display only usernames from SIP addresses. + Noms d'utilisateurs uniquement. + + + displayUsernamesTooltip + 'Display only usernames from SIP addresses' : tooltip for addresses display mode where username is only shown. + Lorsque des adresses SIP sont affichées, n'afficher que les noms d'utilisateurs + SettingsVideo diff --git a/linphone-app/assets/languages/hu.ts b/linphone-app/assets/languages/hu.ts index 74a9b40e5..1b4d60995 100644 --- a/linphone-app/assets/languages/hu.ts +++ b/linphone-app/assets/languages/hu.ts @@ -1106,6 +1106,26 @@ A kiszolgáló URL-je nincs konfigurálva. 'Enable notifications' : Item menu to enable chat's notifications + + groupCallConfirmTitle + 'Group call' : Title for a group call confirmation. + + + + groupCallConfirmDescription + 'Do you want to start a group call?<br/>Everyone in this group will receive a call to join the meeting." + + + + cancelButton + 'Cancel' : Cancel button + Mégse + + + startButton + 'Start' : Start button + Indítás + CreateAppSipAccount @@ -1789,6 +1809,7 @@ Kattintson ide: <a href="%1">%1</a> contactsEntry + 'Contacts' : Contacts section label in main waindow. Névjegyek @@ -1843,6 +1864,11 @@ Kattintson ide: <a href="%1">%1</a> 'Do you want to download and apply configuration from this URL?' : text to confirm to fetch a specified URL + + localContactsEntry + 'Local contacts' : Contacts section label in main window when we have to specify that they are local to the application. + + MainWindowMenuBar @@ -3120,14 +3146,6 @@ Kattintson ide: <a href="%1">%1</a> rlsUriLabel RLS URI használata - - rlsUriAuto - Önműködő - - - rlsUriDisabled - Soha - showNetworkSettingsLabel Hálózati beállítások megjelenítése @@ -3619,6 +3637,16 @@ Kattintson ide: <a href="%1">%1</a> 'Emojis' : Label for changing emojis fonts + + displayUsernamesLabel + 'Display only usernames' : Option text to display only usernames from SIP addresses. + + + + displayUsernamesTooltip + 'Display only usernames from SIP addresses' : tooltip for addresses display mode where username is only shown. + + SettingsVideo diff --git a/linphone-app/assets/languages/it.ts b/linphone-app/assets/languages/it.ts index 8a6d17778..2ea8a71c5 100644 --- a/linphone-app/assets/languages/it.ts +++ b/linphone-app/assets/languages/it.ts @@ -1112,6 +1112,26 @@ URL del server non configurato. 'Enable notifications' : Item menu to enable chat's notifications + + groupCallConfirmTitle + 'Group call' : Title for a group call confirmation. + + + + groupCallConfirmDescription + 'Do you want to start a group call?<br/>Everyone in this group will receive a call to join the meeting." + + + + cancelButton + 'Cancel' : Cancel button + + + + startButton + 'Start' : Start button + + CreateAppSipAccount @@ -1799,6 +1819,7 @@ Clicca: <a href="%1">%1</a> contactsEntry + 'Contacts' : Contacts section label in main waindow. CONTATTI @@ -1853,6 +1874,11 @@ Clicca: <a href="%1">%1</a> 'Do you want to download and apply configuration from this URL?' : text to confirm to fetch a specified URL + + localContactsEntry + 'Local contacts' : Contacts section label in main window when we have to specify that they are local to the application. + + MainWindowMenuBar @@ -3133,14 +3159,6 @@ Clicca: <a href="%1">%1</a> rlsUriLabel Usa URI RLS - - rlsUriAuto - AUTO - - - rlsUriDisabled - MAI - showNetworkSettingsLabel Mostra le impostazioni di rete @@ -3632,6 +3650,16 @@ Clicca: <a href="%1">%1</a> 'Emojis' : Label for changing emojis fonts + + displayUsernamesLabel + 'Display only usernames' : Option text to display only usernames from SIP addresses. + + + + displayUsernamesTooltip + 'Display only usernames from SIP addresses' : tooltip for addresses display mode where username is only shown. + + SettingsVideo diff --git a/linphone-app/assets/languages/ja.ts b/linphone-app/assets/languages/ja.ts index 4a0f1477b..12f97c975 100644 --- a/linphone-app/assets/languages/ja.ts +++ b/linphone-app/assets/languages/ja.ts @@ -1106,6 +1106,26 @@ 'Enable notifications' : Item menu to enable chat's notifications 通知を有効にする + + groupCallConfirmTitle + 'Group call' : Title for a group call confirmation. + + + + groupCallConfirmDescription + 'Do you want to start a group call?<br/>Everyone in this group will receive a call to join the meeting." + + + + cancelButton + 'Cancel' : Cancel button + キャンセル + + + startButton + 'Start' : Start button + + CreateAppSipAccount @@ -1789,6 +1809,7 @@ contactsEntry + 'Contacts' : Contacts section label in main waindow. 連絡先 @@ -1843,6 +1864,11 @@ 'Do you want to download and apply configuration from this URL?' : text to confirm to fetch a specified URL このURLから設定をダウンロードして適用しますか? + + localContactsEntry + 'Local contacts' : Contacts section label in main window when we have to specify that they are local to the application. + + MainWindowMenuBar @@ -3120,14 +3146,6 @@ rlsUriLabel RLS URIを使う - - rlsUriAuto - 自動 - - - rlsUriDisabled - 決して - showNetworkSettingsLabel ネットワーク設定を表示する @@ -3619,6 +3637,16 @@ 'Emojis' : Label for changing emojis fonts 絵文字 + + displayUsernamesLabel + 'Display only usernames' : Option text to display only usernames from SIP addresses. + + + + displayUsernamesTooltip + 'Display only usernames from SIP addresses' : tooltip for addresses display mode where username is only shown. + + SettingsVideo diff --git a/linphone-app/assets/languages/lt.ts b/linphone-app/assets/languages/lt.ts index b77a5f152..cd1d545d6 100644 --- a/linphone-app/assets/languages/lt.ts +++ b/linphone-app/assets/languages/lt.ts @@ -1118,6 +1118,26 @@ Nesukonfigūruotas serverio url. 'Enable notifications' : Item menu to enable chat's notifications + + groupCallConfirmTitle + 'Group call' : Title for a group call confirmation. + + + + groupCallConfirmDescription + 'Do you want to start a group call?<br/>Everyone in this group will receive a call to join the meeting." + + + + cancelButton + 'Cancel' : Cancel button + + + + startButton + 'Start' : Start button + + CreateAppSipAccount @@ -1809,6 +1829,7 @@ Spustelėkite čia: <a href="%1">%1</a> contactsEntry + 'Contacts' : Contacts section label in main waindow. KONTAKTAI @@ -1863,6 +1884,11 @@ Spustelėkite čia: <a href="%1">%1</a> 'Do you want to download and apply configuration from this URL?' : text to confirm to fetch a specified URL + + localContactsEntry + 'Local contacts' : Contacts section label in main window when we have to specify that they are local to the application. + + MainWindowMenuBar @@ -3146,14 +3172,6 @@ Spustelėkite čia: <a href="%1">%1</a> rlsUriLabel Naudoti RLS URI - - rlsUriAuto - AUTOMATINIS - - - rlsUriDisabled - NIEKADA - showNetworkSettingsLabel Rodyti tinklo nustatymus @@ -3645,6 +3663,16 @@ Spustelėkite čia: <a href="%1">%1</a> 'Emojis' : Label for changing emojis fonts + + displayUsernamesLabel + 'Display only usernames' : Option text to display only usernames from SIP addresses. + + + + displayUsernamesTooltip + 'Display only usernames from SIP addresses' : tooltip for addresses display mode where username is only shown. + + SettingsVideo diff --git a/linphone-app/assets/languages/pt_BR.ts b/linphone-app/assets/languages/pt_BR.ts index 5ed1f8b4b..553ac097f 100644 --- a/linphone-app/assets/languages/pt_BR.ts +++ b/linphone-app/assets/languages/pt_BR.ts @@ -1112,6 +1112,26 @@ URL do servidor não configurado. 'Enable notifications' : Item menu to enable chat's notifications Habilitar notificação + + groupCallConfirmTitle + 'Group call' : Title for a group call confirmation. + + + + groupCallConfirmDescription + 'Do you want to start a group call?<br/>Everyone in this group will receive a call to join the meeting." + + + + cancelButton + 'Cancel' : Cancel button + + + + startButton + 'Start' : Start button + + CreateAppSipAccount @@ -1799,6 +1819,7 @@ Clique aqui: <a href="%1">%1 </a> contactsEntry + 'Contacts' : Contacts section label in main waindow. CONTATOS @@ -1853,6 +1874,11 @@ Clique aqui: <a href="%1">%1 </a> 'Do you want to download and apply configuration from this URL?' : text to confirm to fetch a specified URL Você deseja fazer o download e aplicar a configuração a partir desta URL? + + localContactsEntry + 'Local contacts' : Contacts section label in main window when we have to specify that they are local to the application. + + MainWindowMenuBar @@ -3133,14 +3159,6 @@ Clique aqui: <a href="%1">%1 </a> rlsUriLabel Usar URI do RLS - - rlsUriAuto - AUTOMÁTICO - - - rlsUriDisabled - NUNCA - showNetworkSettingsLabel Mostrar configurações de rede @@ -3632,6 +3650,16 @@ Clique aqui: <a href="%1">%1 </a> 'Emojis' : Label for changing emojis fonts + + displayUsernamesLabel + 'Display only usernames' : Option text to display only usernames from SIP addresses. + + + + displayUsernamesTooltip + 'Display only usernames from SIP addresses' : tooltip for addresses display mode where username is only shown. + + SettingsVideo diff --git a/linphone-app/assets/languages/ru.ts b/linphone-app/assets/languages/ru.ts index c1c009151..63a23fa63 100644 --- a/linphone-app/assets/languages/ru.ts +++ b/linphone-app/assets/languages/ru.ts @@ -1118,6 +1118,26 @@ 'Enable notifications' : Item menu to enable chat's notifications Включить уведомления + + groupCallConfirmTitle + 'Group call' : Title for a group call confirmation. + + + + groupCallConfirmDescription + 'Do you want to start a group call?<br/>Everyone in this group will receive a call to join the meeting." + + + + cancelButton + 'Cancel' : Cancel button + + + + startButton + 'Start' : Start button + + CreateAppSipAccount @@ -1809,6 +1829,7 @@ contactsEntry + 'Contacts' : Contacts section label in main waindow. КОНТАКТЫ @@ -1863,6 +1884,11 @@ 'Do you want to download and apply configuration from this URL?' : text to confirm to fetch a specified URL Вы хотите загрузить и применить конфигурацию с этого URL-адреса? + + localContactsEntry + 'Local contacts' : Contacts section label in main window when we have to specify that they are local to the application. + + MainWindowMenuBar @@ -3146,14 +3172,6 @@ rlsUriLabel Использовать RLS URI - - rlsUriAuto - АВТО - - - rlsUriDisabled - НИКОГДА - showNetworkSettingsLabel Показать сетевые настройки @@ -3645,6 +3663,16 @@ 'Emojis' : Label for changing emojis fonts смайлики + + displayUsernamesLabel + 'Display only usernames' : Option text to display only usernames from SIP addresses. + + + + displayUsernamesTooltip + 'Display only usernames from SIP addresses' : tooltip for addresses display mode where username is only shown. + + SettingsVideo diff --git a/linphone-app/assets/languages/sv.ts b/linphone-app/assets/languages/sv.ts index 7501cef84..19738b147 100644 --- a/linphone-app/assets/languages/sv.ts +++ b/linphone-app/assets/languages/sv.ts @@ -1112,6 +1112,26 @@ Serverwebbadressen är inte konfigurerad. 'Enable notifications' : Item menu to enable chat's notifications + + groupCallConfirmTitle + 'Group call' : Title for a group call confirmation. + + + + groupCallConfirmDescription + 'Do you want to start a group call?<br/>Everyone in this group will receive a call to join the meeting." + + + + cancelButton + 'Cancel' : Cancel button + + + + startButton + 'Start' : Start button + + CreateAppSipAccount @@ -1799,6 +1819,7 @@ Klicka här: <a href="%1">%1</a> contactsEntry + 'Contacts' : Contacts section label in main waindow. KONTAKTER @@ -1853,6 +1874,11 @@ Klicka här: <a href="%1">%1</a> 'Do you want to download and apply configuration from this URL?' : text to confirm to fetch a specified URL + + localContactsEntry + 'Local contacts' : Contacts section label in main window when we have to specify that they are local to the application. + + MainWindowMenuBar @@ -3133,14 +3159,6 @@ Klicka här: <a href="%1">%1</a> rlsUriLabel Använd RLS-URI - - rlsUriAuto - AUTOMATISKT - - - rlsUriDisabled - ALDRIG - showNetworkSettingsLabel Visa nätverksinställningar @@ -3632,6 +3650,16 @@ Klicka här: <a href="%1">%1</a> 'Emojis' : Label for changing emojis fonts + + displayUsernamesLabel + 'Display only usernames' : Option text to display only usernames from SIP addresses. + + + + displayUsernamesTooltip + 'Display only usernames from SIP addresses' : tooltip for addresses display mode where username is only shown. + + SettingsVideo diff --git a/linphone-app/assets/languages/tr.ts b/linphone-app/assets/languages/tr.ts index 9a78c1b2d..84ce257cb 100644 --- a/linphone-app/assets/languages/tr.ts +++ b/linphone-app/assets/languages/tr.ts @@ -1106,6 +1106,26 @@ Sunucu url'si yapılandırılmadı. 'Enable notifications' : Item menu to enable chat's notifications + + groupCallConfirmTitle + 'Group call' : Title for a group call confirmation. + + + + groupCallConfirmDescription + 'Do you want to start a group call?<br/>Everyone in this group will receive a call to join the meeting." + + + + cancelButton + 'Cancel' : Cancel button + İPTAL + + + startButton + 'Start' : Start button + BAŞLAT + CreateAppSipAccount @@ -1789,6 +1809,7 @@ Buraya tıklayın: <a href="%1">%1</a> contactsEntry + 'Contacts' : Contacts section label in main waindow. KİŞİLER @@ -1843,6 +1864,11 @@ Buraya tıklayın: <a href="%1">%1</a> 'Do you want to download and apply configuration from this URL?' : text to confirm to fetch a specified URL + + localContactsEntry + 'Local contacts' : Contacts section label in main window when we have to specify that they are local to the application. + + MainWindowMenuBar @@ -3120,14 +3146,6 @@ Buraya tıklayın: <a href="%1">%1</a> rlsUriLabel RLS URI'si kullan - - rlsUriAuto - KENDİLİĞİNDEN - - - rlsUriDisabled - ASLA - showNetworkSettingsLabel Ağ ayarlarını göster @@ -3619,6 +3637,16 @@ Buraya tıklayın: <a href="%1">%1</a> 'Emojis' : Label for changing emojis fonts + + displayUsernamesLabel + 'Display only usernames' : Option text to display only usernames from SIP addresses. + + + + displayUsernamesTooltip + 'Display only usernames from SIP addresses' : tooltip for addresses display mode where username is only shown. + + SettingsVideo diff --git a/linphone-app/assets/languages/uk.ts b/linphone-app/assets/languages/uk.ts index 2d9afc206..ddbdf86cd 100644 --- a/linphone-app/assets/languages/uk.ts +++ b/linphone-app/assets/languages/uk.ts @@ -1118,6 +1118,26 @@ 'Enable notifications' : Item menu to enable chat's notifications + + groupCallConfirmTitle + 'Group call' : Title for a group call confirmation. + + + + groupCallConfirmDescription + 'Do you want to start a group call?<br/>Everyone in this group will receive a call to join the meeting." + + + + cancelButton + 'Cancel' : Cancel button + + + + startButton + 'Start' : Start button + + CreateAppSipAccount @@ -1809,6 +1829,7 @@ contactsEntry + 'Contacts' : Contacts section label in main waindow. КОНТАКТИ @@ -1863,6 +1884,11 @@ 'Do you want to download and apply configuration from this URL?' : text to confirm to fetch a specified URL + + localContactsEntry + 'Local contacts' : Contacts section label in main window when we have to specify that they are local to the application. + + MainWindowMenuBar @@ -3146,14 +3172,6 @@ rlsUriLabel Використовувати RLS URI - - rlsUriAuto - АВТО - - - rlsUriDisabled - НІКОЛИ - showNetworkSettingsLabel Показати мережеві налаштування @@ -3645,6 +3663,16 @@ 'Emojis' : Label for changing emojis fonts + + displayUsernamesLabel + 'Display only usernames' : Option text to display only usernames from SIP addresses. + + + + displayUsernamesTooltip + 'Display only usernames from SIP addresses' : tooltip for addresses display mode where username is only shown. + + SettingsVideo diff --git a/linphone-app/assets/languages/zh_CN.ts b/linphone-app/assets/languages/zh_CN.ts index 8fc753102..f2a426704 100644 --- a/linphone-app/assets/languages/zh_CN.ts +++ b/linphone-app/assets/languages/zh_CN.ts @@ -1106,6 +1106,26 @@ 'Enable notifications' : Item menu to enable chat's notifications + + groupCallConfirmTitle + 'Group call' : Title for a group call confirmation. + + + + groupCallConfirmDescription + 'Do you want to start a group call?<br/>Everyone in this group will receive a call to join the meeting." + + + + cancelButton + 'Cancel' : Cancel button + 取消 + + + startButton + 'Start' : Start button + + CreateAppSipAccount @@ -1789,6 +1809,7 @@ contactsEntry + 'Contacts' : Contacts section label in main waindow. 联系人 @@ -1843,6 +1864,11 @@ 'Do you want to download and apply configuration from this URL?' : text to confirm to fetch a specified URL + + localContactsEntry + 'Local contacts' : Contacts section label in main window when we have to specify that they are local to the application. + + MainWindowMenuBar @@ -3120,14 +3146,6 @@ rlsUriLabel 使用 RLS URI - - rlsUriAuto - 自动 - - - rlsUriDisabled - 永不 - showNetworkSettingsLabel 显示网络设置 @@ -3619,6 +3637,16 @@ 'Emojis' : Label for changing emojis fonts + + displayUsernamesLabel + 'Display only usernames' : Option text to display only usernames from SIP addresses. + + + + displayUsernamesTooltip + 'Display only usernames from SIP addresses' : tooltip for addresses display mode where username is only shown. + + SettingsVideo diff --git a/linphone-app/src/components/assistant/AssistantModel.cpp b/linphone-app/src/components/assistant/AssistantModel.cpp index 236fe62eb..4a6afc671 100644 --- a/linphone-app/src/components/assistant/AssistantModel.cpp +++ b/linphone-app/src/components/assistant/AssistantModel.cpp @@ -57,7 +57,6 @@ private: auto account = CoreManager::getInstance()->getCore()->getAccountByIdkey(proxyConfig->getIdkey()); if(account){ CoreManager::getInstance()->addingAccount(account->getParams()); - CoreManager::getInstance()->getSettingsModel()->configureRlsUri(account); CoreManager::getInstance()->getAccountSettingsModel()->setDefaultAccount(account); } } diff --git a/linphone-app/src/components/contacts/ContactsListModel.cpp b/linphone-app/src/components/contacts/ContactsListModel.cpp index 3e23f6a07..78ecac122 100644 --- a/linphone-app/src/components/contacts/ContactsListModel.cpp +++ b/linphone-app/src/components/contacts/ContactsListModel.cpp @@ -25,6 +25,7 @@ #include "components/contact/VcardModel.hpp" #include "components/core/CoreManager.hpp" #include "components/friend/FriendListListener.hpp" +#include "utils/Utils.hpp" #include "ContactsListModel.hpp" @@ -103,7 +104,7 @@ QSharedPointer ContactsListModel::findContactModelFromUsername (co // ----------------------------------------------------------------------------- ContactModel *ContactsListModel::getContactModelFromAddress (const QString& address) const{ - auto contact = findContactModelFromSipAddress(address); + auto contact = findContactModelFromSipAddress(Utils::cleanSipAddress(address)); return contact.get(); } diff --git a/linphone-app/src/components/participant/ParticipantListModel.cpp b/linphone-app/src/components/participant/ParticipantListModel.cpp index bc1ebfe35..5dead9369 100644 --- a/linphone-app/src/components/participant/ParticipantListModel.cpp +++ b/linphone-app/src/components/participant/ParticipantListModel.cpp @@ -19,8 +19,7 @@ */ #include "components/core/CoreManager.hpp" -#include "components/settings/AccountSettingsModel.hpp" -#include "components/sip-addresses/SipAddressesModel.hpp" +#include "components/settings/SettingsModel.hpp" #include "components/conference/ConferenceModel.hpp" #include "utils/Utils.hpp" @@ -93,7 +92,7 @@ QString ParticipantListModel::addressesToString()const{ for(auto item : mList){ auto participant = item.objectCast(); if( participant->getParticipant())// is Participant. We test it because this participant is not accepted by chat room yet. - txt << Utils::toDisplayString(Utils::coreStringToAppString(participant->getParticipant()->getAddress()->asStringUriOnly())); + txt << Utils::toDisplayString(Utils::coreStringToAppString(participant->getParticipant()->getAddress()->asStringUriOnly()), CoreManager::getInstance()->getSettingsModel()->getSipDisplayMode()); } txt.removeFirst();// Remove me return txt.join(", "); diff --git a/linphone-app/src/components/search/SearchSipAddressesModel.cpp b/linphone-app/src/components/search/SearchSipAddressesModel.cpp index 893688337..2334ef0e6 100644 --- a/linphone-app/src/components/search/SearchSipAddressesModel.cpp +++ b/linphone-app/src/components/search/SearchSipAddressesModel.cpp @@ -62,7 +62,13 @@ SearchSipAddressesModel::~SearchSipAddressesModel(){ // ----------------------------------------------------------------------------- void SearchSipAddressesModel::setFilter(const QString& filter){ - mMagicSearch->getContactsListAsync(filter.toStdString(),"", (int)linphone::MagicSearch::Source::All, linphone::MagicSearch::Aggregation::None); + if(!filter.isEmpty()) + mMagicSearch->getContactsListAsync(filter.toStdString(),"", (int)linphone::MagicSearchSource::All, linphone::MagicSearchAggregation::None); + else{ + beginResetModel(); + mList.clear(); + endResetModel(); + } //searchReceived(mMagicSearch->getContactListFromFilter(Utils::appStringToCoreString(filter),"")); // Just to show how to use sync method } diff --git a/linphone-app/src/components/settings/AccountSettingsModel.cpp b/linphone-app/src/components/settings/AccountSettingsModel.cpp index c4b9bc53b..7bf888622 100644 --- a/linphone-app/src/components/settings/AccountSettingsModel.cpp +++ b/linphone-app/src/components/settings/AccountSettingsModel.cpp @@ -130,9 +130,7 @@ bool AccountSettingsModel::addOrUpdateAccount (std::shared_ptraddingAccount(account->getParams()); - coreManager->getSettingsModel()->configureRlsUri(account); - }else - coreManager->getSettingsModel()->configureRlsUri(); + } emit accountSettingsUpdated(); @@ -266,6 +264,13 @@ void AccountSettingsModel::setDefaultAccountFromSipAddress (const QString &sipAd qWarning() << "Unable to set default account from:" << sipAddress; } + +void AccountSettingsModel::enableRegister (std::shared_ptr account, bool enable){ + auto params = account->getParams()->clone(); + enableRegister(params, enable, Utils::coreStringToAppString(params->getContactParameters())); + account->setParams(params); +} + void AccountSettingsModel::removeAccount (const shared_ptr &account) { CoreManager *coreManager = CoreManager::getInstance(); @@ -303,6 +308,29 @@ void AccountSettingsModel::removeAccount (const shared_ptr &a emit accountSettingsUpdated(); } +void AccountSettingsModel::enableRegister(std::shared_ptr params, bool registerEnabled, QString contactParameters){ + bool findMessageExpires = false; + QStringList parameters = contactParameters.split(";", Qt::SkipEmptyParts); + for(int i = 0 ; i < parameters.size() ; ++i){ + QStringList fields = parameters[i].split("="); + if( fields.size() > 1 && fields[0].simplified() == "message-expires"){ + findMessageExpires = true; + if(!registerEnabled)// replace message-expires by 0 in order to not get new incoming messages. + parameters[i] = Constants::DefaultContactParametersOnRemove; + else if(!params->registerEnabled() && fields[1].toInt() == 0) + parameters[i] = Constants::DefaultContactParameters; + } + } + if(!findMessageExpires){ + if(!registerEnabled)// message-expires was not found we need to disable the account. + parameters.push_back(Constants::DefaultContactParametersOnRemove); + else if(!params->registerEnabled())// Switch on + parameters.push_back(Constants::DefaultContactParameters); + } + params->setContactParameters(Utils::appStringToCoreString(parameters.join(";"))); + params->enableRegister(registerEnabled); +} + bool AccountSettingsModel::addOrUpdateAccount( const shared_ptr &account, const QVariantMap &data @@ -359,28 +387,7 @@ bool AccountSettingsModel::addOrUpdateAccount( if(data.contains("avpfInterval")) accountParams->setAvpfRrInterval(uint8_t(data["avpfInterval"].toInt())); if(data.contains("registerEnabled")){ - bool registerEnabled = data["registerEnabled"].toBool(); - - bool findMessageExpires = false; - QStringList parameters = contactParameters.split(";", Qt::SkipEmptyParts); - for(int i = 0 ; i < parameters.size() ; ++i){ - QStringList fields = parameters[i].split("="); - if( fields.size() > 1 && fields[0].simplified() == "message-expires"){ - findMessageExpires = true; - if(!registerEnabled)// replace message-expires by 0 in order to not get new incoming messages. - parameters[i] = Constants::DefaultContactParametersOnRemove; - else if(!accountParams->registerEnabled() && fields[1].toInt() == 0) - parameters[i] = Constants::DefaultContactParameters; - } - } - if(!findMessageExpires){ - if(!registerEnabled)// message-expires was not found we need to disable the account. - parameters.push_back(Constants::DefaultContactParametersOnRemove); - else if(!accountParams->registerEnabled())// Switch on - parameters.push_back(Constants::DefaultContactParameters); - } - accountParams->setContactParameters(Utils::appStringToCoreString(parameters.join(";"))); - accountParams->enableRegister(registerEnabled); + enableRegister(accountParams, data["registerEnabled"].toBool(), contactParameters); }else{ accountParams->setContactParameters(Utils::appStringToCoreString(contactParameters)); } @@ -589,11 +596,13 @@ QVariantList AccountSettingsModel::getAccounts () const { for (const auto &account : CoreManager::getInstance()->getAccountList()) { QVariantMap accountMap; - accountMap["sipAddress"] = Utils::coreStringToAppString(account->getParams()->getIdentityAddress()->asStringUriOnly()); - accountMap["fullSipAddress"] = Utils::coreStringToAppString(account->getParams()->getIdentityAddress()->asString()); + auto params = account->getParams(); + accountMap["sipAddress"] = Utils::coreStringToAppString(params->getIdentityAddress()->asStringUriOnly()); + accountMap["fullSipAddress"] = Utils::coreStringToAppString(params->getIdentityAddress()->asString()); accountMap["account"].setValue(account); accountMap["unreadMessageCount"] = settingsModel->getStandardChatEnabled() || settingsModel->getSecureChatEnabled() ? account->getUnreadChatMessageCount() : 0; accountMap["missedCallCount"] = CoreManager::getInstance()->getMissedCallCountFromLocal(accountMap["sipAddress"].toString()); + accountMap["registerEnabled"] = params->registerEnabled(); accounts << accountMap; } @@ -615,7 +624,6 @@ void AccountSettingsModel::handleRegistrationStateChanged ( QTimer::singleShot(60000, [authInfo](){// 60s is just to be sure. account_update remove deleted account only after 32s CoreManager::getInstance()->getCore()->removeAuthInfo(authInfo); }); - coreManager->getSettingsModel()->configureRlsUri(); }else if(mRemovingAccounts.contains(account)){ mRemovingAccounts.removeAll(account); QTimer::singleShot(100, [account, this](){// removeAccount cannot be called from callback diff --git a/linphone-app/src/components/settings/AccountSettingsModel.hpp b/linphone-app/src/components/settings/AccountSettingsModel.hpp index 3fe85d18a..73f28994c 100644 --- a/linphone-app/src/components/settings/AccountSettingsModel.hpp +++ b/linphone-app/src/components/settings/AccountSettingsModel.hpp @@ -80,6 +80,8 @@ public: Q_INVOKABLE void setDefaultAccount (const std::shared_ptr &account = nullptr); Q_INVOKABLE void setDefaultAccountFromSipAddress (const QString &sipAddress); + Q_INVOKABLE void enableRegister (std::shared_ptr account, bool enable); + static void enableRegister(std::shared_ptr params, bool registerEnabled, QString contactParameters); Q_INVOKABLE bool addOrUpdateAccount (const std::shared_ptr &account, const QVariantMap &data); Q_INVOKABLE bool addOrUpdateAccount (const QVariantMap &data);// Create default account and apply data diff --git a/linphone-app/src/components/settings/SettingsModel.cpp b/linphone-app/src/components/settings/SettingsModel.cpp index fc21fe3f1..6c0a5483f 100644 --- a/linphone-app/src/components/settings/SettingsModel.cpp +++ b/linphone-app/src/components/settings/SettingsModel.cpp @@ -110,7 +110,7 @@ SettingsModel::SettingsModel (QObject *parent) : QObject(parent) { }); #endif - configureRlsUri(); + updateRlsUri(); } SettingsModel::~SettingsModel() @@ -1097,7 +1097,7 @@ void SettingsModel::setLimeState (const bool& state) { // ----------------------------------------------------------------------------- bool SettingsModel::getContactsEnabled () const { - return !!mConfig->getInt(UiSection, "contacts_enabled", 1); + return !!mConfig->getInt(UiSection, getEntryFullName(UiSection, "contacts_enabled"), 1); } void SettingsModel::setContactsEnabled (bool status) { @@ -1408,57 +1408,30 @@ bool SettingsModel::getRlsUriEnabled () const { } void SettingsModel::setRlsUriEnabled (bool status) { + if(getRlsUriEnabled () != status){ + mConfig->setInt(UiSection, "rls_uri_enabled", status); + emit rlsUriEnabledChanged(status); + } +} + +QString SettingsModel::getRlsUri() const{ + return Utils::coreStringToAppString(mConfig->getString("sip", "rls_uri", "")); +} + +void SettingsModel::setRlsUri (const QString& rlsUri){ + bool status = !rlsUri.isEmpty(); mConfig->setInt(UiSection, "rls_uri_enabled", status); - mConfig->setString("sip", "rls_uri", status ? Constants::DefaultRlsUri : ""); + mConfig->setString("sip", "rls_uri", Utils::appStringToCoreString(rlsUri)); + emit rlsUriChanged(); emit rlsUriEnabledChanged(status); } -static string getRlsUriDomain () { - static string domain; - if (!domain.empty()) - return domain; - - shared_ptr linphoneAddress = CoreManager::getInstance()->getCore()->createAddress(Constants::DefaultRlsUri); - Q_CHECK_PTR(linphoneAddress); - domain = linphoneAddress->getDomain(); - return domain; -} - -void SettingsModel::configureRlsUri () { - // Ensure rls uri is empty. - if (!getRlsUriEnabled()) { - mConfig->setString("sip", "rls_uri", ""); - return; +void SettingsModel::updateRlsUri(){ + if( getRlsUriEnabled() && getRlsUri().isEmpty()){// if enabled, uri should not be empty : set default. This allow to take account of old configuration. + setRlsUri(Constants::DefaultRlsUri); } - - // Set rls uri if necessary. - const string domain = getRlsUriDomain(); - for (const auto &account : CoreManager::getInstance()->getAccountList()) - if (account->getParams()->getDomain() == domain) { - mConfig->setString("sip", "rls_uri", Constants::DefaultRlsUri); - return; - } - - mConfig->setString("sip", "rls_uri", ""); } -void SettingsModel::configureRlsUri (const std::string& domain) { - if (!getRlsUriEnabled()) { - mConfig->setString("sip", "rls_uri", ""); - return; - } - - const string currentDomain = getRlsUriDomain(); - if (domain == currentDomain) { - mConfig->setString("sip", "rls_uri", Constants::DefaultRlsUri); - return; - } - - mConfig->setString("sip", "rls_uri", ""); -} -void SettingsModel::configureRlsUri (const shared_ptr &account) { - configureRlsUri(account->getParams()->getDomain()); -} //------------------------------------------------------------------------------ bool SettingsModel::tunnelAvailable() const{ @@ -1719,6 +1692,17 @@ void SettingsModel::setUseMinimalTimelineFilter(const bool& useMinimal) { emit useMinimalTimelineFilterChanged(); } +Utils::SipDisplayMode SettingsModel::getSipDisplayMode() const{ + return static_cast(mConfig->getInt(UiSection, getEntryFullName(UiSection, "sip_display_mode"), (int)Utils::SipDisplayMode::SIP_DISPLAY_ALL)); +} + +void SettingsModel::setSipDisplayMode(Utils::SipDisplayMode mode){ + if(!isReadOnly(UiSection, "sip_display_mode")) { + mConfig->setInt(UiSection, "sip_display_mode", (int)mode); + emit sipDisplayModeChanged(); + } +} + // ============================================================================= // Advanced. // ============================================================================= diff --git a/linphone-app/src/components/settings/SettingsModel.hpp b/linphone-app/src/components/settings/SettingsModel.hpp index a65b65f2f..56eeba55b 100644 --- a/linphone-app/src/components/settings/SettingsModel.hpp +++ b/linphone-app/src/components/settings/SettingsModel.hpp @@ -30,6 +30,7 @@ #include "components/core/CoreHandlers.hpp" #include "components/contacts/ContactsImporterModel.hpp" #include "utils/LinphoneEnums.hpp" +#include "utils/Utils.hpp" #ifdef ENABLE_QT_KEYCHAIN #include "components/vfs/VfsUtils.hpp" @@ -194,6 +195,7 @@ class SettingsModel : public QObject { Q_PROPERTY(int dscpVideo READ getDscpVideo WRITE setDscpVideo NOTIFY dscpVideoChanged) Q_PROPERTY(bool rlsUriEnabled READ getRlsUriEnabled WRITE setRlsUriEnabled NOTIFY rlsUriEnabledChanged) + Q_PROPERTY(QString rlsUri READ getRlsUri WRITE setRlsUri NOTIFY rlsUriChanged) // UI. ----------------------------------------------------------------------- @@ -220,6 +222,7 @@ class SettingsModel : public QObject { Q_PROPERTY(bool mipmapEnabled READ isMipmapEnabled WRITE setMipmapEnabled NOTIFY mipmapEnabledChanged) Q_PROPERTY(bool useMinimalTimelineFilter READ useMinimalTimelineFilter WRITE setUseMinimalTimelineFilter NOTIFY useMinimalTimelineFilterChanged) + Q_PROPERTY(Utils::SipDisplayMode sipDisplayMode READ getSipDisplayMode WRITE setSipDisplayMode NOTIFY sipDisplayModeChanged) // Advanced. ----------------------------------------------------------------- @@ -549,9 +552,9 @@ public: bool getRlsUriEnabled () const; void setRlsUriEnabled (bool status); - void configureRlsUri (); - void configureRlsUri (const std::string& domain); - void configureRlsUri (const std::shared_ptr &account); + QString getRlsUri() const; + void setRlsUri (const QString& rlsUri); + void updateRlsUri(); Q_INVOKABLE bool tunnelAvailable() const; Q_INVOKABLE TunnelModel * getTunnel() const; @@ -612,6 +615,9 @@ public: bool useMinimalTimelineFilter() const; void setUseMinimalTimelineFilter(const bool& useMinimal); + Utils::SipDisplayMode getSipDisplayMode() const; + void setSipDisplayMode(Utils::SipDisplayMode mode); + // Advanced. --------------------------------------------------------------------------- @@ -809,6 +815,7 @@ signals: void dscpVideoChanged (int dscp); void rlsUriEnabledChanged (bool status); + void rlsUriChanged (); // UI. ----------------------------------------------------------------------- @@ -830,6 +837,8 @@ signals: void mipmapEnabledChanged(); void useMinimalTimelineFilterChanged(); + void sipDisplayModeChanged(); + void checkForUpdateEnabledChanged(); void versionCheckUrlChanged(); void versionCheckTypeChanged(); diff --git a/linphone-app/ui/modules/Common/Form/CommonItemDelegate.qml b/linphone-app/ui/modules/Common/Form/CommonItemDelegate.qml index 8f5469e24..9c9bc2289 100644 --- a/linphone-app/ui/modules/Common/Form/CommonItemDelegate.qml +++ b/linphone-app/ui/modules/Common/Form/CommonItemDelegate.qml @@ -4,6 +4,7 @@ import QtQuick.Layouts 1.3 import Common 1.0 import Common.Styles 1.0 +import Linphone 1.0 import UtilsCpp 1.0 // ============================================================================= @@ -16,6 +17,7 @@ Controls.ItemDelegate { property var itemIcon default property alias _content: content.data + property alias leftActionsLoader: leftActionsLoader hoverEnabled: true background: Rectangle { @@ -53,7 +55,9 @@ Controls.ItemDelegate { visible: icon.length > 0 } - + Loader{ + id: leftActionsLoader + } Text { Layout.fillWidth: true @@ -65,7 +69,7 @@ Controls.ItemDelegate { pointSize: CommonItemDelegateStyle.contentItem.text.pointSize } - text: UtilsCpp.toDisplayString(item.flattenedModel[container.textRole] || modelData) + text: UtilsCpp.toDisplayString(item.flattenedModel[container.textRole] || modelData, SettingsModel.sipDisplayMode) } Item { diff --git a/linphone-app/ui/modules/Common/Form/Fields/TextField.qml b/linphone-app/ui/modules/Common/Form/Fields/TextField.qml index cbf530fe9..fc8ddc247 100644 --- a/linphone-app/ui/modules/Common/Form/Fields/TextField.qml +++ b/linphone-app/ui/modules/Common/Form/Fields/TextField.qml @@ -100,7 +100,7 @@ Controls.TextField { } MouseArea{ anchors.fill: parent - onClicked: textField.text = '' + onClicked: {textField.focus = true ; textField.text = ''} } } bottomPadding: (statusItem.visible?statusItem.implicitHeight:2) diff --git a/linphone-app/ui/modules/Common/Form/SearchBox.qml b/linphone-app/ui/modules/Common/Form/SearchBox.qml index 2928f2234..31c5dd6e1 100644 --- a/linphone-app/ui/modules/Common/Form/SearchBox.qml +++ b/linphone-app/ui/modules/Common/Form/SearchBox.qml @@ -22,6 +22,7 @@ Item { property alias tooltipText : tooltip.text property alias text : searchField.text property alias isMandatory: searchField.isMandatory + property alias closePolicy: menu.closePolicy default property alias _content: menu._content @@ -56,15 +57,16 @@ Item { var model = searchBox.view.model Utils.assert(model.setFilter != null, '`model.setFilter` must be defined.') model.setFilter(text) - if(!searchField.activeFocus) - searchField.focus = true - if(!_isOpen){ - searchBox.menuRequested() - searchBox.openMenu() + if(text){ + if(!searchField.activeFocus) + searchField.focus = true + if(!_isOpen){ + searchBox.menuRequested() + searchBox.openMenu() + } } } - // --------------------------------------------------------------------------- implicitHeight: searchField.height @@ -95,10 +97,16 @@ Item { enterButtonPressed() } onActiveFocusChanged: { - if (activeFocus && !_isOpen) { - _filter(text) - searchBox.menuRequested() - searchBox.openMenu() + if (activeFocus){ + if(!_isOpen) { + _filter(text) + if(text){ + searchBox.menuRequested() + searchBox.openMenu() + } + } + }else if(_isOpen && !text){ + searchBox.closeMenu() } } @@ -135,7 +143,7 @@ Item { MouseArea {// Just take hover events and set popup to do its automatic close if mouse is not inside field/popup area anchors.fill: parent - onContainsMouseChanged: menu.popup.closePolicy=(containsMouse?Controls.Popup.NoAutoClose:Controls.Popup.CloseOnEscape | Controls.Popup.CloseOnPressOutside) + //onContainsMouseChanged: menu.popup.closePolicy=(containsMouse?Controls.Popup.NoAutoClose:Controls.Popup.CloseOnEscape | Controls.Popup.CloseOnPressOutside) hoverEnabled:true preventStealing: true propagateComposedEvents:true diff --git a/linphone-app/ui/modules/Common/Menus/DropDownDynamicMenu.qml b/linphone-app/ui/modules/Common/Menus/DropDownDynamicMenu.qml index 90e500aba..96afc8353 100644 --- a/linphone-app/ui/modules/Common/Menus/DropDownDynamicMenu.qml +++ b/linphone-app/ui/modules/Common/Menus/DropDownDynamicMenu.qml @@ -19,7 +19,7 @@ Item { property int maxMenuHeight default property alias _content: menuContent.data - property alias popup : popup + property alias closePolicy : popup.closePolicy // --------------------------------------------------------------------------- diff --git a/linphone-app/ui/modules/Linphone/Account/AccountStatus.qml b/linphone-app/ui/modules/Linphone/Account/AccountStatus.qml index 8a60bff1d..7ca376b17 100644 --- a/linphone-app/ui/modules/Linphone/Account/AccountStatus.qml +++ b/linphone-app/ui/modules/Linphone/Account/AccountStatus.qml @@ -111,7 +111,7 @@ Item { color: AccountStatusStyle.sipAddress.colorModel.color elide: Text.ElideRight font.pointSize: AccountStatusStyle.sipAddress.pointSize - text: UtilsCpp.toDisplayString(AccountSettingsModel.sipAddress) + text: UtilsCpp.toDisplayString(AccountSettingsModel.sipAddress, SettingsModel.sipDisplayMode) verticalAlignment: Text.AlignTop } }//ColumnLayout diff --git a/linphone-app/ui/modules/Linphone/Chat/ChatFileMessage.qml b/linphone-app/ui/modules/Linphone/Chat/ChatFileMessage.qml index 45dcefaf4..03a5fa617 100644 --- a/linphone-app/ui/modules/Linphone/Chat/ChatFileMessage.qml +++ b/linphone-app/ui/modules/Linphone/Chat/ChatFileMessage.qml @@ -38,7 +38,7 @@ Item { id: fileView anchors.fill: parent contentModel: mainRow.contentModel - thumbnail: mainRow.contentModel.thumbnail + thumbnail: mainRow.contentModel ? mainRow.contentModel.thumbnail : '' name: mainRow.contentModel && mainRow.contentModel.name filePath: mainRow.contentModel && mainRow.contentModel.filePath isTransferring: mainRow.chatMessageModel && (mainRow.chatMessageModel.state == LinphoneEnums.ChatMessageStateFileTransferInProgress || mainRow.chatMessageModel.state == LinphoneEnums.ChatMessageStateInProgress ) diff --git a/linphone-app/ui/modules/Linphone/Chat/IncomingMessage.qml b/linphone-app/ui/modules/Linphone/Chat/IncomingMessage.qml index 0d4f856b6..a5da0dc4b 100644 --- a/linphone-app/ui/modules/Linphone/Chat/IncomingMessage.qml +++ b/linphone-app/ui/modules/Linphone/Chat/IncomingMessage.qml @@ -52,7 +52,7 @@ RowLayout { maxWidth: mainRow.width isClickable: true onClicked: { - window.mainSearchBar.text = UtilsCpp.toDisplayString($chatEntry.fromSipAddress) + window.mainSearchBar.text = UtilsCpp.toDisplayString($chatEntry.fromSipAddress, SettingsModel.sipDisplayMode) } } } diff --git a/linphone-app/ui/modules/Linphone/Contact/Contact.qml b/linphone-app/ui/modules/Linphone/Contact/Contact.qml index 5ca8f3d88..191e0c26f 100644 --- a/linphone-app/ui/modules/Linphone/Contact/Contact.qml +++ b/linphone-app/ui/modules/Linphone/Contact/Contact.qml @@ -133,7 +133,7 @@ Rectangle { : entry.participants ? entry.participants.addressesToString : '' - ) + , SettingsModel.sipDisplayMode) : '' } diff --git a/linphone-app/ui/modules/Linphone/Notifications/NotificationReceivedMessage.qml b/linphone-app/ui/modules/Linphone/Notifications/NotificationReceivedMessage.qml index d52aa8fd6..6c0d1e2b5 100644 --- a/linphone-app/ui/modules/Linphone/Notifications/NotificationReceivedMessage.qml +++ b/linphone-app/ui/modules/Linphone/Notifications/NotificationReceivedMessage.qml @@ -44,7 +44,7 @@ Notification { property ChatRoomModel chatRoomModel : notification.timelineModel.getChatRoomModel() property var sipObserver: SipAddressesModel.getSipAddressObserver(notification.fullPeerAddress, notification.fullLocalAddress) subtitle: chatRoomModel.isOneToOne - ? UtilsCpp.toDisplayString(SipAddressesModel.cleanSipAddress(notification.fullPeerAddress)) + ? UtilsCpp.toDisplayString(SipAddressesModel.cleanSipAddress(notification.fullPeerAddress), SettingsModel.sipDisplayMode) : UtilsCpp.getDisplayName(notification.fullPeerAddress) entry: chatRoomModel ? chatRoomModel : sipObserver Component.onDestruction: sipObserver=null// Need to set it to null because of not calling destructor if not. diff --git a/linphone-app/ui/modules/Linphone/SmartSearchBar/SmartSearchBar.qml b/linphone-app/ui/modules/Linphone/SmartSearchBar/SmartSearchBar.qml index dae22d452..27230d436 100644 --- a/linphone-app/ui/modules/Linphone/SmartSearchBar/SmartSearchBar.qml +++ b/linphone-app/ui/modules/Linphone/SmartSearchBar/SmartSearchBar.qml @@ -18,9 +18,6 @@ SearchBox { property alias header : view.headerItem property alias actions : view.actions property alias showHeader : view.showHeader - property string previousText: text - onTextChanged: if( text != '') previousText = text; - property alias participantListModel : searchModel.participantListModel function addAddressToIgnore(entry){ diff --git a/linphone-app/ui/modules/Linphone/View/SipAddressesView.qml b/linphone-app/ui/modules/Linphone/View/SipAddressesView.qml index c8d566e58..c8c024881 100644 --- a/linphone-app/ui/modules/Linphone/View/SipAddressesView.qml +++ b/linphone-app/ui/modules/Linphone/View/SipAddressesView.qml @@ -61,6 +61,7 @@ ScrollableListView { return height } width: parent.width + visible: sipAddressesView.genSipAddress // Workaround to handle mouse. // Without it, the mouse can be given to items list when mouse is hover header. @@ -69,7 +70,6 @@ ScrollableListView { Column { anchors.fill: parent - spacing: 0 // ----------------------------------------------------------------------- diff --git a/linphone-app/ui/views/App/Calls/AbstractStartingCall.qml b/linphone-app/ui/views/App/Calls/AbstractStartingCall.qml index e70cb6e6c..fbcc43508 100644 --- a/linphone-app/ui/views/App/Calls/AbstractStartingCall.qml +++ b/linphone-app/ui/views/App/Calls/AbstractStartingCall.qml @@ -43,7 +43,7 @@ Rectangle { anchors.horizontalCenter: parent.horizontalCenter height: CallStyle.header.contactDescription.height horizontalTextAlignment: Text.AlignHCenter - subtitleText: UtilsCpp.toDisplayString(SipAddressesModel.cleanSipAddress(call.peerAddress)) + subtitleText: UtilsCpp.toDisplayString(SipAddressesModel.cleanSipAddress(call.peerAddress), SettingsModel.sipDisplayMode) titleText: _sipAddressObserver ? UtilsCpp.getDisplayName(_sipAddressObserver.peerAddress) : '' width: contentWidth } diff --git a/linphone-app/ui/views/App/Calls/Conference.qml b/linphone-app/ui/views/App/Calls/Conference.qml index 0c6826726..a4173f11f 100644 --- a/linphone-app/ui/views/App/Calls/Conference.qml +++ b/linphone-app/ui/views/App/Calls/Conference.qml @@ -137,7 +137,7 @@ Rectangle { width: parent.width horizontalTextAlignment: Text.AlignHCenter - subtitleText: UtilsCpp.toDisplayString(SipAddressesModel.cleanSipAddress(parent.sipAddress)) + subtitleText: UtilsCpp.toDisplayString(SipAddressesModel.cleanSipAddress(parent.sipAddress), SettingsModel.sipDisplayMode) titleText: parent._sipAddressObserver ? UtilsCpp.getDisplayName(parent._sipAddressObserver.peerAddress) : '' } IncallAvatar { diff --git a/linphone-app/ui/views/App/Calls/Incall.qml b/linphone-app/ui/views/App/Calls/Incall.qml index caed1cc9f..02c045b8a 100644 --- a/linphone-app/ui/views/App/Calls/Incall.qml +++ b/linphone-app/ui/views/App/Calls/Incall.qml @@ -233,7 +233,7 @@ Rectangle { horizontalAlignment: Qt.AlignHCenter visible: !conferenceModel && callModel && !callModel.isConference && text != title.text text: !conferenceModel && callModel - ? UtilsCpp.toDisplayString(SipAddressesModel.cleanSipAddress(callModel.peerAddress)) + ? UtilsCpp.toDisplayString(SipAddressesModel.cleanSipAddress(callModel.peerAddress), SettingsModel.sipDisplayMode) : '' color: IncallStyle.title.colorModel.color font.pointSize: IncallStyle.title.addressPointSize diff --git a/linphone-app/ui/views/App/Calls/WaitingRoom.qml b/linphone-app/ui/views/App/Calls/WaitingRoom.qml index ebcffca50..5fab5831a 100644 --- a/linphone-app/ui/views/App/Calls/WaitingRoom.qml +++ b/linphone-app/ui/views/App/Calls/WaitingRoom.qml @@ -167,13 +167,11 @@ Rectangle { */ avatarRatio: 2/3 - showCustomButton: !mainItem.callModel showUsername: false - customButtonColorSet : WaitingRoomStyle.buttons.options - customButtonToggled: multimediaLoader.active + + onVideoDefinitionChanged: previewDefinition = SettingsModel.getCurrentPreviewVideoDefinition() - onCustomButtonClicked: multimediaLoader.active = !multimediaLoader.active } } Loader{ @@ -219,7 +217,7 @@ Rectangle { } Text{ Layout.fillWidth: true - text: mainItem.callModel && UtilsCpp.toDisplayString(SipAddressesModel.cleanSipAddress(mainItem.callModel.peerAddress)) + text: mainItem.callModel && UtilsCpp.toDisplayString(SipAddressesModel.cleanSipAddress(mainItem.callModel.peerAddress), SettingsModel.sipDisplayMode) color: WaitingRoomStyle.callee.colorModel.color font.pointSize: WaitingRoomStyle.callee.addressPointSize horizontalAlignment: Text.AlignHCenter @@ -343,11 +341,27 @@ Rectangle { } } } + + ActionButton{ + id: optionsButton + anchors.centerIn: parent + anchors.horizontalCenterOffset: contentsStack.cameraWidth/2 - modeChoice.width/2 + + visible: !mainItem.callModel + isCustom: true + colorSet: WaitingRoomStyle.buttons.options + backgroundRadius: width/2 + toggled: multimediaLoader.active + onClicked: multimediaLoader.active = !multimediaLoader.active + } + ActionButton{ id: modeChoice property int selectedMode: SettingsModel.videoConferenceLayout - anchors.centerIn: parent - anchors.horizontalCenterOffset: contentsStack.cameraWidth/2 - modeChoice.width/2 + anchors.verticalCenter: optionsButton.verticalCenter + anchors.right: optionsButton.left + anchors.rightMargin: 10 + visible: !mainItem.callModel && SettingsModel.videoEnabled toggled: layoutMenu.visible isCustom: true @@ -397,6 +411,7 @@ Rectangle { } } } + } } } diff --git a/linphone-app/ui/views/App/Main/Conversation.qml b/linphone-app/ui/views/App/Main/Conversation.qml index 47cd97b65..1618a8736 100644 --- a/linphone-app/ui/views/App/Main/Conversation.qml +++ b/linphone-app/ui/views/App/Main/Conversation.qml @@ -154,7 +154,7 @@ ColumnLayout { }else if(chatRoomModel.isSecure()) return chatRoomModel.participants.addressesToString; else - return UtilsCpp.toDisplayString(SipAddressesModel.cleanSipAddress(chatRoomModel.sipAddress)) + return UtilsCpp.toDisplayString(SipAddressesModel.cleanSipAddress(chatRoomModel.sipAddress), SettingsModel.sipDisplayMode) }else return '' @@ -313,18 +313,35 @@ ColumnLayout { //onClicked: CallsListModel. Logic.openConferenceManager({chatRoomModel:conversation.chatRoomModel, autoCall:true}) onClicked:{ - if( SettingsModel.videoConferenceEnabled ){ - groupCallButton.toggled = true - conferenceInfoModel.resetConferenceInfo(); - conferenceInfoModel.isScheduled = false - conferenceInfoModel.subject = chatRoomModel.subject + window.detachVirtualWindow() + window.attachVirtualWindow(Utils.buildCommonDialogUri('ConfirmDialog'), { + flat: true + //: 'Group call' : Title for a group call confirmation. + , descriptionText: ''+qsTr('groupCallConfirmTitle')+'

' + //: 'Do you want to start a group call?
Everyone in this group will receive a call to join the meeting." + +qsTr('groupCallConfirmDescription') + , height: 330 + //: 'Cancel' : Cancel button + , buttonTexts: [qsTr('cancelButton').toUpperCase() + //: 'Start' : Start button + , qsTr('startButton').toUpperCase()] + }, function (status) { + if(status){ + if( SettingsModel.videoConferenceEnabled ){ + groupCallButton.toggled = true + conferenceInfoModel.resetConferenceInfo(); + conferenceInfoModel.isScheduled = false + conferenceInfoModel.subject = chatRoomModel.subject + + conferenceInfoModel.setParticipants(conversation.chatRoomModel.participants) + conferenceInfoModel.inviteMode = 0; + conferenceInfoModel.createConference(false)// TODO activate it when secure video conference is implemented + }else{ + Logic.openConferenceManager({chatRoomModel:conversation.chatRoomModel, autoCall:true}) + } + } + }) - conferenceInfoModel.setParticipants(conversation.chatRoomModel.participants) - conferenceInfoModel.inviteMode = 0; - conferenceInfoModel.createConference(false)// TODO activate it when secure video conference is implemented - }else{ - Logic.openConferenceManager({chatRoomModel:conversation.chatRoomModel, autoCall:true}) - } } //: "Call all chat room's participants" : tooltip on a button for calling all participant in the current chat room tooltipText: qsTr("groupChatCallButton") diff --git a/linphone-app/ui/views/App/Main/Dialogs/ManageAccounts.qml b/linphone-app/ui/views/App/Main/Dialogs/ManageAccounts.qml index d7d5c026d..89f49d41b 100644 --- a/linphone-app/ui/views/App/Main/Dialogs/ManageAccounts.qml +++ b/linphone-app/ui/views/App/Main/Dialogs/ManageAccounts.qml @@ -1,4 +1,5 @@ import QtQuick 2.7 +import QtQuick.Layouts 1.3 import Common 1.0 import Linphone 1.0 @@ -102,8 +103,21 @@ DialogPlus { else AccountSettingsModel.setDefaultAccount() } - - MessageCounter { + + leftActionsLoader.sourceComponent: + Switch{ + Layout.fillHeight: true + Layout.fillWidth: true + Layout.preferredWidth: width + + visible: flattenedModel.registerEnabled != undefined + checked: visible && flattenedModel.registerEnabled + onClicked: { + AccountSettingsModel.enableRegister(flattenedModel.account, !checked) + checked = !checked + } + } + MessageCounter { anchors.fill: parent count: flattenedModel.unreadMessageCount+flattenedModel.missedCallCount } diff --git a/linphone-app/ui/views/App/Main/HistoryView.qml b/linphone-app/ui/views/App/Main/HistoryView.qml index 595e2c470..b53338c3e 100644 --- a/linphone-app/ui/views/App/Main/HistoryView.qml +++ b/linphone-app/ui/views/App/Main/HistoryView.qml @@ -74,7 +74,7 @@ ColumnLayout { subtitleText: historyView.entry && historyView.entry.wasConference ? '' - : UtilsCpp.toDisplayString(SipAddressesModel.cleanSipAddress(historyView.peerAddress)) + : UtilsCpp.toDisplayString(SipAddressesModel.cleanSipAddress(historyView.peerAddress), SettingsModel.sipDisplayMode) subtitleColor: HistoryViewStyle.bar.description.subtitleColor.color titleText: avatar.username titleColor: HistoryViewStyle.bar.description.titleColor.color diff --git a/linphone-app/ui/views/App/Main/MainWindow.qml b/linphone-app/ui/views/App/Main/MainWindow.qml index 243945835..fbce85445 100644 --- a/linphone-app/ui/views/App/Main/MainWindow.qml +++ b/linphone-app/ui/views/App/Main/MainWindow.qml @@ -140,7 +140,7 @@ ApplicationWindow { Layout.fillWidth: false TooltipArea { - text: UtilsCpp.toDisplayString(AccountSettingsModel.sipAddress) + text: UtilsCpp.toDisplayString(AccountSettingsModel.sipAddress, SettingsModel.sipDisplayMode) hoveringCursor: Qt.PointingHandCursor } @@ -183,6 +183,7 @@ ApplicationWindow { maxMenuHeight: MainWindowStyle.searchBox.maxHeight placeholderText: qsTr('mainSearchBarPlaceholder') tooltipText: qsTr('smartSearchBarTooltip') + closePolicy: Popup.CloseOnEscape | Popup.CloseOnPressOutsideParent onAddContact: window.setView('ContactEdit', { sipAddress: sipAddress @@ -308,7 +309,12 @@ ApplicationWindow { icon: MainWindowStyle.menu.contacts.icon iconSize: MainWindowStyle.menu.contacts.iconSize overwriteColor: isSelected ? MainWindowStyle.menu.contacts.selectedColor.color : MainWindowStyle.menu.contacts.colorModel.color - name: qsTr('contactsEntry') + name: LdapListModel.count > 0 + //: 'Local contacts' : Contacts section label in main window when we have to specify that they are local to the application. + ? qsTr('localContactsEntry').toUpperCase() + //: 'Contacts' : Contacts section label in main waindow. + : qsTr('contactsEntry').toUpperCase() + visible: SettingsModel.contactsEnabled onSelected: { @@ -409,8 +415,7 @@ ApplicationWindow { anchors.right: parent.right anchors.top: parent.top id: telKeypad - onSendDtmf: smartSearchBar.text = smartSearchBar.previousText+dtmf - onVisibleChanged: if(!visible) smartSearchBar.previousText = '' // this is a way to reset search text + onSendDtmf: smartSearchBar.text += dtmf visible: SettingsModel.showTelKeypadAutomatically } } diff --git a/linphone-app/ui/views/App/Settings/SettingsNetwork.qml b/linphone-app/ui/views/App/Settings/SettingsNetwork.qml index 29dd12fc1..656dfb43f 100644 --- a/linphone-app/ui/views/App/Settings/SettingsNetwork.qml +++ b/linphone-app/ui/views/App/Settings/SettingsNetwork.qml @@ -129,16 +129,12 @@ TabContainer { FormLine { FormGroup { label: qsTr('rlsUriLabel') - - ExclusiveButtons { - selectedButton: Number(!SettingsModel.rlsUriEnabled) - texts: [ - qsTr('rlsUriAuto'), - qsTr('rlsUriDisabled') - ] - - onClicked: SettingsModel.rlsUriEnabled = !button - } + + TextField { + id: rlsUri + text: SettingsModel.rlsUri + onEditingFinished: SettingsModel.rlsUri = text + } } } } diff --git a/linphone-app/ui/views/App/Settings/SettingsUi.qml b/linphone-app/ui/views/App/Settings/SettingsUi.qml index 66d16f7a3..eb74d1c09 100644 --- a/linphone-app/ui/views/App/Settings/SettingsUi.qml +++ b/linphone-app/ui/views/App/Settings/SettingsUi.qml @@ -287,6 +287,22 @@ TabContainer { } } } + FormLine { + FormGroup { + //: 'Display only usernames' : Option text to display only usernames from SIP addresses. + label: qsTr('displayUsernamesLabel') + + Switch { + checked: SettingsModel.sipDisplayMode === UtilsCpp.SIP_DISPLAY_USERNAME + + onClicked: SettingsModel.sipDisplayMode = (checked ? UtilsCpp.SIP_DISPLAY_ALL : UtilsCpp.SIP_DISPLAY_USERNAME) + TooltipArea{ + //: 'Display only usernames from SIP addresses' : tooltip for addresses display mode where username is only shown. + text: qsTr('displayUsernamesTooltip') + } + } + } + } FormLine { maxItemWidth: parent.width visible: SettingsModel.isCheckForUpdateAvailable() diff --git a/linphone-app/ui/views/App/Styles/Calls/WaitingRoomStyle.qml b/linphone-app/ui/views/App/Styles/Calls/WaitingRoomStyle.qml index 5e5d96503..1f3d0fc57 100644 --- a/linphone-app/ui/views/App/Styles/Calls/WaitingRoomStyle.qml +++ b/linphone-app/ui/views/App/Styles/Calls/WaitingRoomStyle.qml @@ -157,14 +157,16 @@ QtObject { property int iconSize: 40 property string icon : 'menu_vdots_custom' property string name : 'options' - property var backgroundNormalColor : ColorsList.addImageColor(sectionName+'_'+name+'_bg_n', icon, 's_n_b_bg') - property var backgroundHoveredColor : ColorsList.addImageColor(sectionName+'_'+name+'_bg_h', icon, 's_h_b_bg') + property var backgroundNormalColor : ColorsList.addImageColor(sectionName+'_'+name+'_bg_n', icon, 's_h_b_bg') + property var backgroundHoveredColor : ColorsList.addImageColor(sectionName+'_'+name+'_bg_h', icon, 's_n_b_bg') property var backgroundPressedColor : ColorsList.addImageColor(sectionName+'_'+name+'_bg_p', icon, 's_p_b_bg') - property var backgroundUpdatingColor : ColorsList.addImageColor(sectionName+'_'+name+'_bg_c', icon, 's_p_b_bg') - property var foregroundNormalColor : ColorsList.addImageColor(sectionName+'_'+name+'_fg_n', icon, 's_n_b_fg') + property var backgroundUpdatingColor : ColorsList.addImageColor(sectionName+'_'+name+'_bg_u', icon, 's_p_b_bg') + property var backgroundDisabledColor : ColorsList.addImageColor(sectionName+'_'+name+'_bg_d', icon, 's_d_b_bg') + property var foregroundNormalColor : ColorsList.addImageColor(sectionName+'_'+name+'_fg_n', icon, 's_h_b_fg') property var foregroundHoveredColor : ColorsList.addImageColor(sectionName+'_'+name+'_fg_h', icon, 's_n_b_fg') property var foregroundPressedColor : ColorsList.addImageColor(sectionName+'_'+name+'_fg_p', icon, 's_p_b_fg') - property var foregroundUpdatingColor : ColorsList.addImageColor(sectionName+'_'+name+'_fg_c', icon, 's_p_b_fg') + property var foregroundUpdatingColor : ColorsList.addImageColor(sectionName+'_'+name+'_fg_u', icon, 's_p_b_fg') + property var foregroundDisabledColor : ColorsList.addImageColor(sectionName+'_'+name+'_fg_d', icon, 's_d_b_fg') } property QtObject hangup: QtObject { property int iconSize: 40