diff --git a/Linphone/core/account/AccountCore.cpp b/Linphone/core/account/AccountCore.cpp index 6fb83d3d8..c5ba9d7ab 100644 --- a/Linphone/core/account/AccountCore.cpp +++ b/Linphone/core/account/AccountCore.cpp @@ -296,6 +296,10 @@ void AccountCore::setSelf(QSharedPointer me) { mCoreModelConnection = SafeConnection::create(me, CoreModel::getInstance()); mCoreModelConnection->makeConnectToModel(&CoreModel::messageReadInChatRoom, [this] { mAccountModel->refreshUnreadNotifications(); }); + + mAccountModelConnection->makeConnectToModel(&AccountModel::setValueFailed, [this](const QString &errorMessage) { + mAccountModelConnection->invokeToCore([this, errorMessage]() { emit setValueFailed(errorMessage); }); + }); } void AccountCore::reset(const AccountCore &accountCore) { @@ -806,22 +810,21 @@ void AccountCore::writeIntoModel(std::shared_ptr model) const { void AccountCore::writeFromModel(const std::shared_ptr &model) { mustBeInLinphoneThread(getClassName() + Q_FUNC_INFO); - - mUnreadCallNotifications = model->getMissedCallsCount(); - mUnreadMessageNotifications = model->getUnreadMessagesCount(); - mMwiServerAddress = model->getMwiServerAddress(); - mTransport = LinphoneEnums::toString(LinphoneEnums::fromLinphone(model->getTransport())); - mServerAddress = model->getServerAddress(); - mOutboundProxyEnabled = model->getOutboundProxyEnabled(); - mStunServer = model->getStunServer(); - mIceEnabled = model->getIceEnabled(); - mAvpfEnabled = model->getAvpfEnabled(); - mBundleModeEnabled = model->getBundleModeEnabled(); - mExpire = model->getExpire(); - mConferenceFactoryAddress = model->getConferenceFactoryAddress(); - mAudioVideoConferenceFactoryAddress = model->getAudioVideoConferenceFactoryAddress(); - mLimeServerUrl = model->getLimeServerUrl(); - mVoicemailAddress = model->getVoicemailAddress(); + setUnreadCallNotifications(model->getMissedCallsCount()); + setUnreadMessageNotifications(model->getUnreadMessagesCount()); + setMwiServerAddress(model->getMwiServerAddress()); + setTransport(LinphoneEnums::toString(LinphoneEnums::fromLinphone(model->getTransport()))); + setServerAddress(model->getServerAddress()); + setOutboundProxyEnabled(model->getOutboundProxyEnabled()); + setStunServer(model->getStunServer()); + setIceEnabled(model->getIceEnabled()); + setAvpfEnabled(model->getAvpfEnabled()); + setBundleModeEnabled(model->getBundleModeEnabled()); + setExpire(model->getExpire()); + setConferenceFactoryAddress(model->getConferenceFactoryAddress()); + setAudioVideoConferenceFactoryAddress(model->getAudioVideoConferenceFactoryAddress()); + setLimeServerUrl(model->getLimeServerUrl()); + setVoicemailAddress(model->getVoicemailAddress()); } void AccountCore::save() { diff --git a/Linphone/core/account/AccountCore.hpp b/Linphone/core/account/AccountCore.hpp index 70bf45107..bcf6b086c 100644 --- a/Linphone/core/account/AccountCore.hpp +++ b/Linphone/core/account/AccountCore.hpp @@ -220,6 +220,8 @@ signals: void voicemailAddressChanged(); void presenceChanged(); + void setValueFailed(const QString &error); + // Account requests void lSetPictureUri(QString pictureUri); void lSetDefaultAccount(); @@ -271,6 +273,7 @@ private: int mMaxPresenceNoteSize; bool mIsSaved = true; + std::shared_ptr mAccountModel; QSharedPointer> mAccountModelConnection; QSharedPointer> mCoreModelConnection; diff --git a/Linphone/core/account/AccountDeviceList.cpp b/Linphone/core/account/AccountDeviceList.cpp index 42447ce88..6b72a5e11 100644 --- a/Linphone/core/account/AccountDeviceList.cpp +++ b/Linphone/core/account/AccountDeviceList.cpp @@ -69,7 +69,7 @@ void AccountDeviceList::setAccount(const QSharedPointer &accountCor mAccountCore = accountCore; lDebug() << log().arg("Set account model") << mAccountCore.get(); // oldConnect.unlock(); - refreshDevices(); + if (mAccountCore) refreshDevices(); // } } } diff --git a/Linphone/core/chat/message/ChatMessageCore.cpp b/Linphone/core/chat/message/ChatMessageCore.cpp index 4de3cb55d..9a8375610 100644 --- a/Linphone/core/chat/message/ChatMessageCore.cpp +++ b/Linphone/core/chat/message/ChatMessageCore.cpp @@ -142,7 +142,7 @@ ChatMessageCore::ChatMessageCore(const std::shared_ptr &c for (auto content : chatmessage->getContents()) { auto contentCore = ChatMessageContentCore::create(content, mChatMessageModel); mChatMessageContentList.push_back(contentCore); - if (content->isFile() && !content->isVoiceRecording()) mHasFileContent = true; + if ((content->isFile() || content->isFileTransfer()) && !content->isVoiceRecording()) mHasFileContent = true; if (content->isIcalendar()) mIsCalendarInvite = true; if (content->isVoiceRecording()) { mIsVoiceRecording = true; diff --git a/Linphone/core/chat/message/EventLogList.cpp b/Linphone/core/chat/message/EventLogList.cpp index 521992dfa..7486c5c05 100644 --- a/Linphone/core/chat/message/EventLogList.cpp +++ b/Linphone/core/chat/message/EventLogList.cpp @@ -63,7 +63,7 @@ void EventLogList::connectItem(const QSharedPointer &item) { auto message = item->getChatMessageCore(); if (message) { connect(message.get(), &ChatMessageCore::deleted, this, [this, item] { - emit mChatCore->lUpdateLastMessage(); + if (mChatCore) emit mChatCore->lUpdateLastMessage(); remove(item); }); connect(message.get(), &ChatMessageCore::ephemeralDurationChanged, this, [this, item](int duration) { diff --git a/Linphone/data/languages/de.ts b/Linphone/data/languages/de.ts index 603cf07ba..c2b9253e3 100644 --- a/Linphone/data/languages/de.ts +++ b/Linphone/data/languages/de.ts @@ -27,45 +27,45 @@ AccountCore - + drawer_menu_account_connection_status_connected "Connecté" Verbunden - + drawer_menu_account_connection_status_refreshing Aktualisiere… - + drawer_menu_account_connection_status_progress Verbinde… - + drawer_menu_account_connection_status_failed Fehler - + drawer_menu_account_connection_status_cleared Deaktiviert - + manage_account_status_connected_summary "Vous êtes en ligne et joignable." Sie sind online und erreichbar. - + manage_account_status_failed_summary "Erreur de connexion, vérifiez vos paramètres." Verbindungsfehler, überprüfen Sie Ihre Einstellungen. - + manage_account_status_cleared_summary "Compte désactivé, vous ne recevrez ni appel ni message." Konto deaktiviert, Sie erhalten keine Anrufe oder Nachrichten. @@ -125,6 +125,39 @@ Konto konnte nicht hinzugefügt werden. + + AccountModel + + + set_mwi_server_address_failed_error_message + "Unable to set voicemail server address, failed creating address from %1" : %1 is address + + + + + set_server_address_failed_error_message + "Unable to set server address, failed creating address from %1" + + + + + set_conference_factory_address_failed_error_message + "Unable to set the conversation server address, failed creating address from %1" + + + + + set_audio_conference_factory_address_failed_error_message + "Unable to set the meeting server address, failed creating address from %1" + + + + + set_voicemail_address_failed_error_message + Unable to set voicemail address, failed creating address from %1 + + + AccountSettingsGeneralLayout @@ -296,89 +329,94 @@ Kontoeinstellungen - + information_popup_success_title Erfolg - + contact_editor_saved_changes_toast "Modifications sauvegardés" Änderungen gespeichert - + + information_popup_error_title + + + + account_settings_mwi_uri_title "URI du serveur de messagerie vocale" Voicemail-Server-URI - + account_settings_voicemail_uri_title "URI de messagerie vocale" Voicemail-URI - + account_settings_transport_title "Transport" Transport - + account_settings_sip_proxy_url_title Proxy-Server-URL - + account_settings_outbound_proxy_title "Serveur mandataire sortant" Ausgehender Proxy-Server - + account_settings_stun_server_url_title "Adresse du serveur STUN" STUN-Server-Adresse - + account_settings_enable_ice_title "Activer ICE" ICE aktivieren - + account_settings_avpf_title "AVPF" AVPF - + account_settings_bundle_mode_title "Mode bundle" Bundle-Modus - + account_settings_expire_title "Expiration (en seconde)" Ablaufzeit (in Sekunden) - + account_settings_conference_factory_uri_title "URI du serveur de conversations" Konferenz-Factory-URI - + account_settings_audio_video_conference_factory_uri_title "URI du serveur de réunions" Video-Konferenz-Factory-URI - + account_settings_lime_server_url_title "URL du serveur d’échange de clés de chiffrement" Lime-Server-URL @@ -2064,40 +2102,40 @@ Error ChatMessageInvitationBubble - + ics_bubble_meeting_from - + ics_bubble_meeting_to - + ics_bubble_meeting_modified Meeting has been updated - + ics_bubble_meeting_cancelled Meeting has been canceled - + - + ics_bubble_description_title Description - + ics_bubble_participants %n participant(s) @@ -2106,7 +2144,7 @@ Error - + ics_bubble_join "Rejoindre" @@ -2174,79 +2212,79 @@ Error - + chat_dialog_delete_chat_title Supprimer la conversation ? - + chat_dialog_delete_chat_message "La conversation et tous ses messages seront supprimés." - + chat_list_title "Conversations" - + menu_mark_all_as_read "mark all as read" - + chat_search_in_history "Rechercher une conversation" - + list_filter_no_result_found "Aucun résultat…" - + chat_list_empty_history "Aucune conversation dans votre historique" - + chat_action_start_new_chat "New chat" - + chat_start_group_chat_title "Nouveau groupe" - + chat_action_start_group_chat "Créer" - - + + information_popup_error_title - + group_chat_error_must_have_name "Un nom doit être donné au groupe - + group_call_error_not_connected "Vous n'etes pas connecté" Sie sind nicht verbunden @@ -2637,10 +2675,12 @@ Error Zurzeit keine Kontakte - - + + contact_details_edit - "Éditer" + Edit +---------- +"Éditer" Bearbeiten @@ -2748,54 +2788,54 @@ Error Weitere Aktionen - + contact_details_remove_from_favourites "Retirer des favoris" Aus Favoriten entfernen - + contact_details_add_to_favourites "Ajouter aux favoris" Zu Favoriten hinzufügen - + contact_details_share "Partager" Teilen - + information_popup_error_title Fehler - + contact_details_share_error_mesage "La création du fichier vcard a échoué" VCard-Erstellung fehlgeschlagen - + contact_details_share_success_title "VCard créée" VCard erstellt - + contact_details_share_success_mesage "VCard du contact enregistrée dans %1" VCard wurde in %1 gespeichert - + contact_details_share_email_title "Partage de contact" Kontakt teilen - + contact_details_delete "Supprimer ce contact" Kontakt löschen @@ -2873,19 +2913,19 @@ Error ConversationInfos - + one_one_infos_call "Appel" Anrufen - + one_one_infos_unmute "Sourdine" Unmute - + one_one_infos_mute Stummschalten @@ -2895,121 +2935,121 @@ Error Suchen - + group_infos_participants Participants (%1) - + group_infos_media_docs Medias & documents Medien & Dokumente - + group_infos_shared_medias Shared medias - + group_infos_shared_docs Shared documents Geteilte Dokumente - + group_infos_other_actions Other actions Weitere Aktionen - + group_infos_ephemerals Ephemeral messages : - + group_infos_enable_ephemerals Flüchtige Nachrichten aktivieren - + group_infos_meeting Schedule a meeting Meeting - + group_infos_leave_room Leave chat room - + group_infos_leave_room_toast_title Leave Chat Room ? Chatraum verlassen? - + group_infos_leave_room_toast_message All the messages will be removed from the chat room. Do you want to continue ? Alle Nachrichten werden aus dem Chat entfernt. Möchten Sie fortfahren? - + group_infos_delete_history Delete history Verlauf löschen - + group_infos_delete_history_toast_title Delete history ? Verlauf löschen? - + group_infos_delete_history_toast_message All the messages will be removed from the chat room. Do you want to continue ? Alle Nachrichten werden aus dem Chat entfernt. Möchten Sie fortfahren? - + one_one_infos_open_contact Show contact Kontakt öffnen - + one_one_infos_create_contact Create contact Kontakt erstellen - + one_one_infos_ephemerals Ephemeral messages : - + one_one_infos_enable_ephemerals Flüchtige Nachrichten aktivieren - + one_one_infos_delete_history Verlauf löschen - + one_one_infos_delete_history_toast_title Delete history ? Verlauf löschen? - + one_one_infos_delete_history_toast_message All the messages will be removed from the chat room. Do you want to continue ? Alle Nachrichten werden aus dem Chat entfernt. Möchten Sie fortfahren? @@ -3121,13 +3161,13 @@ Error DecoratedTextField - + textfield_error_message_cannot_be_empty "ne peut être vide" darf nicht leer sein - + textfield_error_message_unknown_format "Format non reconnu" Unbekanntes Format @@ -3308,9 +3348,9 @@ Error - - - + + + sip_address "Adresse SIP" SIP-Adresse @@ -3318,18 +3358,18 @@ Error - + device_id "Téléphone" Telefon - + information_popup_error_title Fehler - + information_popup_invalid_address_message "Adresse invalide" Ungültige Adresse @@ -3759,102 +3799,102 @@ Error MainLayout - + bottom_navigation_calls_label "Appels" Anrufe - + bottom_navigation_contacts_label "Contacts" Kontakte - + bottom_navigation_conversations_label "Conversations" Konversationen - + bottom_navigation_meetings_label "Réunions" Besprechungen - + searchbar_placeholder_text "Rechercher un contact, appeler %1" Kontakt suchen, %1 anrufen - + searchbar_placeholder_text_chat_feature_enabled "ou envoyer un message …" oder eine Nachricht senden … - - + + contact_presence_status_disable_do_not_disturb "Désactiver ne pas déranger" Nicht stören deaktivieren - + information_popup_error_title Fehler - + no_voicemail_uri_error_message "L'URI de messagerie vocale n'est pas définie." Die Voicemail-URI ist nicht definiert. - + drawer_menu_manage_account Mon compte Mein Konto - + contact_presence_status_enable_do_not_disturb "Activer ne pas déranger" Nicht stören aktivieren - + settings_title Einstellungen - + recordings_title "Enregistrements" Aufnahmen - + help_title "Aide" Hilfe - + help_quit_title "Quitter l'application" App beenden - + quit_app_question "Quitter %1 ?" %1 beenden? - + drawer_menu_add_account "Ajouter un compte" Konto hinzufügen @@ -5031,36 +5071,36 @@ Pour les activer dans un projet commercial, merci de nous contacter. SelectedChatView - + chat_view_group_call_toast_message Start a group call ? - + reply_to_label Reply to %1 - + shared_medias_title Shared medias - + shared_documents_title Shared documents - + forward_to_title Forward to… - + conversations_title Conversations @@ -5165,43 +5205,43 @@ Pour les activer dans un projet commercial, merci de nous contacter. ToolModel - + call_error_uninterpretable_sip_address "The calling address is not an interpretable SIP address : %1 Die Anrufadresse ist keine interpretierbare SIP-Adresse: %1 - + group_call_error_no_account - + group_call_error_participants_invite - + group_call_error_creation - + conference_invitation - + conference_invitation_updated - + conference_invitation_cancelled - + unknown_audio_device_name Unbekannter Gerätename diff --git a/Linphone/data/languages/en.ts b/Linphone/data/languages/en.ts index 22b9afa1f..b473c31b9 100644 --- a/Linphone/data/languages/en.ts +++ b/Linphone/data/languages/en.ts @@ -27,45 +27,45 @@ AccountCore - + drawer_menu_account_connection_status_connected "Connecté" Connected - + drawer_menu_account_connection_status_refreshing Refreshing… - + drawer_menu_account_connection_status_progress Connecting… - + drawer_menu_account_connection_status_failed Error - + drawer_menu_account_connection_status_cleared Disabled - + manage_account_status_connected_summary "Vous êtes en ligne et joignable." You are online and reachable. - + manage_account_status_failed_summary "Erreur de connexion, vérifiez vos paramètres." Connection error, check your settings. - + manage_account_status_cleared_summary "Compte désactivé, vous ne recevrez ni appel ni message." Account disabled, you will not receive calls or messages. @@ -125,6 +125,39 @@ Unable to add account. + + AccountModel + + + set_mwi_server_address_failed_error_message + "Unable to set voicemail server address, failed creating address from %1" : %1 is address + Unable to set voicemail server address, failed creating address from %1 + + + + set_server_address_failed_error_message + "Unable to set server address, failed creating address from %1" + Unable to set server address, failed creating address from %1 + + + + set_conference_factory_address_failed_error_message + "Unable to set the conversation server address, failed creating address from %1" + Unable to set the conversation server address, failed creating address from %1 + + + + set_audio_conference_factory_address_failed_error_message + "Unable to set the meeting server address, failed creating address from %1" + Unable to set the meeting server address, failed creating address from %1 + + + + set_voicemail_address_failed_error_message + Unable to set voicemail address, failed creating address from %1 + Unable to set voicemail address, failed creating address from %1 + + AccountSettingsGeneralLayout @@ -296,89 +329,94 @@ Account settings - + information_popup_success_title Success - + contact_editor_saved_changes_toast "Modifications sauvegardés" Changes saved - + + information_popup_error_title + Error + + + account_settings_mwi_uri_title "URI du serveur de messagerie vocale" Voicemail server URI - + account_settings_voicemail_uri_title "URI de messagerie vocale" Voicemail URI - + account_settings_transport_title "Transport" Transport - + account_settings_sip_proxy_url_title Proxy server URL - + account_settings_outbound_proxy_title "Serveur mandataire sortant" Outgoing proxy server - + account_settings_stun_server_url_title "Adresse du serveur STUN" STUN server address - + account_settings_enable_ice_title "Activer ICE" Enable ICE - + account_settings_avpf_title "AVPF" AVPF - + account_settings_bundle_mode_title "Mode bundle" Bundle mode - + account_settings_expire_title "Expiration (en seconde)" Expiration (in seconds) - + account_settings_conference_factory_uri_title "URI du serveur de conversations" Conference factory URI - + account_settings_audio_video_conference_factory_uri_title "URI du serveur de réunions" Video conference factory uri - + account_settings_lime_server_url_title "URL du serveur d’échange de clés de chiffrement" Lime server URL @@ -2026,46 +2064,46 @@ Error ChatMessageInvitationBubble - + ics_bubble_meeting_from from - + ics_bubble_meeting_to to - + ics_bubble_meeting_modified Meeting has been updated Meeting has been updated - + ics_bubble_meeting_cancelled Meeting has been canceled Meeting has been cancelled - + from %1 to %2 (UTC%3) - + ics_bubble_description_title Description Description - + ics_bubble_join "Rejoindre" Join - + ics_bubble_participants %n participant(s) @@ -2137,79 +2175,79 @@ Only your correspondent can decrypt them. No conversation - + chat_dialog_delete_chat_title Supprimer la conversation ? Delete conversation ? - + chat_dialog_delete_chat_message "La conversation et tous ses messages seront supprimés." This conversation and all its messages will be deleted. - + chat_list_title "Conversations" Conversations - + menu_mark_all_as_read "mark all as read" Mark all as read - + chat_search_in_history "Rechercher une conversation" Search for a chat - + list_filter_no_result_found "Aucun résultat…" No result… - + chat_list_empty_history "Aucune conversation dans votre historique" No conversation in history - + chat_action_start_new_chat "New chat" New conversation - + chat_start_group_chat_title "Nouveau groupe" New group - + chat_action_start_group_chat "Créer" Create - - + + information_popup_error_title Error - + group_chat_error_must_have_name "Un nom doit être donné au groupe A name must be set for the group - + group_call_error_not_connected "Vous n'etes pas connecté" You are not connected @@ -2575,10 +2613,12 @@ Only your correspondent can decrypt them. No contact at the moment - - + + contact_details_edit - "Éditer" + Edit +---------- +"Éditer" Edit @@ -2666,54 +2706,54 @@ Only your correspondent can decrypt them. Other actions - + contact_details_remove_from_favourites "Retirer des favoris" Remove from favorites - + contact_details_add_to_favourites "Ajouter aux favoris" Add to favorites - + contact_details_share "Partager" Share - + information_popup_error_title Error - + contact_details_share_error_mesage "La création du fichier vcard a échoué" VCard creation failed - + contact_details_share_success_title "VCard créée" VCard created - + contact_details_share_success_mesage "VCard du contact enregistrée dans %1" VCard has been saved in %1 - + contact_details_share_email_title "Partage de contact" Share contact - + contact_details_delete "Supprimer ce contact" Delete contact @@ -2791,138 +2831,138 @@ Only your correspondent can decrypt them. ConversationInfos - + one_one_infos_call "Appel" Call - + one_one_infos_unmute "Sourdine" Unmute - + one_one_infos_mute Mute - + group_infos_participants Participants (%1) - + group_infos_media_docs Medias & documents Medias & documents - + group_infos_shared_medias Shared medias Shared medias - + group_infos_shared_docs Shared documents Shared documents - + group_infos_other_actions Other actions Other actions - + group_infos_ephemerals Ephemeral messages : - + group_infos_enable_ephemerals Enable ephemeral messages - + group_infos_meeting Schedule a meeting Schedule a meeting - + group_infos_leave_room Leave chat room Leave Chat Room - + group_infos_leave_room_toast_title Leave Chat Room ? Leave Chat Room ? - + group_infos_leave_room_toast_message All the messages will be removed from the chat room. Do you want to continue ? All the messages will be removed from the chat room. Do you want to continue ? - + group_infos_delete_history Delete history Delete history - + group_infos_delete_history_toast_title Delete history ? Delete history ? - + group_infos_delete_history_toast_message All the messages will be removed from the chat room. Do you want to continue ? All the messages will be removed from the chat room. Do you want to continue ? - + one_one_infos_open_contact Show contact Show contact - + one_one_infos_create_contact Create contact Create contact - + one_one_infos_ephemerals Ephemeral messages : - + one_one_infos_enable_ephemerals Enable ephemeral messages - + one_one_infos_delete_history Delete history - + one_one_infos_delete_history_toast_title Delete history ? Delete history ? - + one_one_infos_delete_history_toast_message All the messages will be removed from the chat room. Do you want to continue ? All the messages will be removed from the chat room. Do you want to continue ? @@ -3034,13 +3074,13 @@ Only your correspondent can decrypt them. DecoratedTextField - + textfield_error_message_cannot_be_empty "ne peut être vide" can not be empty - + textfield_error_message_unknown_format "Format non reconnu" Unknown format @@ -3223,9 +3263,9 @@ Expiration : %1 - - - + + + sip_address "Adresse SIP" SIP address @@ -3233,18 +3273,18 @@ Expiration : %1 - + device_id "Téléphone" Phone - + information_popup_error_title Error - + information_popup_invalid_address_message "Adresse invalide" Invalid address @@ -3669,102 +3709,102 @@ Expiration : %1 MainLayout - + bottom_navigation_calls_label "Appels" Calls - + bottom_navigation_contacts_label "Contacts" Contacts - + bottom_navigation_conversations_label "Conversations" Conversations - + bottom_navigation_meetings_label "Réunions" Meetings - + searchbar_placeholder_text "Rechercher un contact, appeler %1" Find contact, call %1 - + searchbar_placeholder_text_chat_feature_enabled "ou envoyer un message …" or send message … - - + + contact_presence_status_disable_do_not_disturb "Désactiver ne pas déranger" Disable do not disturb - + information_popup_error_title Error - + no_voicemail_uri_error_message "L'URI de messagerie vocale n'est pas définie." The voicemail URI is not defined. - + drawer_menu_manage_account Mon compte My account - + contact_presence_status_enable_do_not_disturb "Activer ne pas déranger" Enable do not disturb - + settings_title Settings - + recordings_title "Enregistrements" Records - + help_title "Aide" Help - + help_quit_title "Quitter l'application" Quit the app - + quit_app_question "Quitter %1 ?" Quit %1 ? - + drawer_menu_add_account "Ajouter un compte" Add an account @@ -4920,36 +4960,36 @@ To enable them in a commercial project, please contact us. SelectedChatView - + chat_view_group_call_toast_message Start a group call ? - + reply_to_label Reply to %1 Reply to %1 - + shared_medias_title Shared medias Shared medias - + shared_documents_title Shared documents Shared documents - + forward_to_title Forward to… Froward to… - + conversations_title Conversations Conversations @@ -5054,43 +5094,43 @@ To enable them in a commercial project, please contact us. ToolModel - + call_error_uninterpretable_sip_address "The calling address is not an interpretable SIP address : %1 The calling address is not an interpretable SIP address : %1 - + group_call_error_no_account No default account found, can't create group call - + group_call_error_participants_invite Couldn't invite participants to group call - + group_call_error_creation Group call couldn't be created - + unknown_audio_device_name Unknown device name - + conference_invitation Meeting invitation - + conference_invitation_cancelled Meeting cancellation - + conference_invitation_updated Meeting modification diff --git a/Linphone/data/languages/fr_FR.ts b/Linphone/data/languages/fr_FR.ts index 11f768fdf..37408f37a 100644 --- a/Linphone/data/languages/fr_FR.ts +++ b/Linphone/data/languages/fr_FR.ts @@ -27,45 +27,45 @@ AccountCore - + drawer_menu_account_connection_status_connected "Connecté" Connecté - + drawer_menu_account_connection_status_refreshing En cours de rafraîchissement… - + drawer_menu_account_connection_status_progress Connexion… - + drawer_menu_account_connection_status_failed Erreur - + drawer_menu_account_connection_status_cleared Désactivé - + manage_account_status_connected_summary "Vous êtes en ligne et joignable." Vous êtes en ligne et joignable. - + manage_account_status_failed_summary "Erreur de connexion, vérifiez vos paramètres." Erreur de connexion, vérifiez vos paramètres. - + manage_account_status_cleared_summary "Compte désactivé, vous ne recevrez ni appel ni message." Compte désactivé, vous ne recevrez ni appel ni message. @@ -125,6 +125,39 @@ Impossible d'ajouter le compte. + + AccountModel + + + set_mwi_server_address_failed_error_message + "Unable to set voicemail server address, failed creating address from %1" : %1 is address + Impossible de définir l'adresse du serveur de messagerie vocale depuis l'adresse %1 + + + + set_server_address_failed_error_message + "Unable to set server address, failed creating address from %1" + Impossible de définir l'adresse du serveur depuis l'adresse %1 + + + + set_conference_factory_address_failed_error_message + "Unable to set the conversation server address, failed creating address from %1" + Impossible de définir l'uri du serveur de conversations depuis l'adresse %1 + + + + set_audio_conference_factory_address_failed_error_message + "Unable to set the meeting server address, failed creating address from %1" + Impossible de définir l'uri du serveur de réunions depuis l'adresse %1 + + + + set_voicemail_address_failed_error_message + Unable to set voicemail address, failed creating address from %1 + Impossible de définir l'adresse de messagerie vocale depuis l'adresse %1 + + AccountSettingsGeneralLayout @@ -296,89 +329,94 @@ Paramètres de compte - + information_popup_success_title Succès - + contact_editor_saved_changes_toast "Modifications sauvegardés" Modifications sauvegardés - + + information_popup_error_title + Erreur + + + account_settings_mwi_uri_title "URI du serveur de messagerie vocale" URI du serveur de messagerie vocale - + account_settings_voicemail_uri_title "URI de messagerie vocale" URI de messagerie vocale - + account_settings_transport_title "Transport" Transport - + account_settings_sip_proxy_url_title URL du serveur mandataire - + account_settings_outbound_proxy_title "Serveur mandataire sortant" Serveur mandataire sortant - + account_settings_stun_server_url_title "Adresse du serveur STUN" Adresse du serveur STUN - + account_settings_enable_ice_title "Activer ICE" Activer ICE - + account_settings_avpf_title "AVPF" AVPF - + account_settings_bundle_mode_title "Mode bundle" Mode bundle - + account_settings_expire_title "Expiration (en seconde)" Expiration (en seconde) - + account_settings_conference_factory_uri_title "URI du serveur de conversations" URI du serveur de conversations - + account_settings_audio_video_conference_factory_uri_title "URI du serveur de réunions" URI du serveur de réunions - + account_settings_lime_server_url_title "URL du serveur d’échange de clés de chiffrement" URL du serveur d’échange de clés de chiffrement @@ -2026,46 +2064,46 @@ Error ChatMessageInvitationBubble - + ics_bubble_meeting_from de - + ics_bubble_meeting_to à - + ics_bubble_meeting_modified Meeting has been updated La réunion a été modifiée - + ics_bubble_meeting_cancelled Meeting has been canceled La réunion a été annulée - + de %1 à %2 (UTC%3) - + ics_bubble_description_title Description Description - + ics_bubble_join "Rejoindre" Rejoindre - + ics_bubble_participants %n participant(s) @@ -2137,79 +2175,79 @@ en bout. Seul votre correspondant peut les déchiffrer. Aucune conversation - + chat_dialog_delete_chat_title Supprimer la conversation ? Supprimer la conversation ? - + chat_dialog_delete_chat_message "La conversation et tous ses messages seront supprimés." La conversation et tous ses messages seront supprimés. - + chat_list_title "Conversations" Conversations - + menu_mark_all_as_read "mark all as read" Tout marquer comme lu - + chat_search_in_history "Rechercher une conversation" Rechercher une conversation - + list_filter_no_result_found "Aucun résultat…" Aucun résultat… - + chat_list_empty_history "Aucune conversation dans votre historique" Aucune conversation dans votre historique - + chat_action_start_new_chat "New chat" Nouvelle conversation - + chat_start_group_chat_title "Nouveau groupe" Nouveau groupe - + chat_action_start_group_chat "Créer" Créer - - + + information_popup_error_title Erreur - + group_chat_error_must_have_name "Un nom doit être donné au groupe Un nom doit être donné au groupe - + group_call_error_not_connected "Vous n'etes pas connecté" Vous n'êtes pas connecté @@ -2575,10 +2613,12 @@ en bout. Seul votre correspondant peut les déchiffrer. Aucun contact pour le moment - - + + contact_details_edit - "Éditer" + Edit +---------- +"Éditer" Éditer @@ -2666,54 +2706,54 @@ en bout. Seul votre correspondant peut les déchiffrer. Autres actions - + contact_details_remove_from_favourites "Retirer des favoris" Retirer des favoris - + contact_details_add_to_favourites "Ajouter aux favoris" Ajouter aux favoris - + contact_details_share "Partager" Partager - + information_popup_error_title Erreur - + contact_details_share_error_mesage "La création du fichier vcard a échoué" La création du fichier vcard a échoué - + contact_details_share_success_title "VCard créée" VCard créée - + contact_details_share_success_mesage "VCard du contact enregistrée dans %1" VCard du contact enregistrée dans %1 - + contact_details_share_email_title "Partage de contact" Partage de contact - + contact_details_delete "Supprimer ce contact" Supprimer ce contact @@ -2791,138 +2831,138 @@ en bout. Seul votre correspondant peut les déchiffrer. ConversationInfos - + one_one_infos_call "Appel" Appel - + one_one_infos_unmute "Sourdine" Réactiver les notifications - + one_one_infos_mute Sourdine - + group_infos_participants Participants (%1) - + group_infos_media_docs Medias & documents Medias & documents - + group_infos_shared_medias Shared medias Médias partagés - + group_infos_shared_docs Shared documents Documents partagés - + group_infos_other_actions Other actions Autres actions - + group_infos_ephemerals Messages éphémères : - + group_infos_enable_ephemerals Activer les messages éphémères - + group_infos_meeting Schedule a meeting Programmer une réunion - + group_infos_leave_room Leave chat room Quitter la conversation - + group_infos_leave_room_toast_title Leave Chat Room ? Quitter la conversation ? - + group_infos_leave_room_toast_message All the messages will be removed from the chat room. Do you want to continue ? Vous ne recevrez ni pourrez envoyer des messages dans cette conversation, quitter ? - + group_infos_delete_history Delete history Supprimer l'historique - + group_infos_delete_history_toast_title Delete history ? Supprimer l'historique ? - + group_infos_delete_history_toast_message All the messages will be removed from the chat room. Do you want to continue ? Tous les messages seront supprimés. Souhaitez-vous continuer ? - + one_one_infos_open_contact Show contact Voir le contact - + one_one_infos_create_contact Create contact Créer un contact - + one_one_infos_ephemerals Messages éphémères : - + one_one_infos_enable_ephemerals Activer les messages éphémères - + one_one_infos_delete_history Supprimer l'historique - + one_one_infos_delete_history_toast_title Delete history ? Supprimer l'historique ? - + one_one_infos_delete_history_toast_message All the messages will be removed from the chat room. Do you want to continue ? Tous les messages seront supprimés. Souhaitez-vous continuer ? @@ -3034,13 +3074,13 @@ en bout. Seul votre correspondant peut les déchiffrer. DecoratedTextField - + textfield_error_message_cannot_be_empty "ne peut être vide" ne peut être vide - + textfield_error_message_unknown_format "Format non reconnu" Format non reconnu @@ -3223,9 +3263,9 @@ Expiration : %1 - - - + + + sip_address "Adresse SIP" Adresse SIP @@ -3233,18 +3273,18 @@ Expiration : %1 - + device_id "Téléphone" Téléphone - + information_popup_error_title Erreur - + information_popup_invalid_address_message "Adresse invalide" Adresse invalide @@ -3669,102 +3709,102 @@ Expiration : %1 MainLayout - + bottom_navigation_calls_label "Appels" Appels - + bottom_navigation_contacts_label "Contacts" Contacts - + bottom_navigation_conversations_label "Conversations" Conversations - + bottom_navigation_meetings_label "Réunions" Réunions - + searchbar_placeholder_text "Rechercher un contact, appeler %1" Rechercher un contact, appeler %1 - + searchbar_placeholder_text_chat_feature_enabled "ou envoyer un message …" ou envoyer un message … - - + + contact_presence_status_disable_do_not_disturb "Désactiver ne pas déranger" Désactiver ne pas déranger - + information_popup_error_title Erreur - + no_voicemail_uri_error_message "L'URI de messagerie vocale n'est pas définie." L'URI de messagerie vocale n'est pas définie. - + drawer_menu_manage_account Mon compte Mon compte - + contact_presence_status_enable_do_not_disturb "Activer ne pas déranger" Activer ne pas déranger - + settings_title Paramètres - + recordings_title "Enregistrements" Enregistrements - + help_title "Aide" Aide - + help_quit_title "Quitter l'application" Quitter l'application - + quit_app_question "Quitter %1 ?" Quitter %1 ? - + drawer_menu_add_account "Ajouter un compte" Ajouter un compte @@ -4920,36 +4960,36 @@ Pour les activer dans un projet commercial, merci de nous contacter. SelectedChatView - + chat_view_group_call_toast_message Démarrer un appel de groupe ? - + reply_to_label Reply to %1 Réponse à %1 - + shared_medias_title Shared medias Médias partagés - + shared_documents_title Shared documents Documents partagés - + forward_to_title Forward to… Transférer à… - + conversations_title Conversations Conversations @@ -5054,43 +5094,43 @@ Pour les activer dans un projet commercial, merci de nous contacter. ToolModel - + call_error_uninterpretable_sip_address "The calling address is not an interpretable SIP address : %1 L'adresse n'est pas interprétable comme une adresse SIP - + group_call_error_no_account Impossible de créer l'appel de groupe, le compte par défaut n'est pas défini - + group_call_error_participants_invite Impossible d'inviter les participants à l'appel de groupe - + group_call_error_creation L'appel de groupe n'a pas pu être créé - + unknown_audio_device_name Appareil inconnu - + conference_invitation Invitation à une réunion - + conference_invitation_cancelled Annulation d'une réunion - + conference_invitation_updated Modification d'une réunion diff --git a/Linphone/model/account/AccountModel.cpp b/Linphone/model/account/AccountModel.cpp index f98056589..9b3938c65 100644 --- a/Linphone/model/account/AccountModel.cpp +++ b/Linphone/model/account/AccountModel.cpp @@ -243,7 +243,11 @@ void AccountModel::setMwiServerAddress(QString value) { newParams->setMwiServerAddress(address); if (!mMonitor->setParams(newParams)) emit mwiServerAddressChanged(value); } - } else qWarning() << "Unable to set MWI address, failed creating address from" << value; + } else { + //: "Unable to set voicemail server address, failed creating address from %1" : %1 is address + emit setValueFailed(tr("set_mwi_server_address_failed_error_message").arg(value)); + qWarning() << "Unable to set MWI address, failed creating address from" << value; + } } linphone::TransportType AccountModel::getTransport() const { @@ -279,7 +283,11 @@ void AccountModel::setServerAddress(QString value, linphone::TransportType trans if (save) mMonitor->setParams(params); emit serverAddressChanged(value); emit transportChanged(address->getTransport()); - } else qWarning() << "Unable to set ServerAddress, failed creating address from" << value; + } else { + //: "Unable to set server address, failed creating address from %1" + emit setValueFailed(tr("set_server_address_failed_error_message").arg(value)); + qWarning() << "Unable to set ServerAddress, failed creating address from" << value; + } } bool AccountModel::getOutboundProxyEnabled() const { @@ -380,7 +388,11 @@ void AccountModel::setConferenceFactoryAddress(QString value) { params->setConferenceFactoryAddress(address); mMonitor->setParams(params); emit conferenceFactoryAddressChanged(value); - } else qWarning() << "Unable to set ConferenceFactoryAddress address, failed creating address from" << value; + } else { + //: "Unable to set the conversation server address, failed creating address from %1" + emit setValueFailed(tr("set_conference_factory_address_failed_error_message").arg(value)); + qWarning() << "Unable to set ConferenceFactoryAddress address, failed creating address from" << value; + } } QString AccountModel::getAudioVideoConferenceFactoryAddress() const { @@ -398,8 +410,11 @@ void AccountModel::setAudioVideoConferenceFactoryAddress(QString value) { params->setAudioVideoConferenceFactoryAddress(address); mMonitor->setParams(params); emit audioVideoConferenceFactoryAddressChanged(value); - } else + } else { + //: "Unable to set the meeting server address, failed creating address from %1" + emit setValueFailed(tr("set_audio_conference_factory_address_failed_error_message").arg(value)); qWarning() << "Unable to set AudioVideoConferenceFactoryAddress address, failed creating address from" << value; + } } QString AccountModel::getLimeServerUrl() const { @@ -442,7 +457,11 @@ void AccountModel::setVoicemailAddress(QString value) { params->setVoicemailAddress(address); mMonitor->setParams(params); emit voicemailAddressChanged(value); - } else qWarning() << "Unable to set VoicemailAddress, failed creating address from" << value; + } else { + //: Unable to set voicemail address, failed creating address from %1 + emit setValueFailed(tr("set_voicemail_address_failed_error_message").arg(value)); + qWarning() << "Unable to set VoicemailAddress, failed creating address from" << value; + } } QString AccountModel::getVoicemailAddress() const { diff --git a/Linphone/model/account/AccountModel.hpp b/Linphone/model/account/AccountModel.hpp index f21d8602b..eb0c73558 100644 --- a/Linphone/model/account/AccountModel.hpp +++ b/Linphone/model/account/AccountModel.hpp @@ -119,6 +119,8 @@ signals: void voicemailAddressChanged(QString value); void presenceChanged(LinphoneEnums::Presence presence, bool userInitiated); + void setValueFailed(const QString &errorMessage); + private: /**Linphone **/ virtual void onRegistrationStateChanged(const std::shared_ptr &account, diff --git a/Linphone/model/setting/SettingsModel.cpp b/Linphone/model/setting/SettingsModel.cpp index 5b4cd5c4a..377571ee2 100644 --- a/Linphone/model/setting/SettingsModel.cpp +++ b/Linphone/model/setting/SettingsModel.cpp @@ -832,6 +832,15 @@ bool SettingsModel::getLimeIsSupported() const { return CoreModel::getInstance()->getCore()->limeX3DhAvailable(); } +void SettingsModel::setDisableMeetingsFeature(bool value) { + mConfig->setBool(UiSection, "disable_meetings_feature", value); + emit disableMeetingsFeatureChanged(value); +} + +bool SettingsModel::getDisableMeetingsFeature() const { + return !!mConfig->getInt(UiSection, "disable_meetings_feature", 0); +} + void SettingsModel::setChatNotificationSoundPath(const QString &path) { QString cleanedPath = QDir::cleanPath(path); mConfig->setString(UiSection, "chat_sound_notification_file", Utils::appStringToCoreString(cleanedPath)); @@ -891,8 +900,6 @@ void SettingsModel::notifyConfigReady(){ } DEFINE_GETSET_CONFIG(SettingsModel, bool, Bool, disableChatFeature, DisableChatFeature, "disable_chat_feature", false) -DEFINE_GETSET_CONFIG( - SettingsModel, bool, Bool, disableMeetingsFeature, DisableMeetingsFeature, "disable_meetings_feature", false) DEFINE_GETSET_CONFIG(SettingsModel, bool, Bool, diff --git a/Linphone/model/setting/SettingsModel.hpp b/Linphone/model/setting/SettingsModel.hpp index 34879a383..64ab6cc9c 100644 --- a/Linphone/model/setting/SettingsModel.hpp +++ b/Linphone/model/setting/SettingsModel.hpp @@ -179,9 +179,11 @@ public: bool getLimeIsSupported() const; + void setDisableMeetingsFeature(bool value); + bool getDisableMeetingsFeature() const; + // UI DECLARE_GETSET(bool, disableChatFeature, DisableChatFeature) - DECLARE_GETSET(bool, disableMeetingsFeature, DisableMeetingsFeature) DECLARE_GETSET(bool, disableBroadcastFeature, DisableBroadcastFeature) DECLARE_GETSET(bool, hideSettings, HideSettings) DECLARE_GETSET(bool, hideAccountSettings, HideAccountSettings) @@ -257,6 +259,8 @@ signals: void dndChanged(bool value); + void disableMeetingsFeatureChanged(bool value); + // Messages. -------------------------------------------------------------------- void autoDownloadReceivedFilesChanged(bool enabled); diff --git a/Linphone/view/Control/Display/Contact/ContactListView.qml b/Linphone/view/Control/Display/Contact/ContactListView.qml index bd09c1ca5..ad7f0b155 100644 --- a/Linphone/view/Control/Display/Contact/ContactListView.qml +++ b/Linphone/view/Control/Display/Contact/ContactListView.qml @@ -188,6 +188,7 @@ ListView { searchResultItem: $modelData showInitials: mainItem.showInitials && isStored showDefaultAddress: mainItem.showDefaultAddress + showDisplayName: mainItem.showDisplayName showActions: mainItem.showActions showContactMenu: mainItem.showContactMenu && searchResultItem.core.isStored highlightText: mainItem.highlightText diff --git a/Linphone/view/Control/Input/DecoratedTextField.qml b/Linphone/view/Control/Input/DecoratedTextField.qml index 73b9759bd..cbdcefc5f 100644 --- a/Linphone/view/Control/Input/DecoratedTextField.qml +++ b/Linphone/view/Control/Input/DecoratedTextField.qml @@ -18,11 +18,12 @@ FormItemLayout { property bool useTitleAsPlaceHolder: true property bool canBeEmpty: true property bool toValidate: false + property alias text: textField.text function value() { return propertyOwnerGui ? propertyOwnerGui.core[propertyName] : propertyOwner[propertyName] } - + property alias hidden: textField.hidden property alias validator: textField.validator diff --git a/Linphone/view/Control/Input/TextField.qml b/Linphone/view/Control/Input/TextField.qml index 5dbd0ecdf..89d3288ae 100644 --- a/Linphone/view/Control/Input/TextField.qml +++ b/Linphone/view/Control/Input/TextField.qml @@ -74,7 +74,7 @@ Control.TextField { idleTimer.stop() updateText() } - onTextEdited: { + onTextChanged: { if (mainItem.toValidate) { idleTimer.restart() } @@ -90,8 +90,9 @@ Control.TextField { } if (mainItem.propertyName && isValid(text)) { if (mainItem.propertyOwnerGui) { - if (mainItem.propertyOwnerGui.core[mainItem.propertyName] != text) + if (mainItem.propertyOwnerGui.core[mainItem.propertyName] != text) { mainItem.propertyOwnerGui.core[mainItem.propertyName] = text + } } else { if (mainItem.propertyOwner[mainItem.propertyName] != text) mainItem.propertyOwner[mainItem.propertyName] = text diff --git a/Linphone/view/Page/Layout/Chat/ConversationInfos.qml b/Linphone/view/Page/Layout/Chat/ConversationInfos.qml index caccf5947..be15ff6a5 100644 --- a/Linphone/view/Page/Layout/Chat/ConversationInfos.qml +++ b/Linphone/view/Page/Layout/Chat/ConversationInfos.qml @@ -14,6 +14,8 @@ ColumnLayout { property ChatGui chatGui property var chatCore: chatGui.core property var contactObj: chatGui ? UtilsCpp.findFriendByAddress(mainItem.chatCore.peerAddress) : null + property FriendGui contact: contactObj ? contactObj.value : null + property bool isAppFriend: contact && contact.core.isAppFriend property var parentView property bool isGroup: chatCore && chatCore.isGroupChat spacing: 0 @@ -23,7 +25,7 @@ ColumnLayout { Avatar { Layout.alignment: Qt.AlignHCenter - contact: contactObj?.value || null + contact: mainItem.contact displayNameVal: mainItem.chatCore.avatarUri secured: mainItem.chatGui && mainItem.chatGui.core.isSecured Layout.preferredWidth: Math.round(100 * DefaultStyle.dp) @@ -157,10 +159,10 @@ ColumnLayout { } Text { - visible: contactObj && contactObj.value || false + visible: mainItem.contact font: Typography.p3 - color: contactObj?.value != null ? contactObj?.value.core.presenceColor : "transparent" - text: contactObj?.value != null ? contactObj?.value.core.presenceStatus : "" + color: mainItem.contact ? mainItem.contact.core.presenceColor : "transparent" + text: mainItem.contact ? mainItem.contact.core.presenceStatus : "" Layout.alignment: Qt.AlignHCenter Layout.topMargin: Math.round(5 * DefaultStyle.dp) } @@ -213,13 +215,13 @@ ColumnLayout { button.icon.height: Math.round(24 * DefaultStyle.dp) button.icon.source: mainItem.isGroup ? AppIcons.videoconference - : contactObj.value + : mainItem.isAppFriend ? AppIcons.adressBook : AppIcons.plusCircle label: mainItem.isGroup //: Schedule a meeting ? qsTr("group_infos_meeting") - : contactObj.value + : mainItem.isAppFriend //: Show contact ? qsTr("one_one_infos_open_contact") //: Create contact @@ -228,8 +230,8 @@ ColumnLayout { if (mainItem.isGroup) UtilsCpp.getMainWindow().scheduleMeeting(mainItem.chatCore.title, mainItem.chatCore.participantsAddresses) else { - if (contactObj.value) - mainWindow.displayContactPage(contactObj.value.core.defaultAddress) + if (mainItem.isAppFriend) + mainWindow.displayContactPage(mainItem.contact.core.defaultAddress) else mainWindow.displayCreateContactPage("",mainItem.chatCore.peerAddress) } diff --git a/Linphone/view/Page/Layout/Main/MainLayout.qml b/Linphone/view/Page/Layout/Main/MainLayout.qml index e22ee2c30..2903965ba 100644 --- a/Linphone/view/Page/Layout/Main/MainLayout.qml +++ b/Linphone/view/Page/Layout/Main/MainLayout.qml @@ -60,6 +60,9 @@ Item { if (mainItem.contextualMenuOpenedComponent && mainItem.contextualMenuOpenedComponent != component) { mainStackView.pop() + if (mainItem.contextualMenuOpenedComponent) { + mainItem.contextualMenuOpenedComponent.destroy() + } mainItem.contextualMenuOpenedComponent = undefined } if (!mainItem.contextualMenuOpenedComponent) { @@ -71,6 +74,8 @@ Item { function closeContextualMenuComponent() { mainStackView.pop() + if (mainItem.contextualMenuOpenedComponent) + mainItem.contextualMenuOpenedComponent.destroy() mainItem.contextualMenuOpenedComponent = undefined } diff --git a/Linphone/view/Page/Layout/Settings/AccountSettingsParametersLayout.qml b/Linphone/view/Page/Layout/Settings/AccountSettingsParametersLayout.qml index bdfa25824..cb920aab0 100644 --- a/Linphone/view/Page/Layout/Settings/AccountSettingsParametersLayout.qml +++ b/Linphone/view/Page/Layout/Settings/AccountSettingsParametersLayout.qml @@ -29,12 +29,21 @@ AbstractSettingsLayout { Connections { target: account.core function onIsSavedChanged() { - if (account.core.isSaved) + if (account.core.isSaved) { UtilsCpp.showInformationPopup( qsTr("information_popup_success_title"), //: "Modifications sauvegardés" qsTr("contact_editor_saved_changes_toast"), true, mainWindow) + } + } + function onSetValueFailed(error) { + if (error) { + UtilsCpp.showInformationPopup( + qsTr("information_popup_error_title"), + error, false, + mainWindow) + } } } @@ -47,6 +56,7 @@ AbstractSettingsLayout { Layout.fillWidth: true spacing: Math.round(20 * DefaultStyle.dp) DecoratedTextField { + id: mwiServerAddressField propertyName: "mwiServerAddress" propertyOwnerGui: account //: "URI du serveur de messagerie vocale" @@ -56,8 +66,17 @@ AbstractSettingsLayout { return text.length == 0 || !text.endsWith(".") } // work around sdk crash when adress ends with . toValidate: true + + Connections { + target: account.core + function onMwiServerAddressAddressChanged() { + if (mwiServerAddressField.text != mwiServerAddressField.propertyOwnerGui.core[mwiServerAddressField.propertyName]) + mwiServerAddressField.text = mwiServerAddressField.propertyOwnerGui.core[mwiServerAddressField.propertyName] + } + } } DecoratedTextField { + id: voicemailAddressField propertyName: "voicemailAddress" propertyOwnerGui: account //: "URI de messagerie vocale" @@ -65,6 +84,14 @@ AbstractSettingsLayout { title: qsTr("account_settings_voicemail_uri_title") Layout.fillWidth: true toValidate: true + + Connections { + target: account.core + function onVoicemailAddressAddressChanged() { + if (voicemailAddressField.text != voicemailAddressField.propertyOwnerGui.core[voicemailAddressField.propertyName]) + voicemailAddressField.text = voicemailAddressField.propertyOwnerGui.core[voicemailAddressField.propertyName] + } + } } } } @@ -142,20 +169,36 @@ AbstractSettingsLayout { toValidate: true } DecoratedTextField { + id: conferenceFactoryUriField Layout.fillWidth: true //: "URI du serveur de conversations" title: qsTr("account_settings_conference_factory_uri_title") propertyName: "conferenceFactoryAddress" propertyOwnerGui: account + Connections { + target: account.core + function onConferenceFactoryAddressChanged() { + if (conferenceFactoryUriField.text != conferenceFactoryUriField.propertyOwnerGui.core[conferenceFactoryUriField.propertyName]) + conferenceFactoryUriField.text = conferenceFactoryUriField.propertyOwnerGui.core[conferenceFactoryUriField.propertyName] + } + } toValidate: true } DecoratedTextField { + id: audioVideoConfUriField Layout.fillWidth: true propertyName: "audioVideoConferenceFactoryAddress" //: "URI du serveur de réunions" title: qsTr("account_settings_audio_video_conference_factory_uri_title") propertyOwnerGui: account toValidate: true + Connections { + target: account.core + function onAudioVideoConferenceFactoryAddressChanged() { + if (audioVideoConfUriField.text != audioVideoConfUriField.propertyOwnerGui.core[audioVideoConfUriField.propertyName]) + audioVideoConfUriField.text = audioVideoConfUriField.propertyOwnerGui.core[audioVideoConfUriField.propertyName] + } + } } DecoratedTextField { Layout.fillWidth: true