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