From 1a31ab06d719a68d7f91313d0c937fc11857b4be Mon Sep 17 00:00:00 2001 From: Ronan Abhamon Date: Wed, 19 Jul 2017 16:00:55 +0200 Subject: [PATCH] fix(SettingsSipAccountsEdit): detect correctly sip addresses --- src/components/sip-addresses/SipAddressesModel.cpp | 11 +++++++++-- src/components/sip-addresses/SipAddressesModel.hpp | 1 + .../App/Settings/Dialogs/SettingsSipAccountsEdit.js | 2 +- 3 files changed, 11 insertions(+), 3 deletions(-) diff --git a/src/components/sip-addresses/SipAddressesModel.cpp b/src/components/sip-addresses/SipAddressesModel.cpp index c2fcaf0d8..091afbd28 100644 --- a/src/components/sip-addresses/SipAddressesModel.cpp +++ b/src/components/sip-addresses/SipAddressesModel.cpp @@ -175,12 +175,19 @@ QString SipAddressesModel::interpretUrl (const QUrl &sipAddress) { return sipAddress.toString(); } -bool SipAddressesModel::sipAddressIsValid (const QString &sipAddress) { +bool SipAddressesModel::addressIsValid (const QString &address) { return !!linphone::Factory::get()->createAddress( - ::Utils::appStringToCoreString(sipAddress) + ::Utils::appStringToCoreString(address) ); } +bool SipAddressesModel::sipAddressIsValid (const QString &sipAddress) { + shared_ptr address = linphone::Factory::get()->createAddress( + ::Utils::appStringToCoreString(sipAddress) + ); + return address && !address->getUsername().empty(); +} + // ----------------------------------------------------------------------------- bool SipAddressesModel::removeRow (int row, const QModelIndex &parent) { diff --git a/src/components/sip-addresses/SipAddressesModel.hpp b/src/components/sip-addresses/SipAddressesModel.hpp index dacee0566..90111865e 100644 --- a/src/components/sip-addresses/SipAddressesModel.hpp +++ b/src/components/sip-addresses/SipAddressesModel.hpp @@ -59,6 +59,7 @@ public: Q_INVOKABLE static QString interpretUrl (const QString &sipAddress); Q_INVOKABLE static QString interpretUrl (const QUrl &sipAddress); + Q_INVOKABLE static bool addressIsValid (const QString &address); Q_INVOKABLE static bool sipAddressIsValid (const QString &sipAddress); // --------------------------------------------------------------------------- diff --git a/ui/views/App/Settings/Dialogs/SettingsSipAccountsEdit.js b/ui/views/App/Settings/Dialogs/SettingsSipAccountsEdit.js index 46aab78c4..15461fa6c 100644 --- a/ui/views/App/Settings/Dialogs/SettingsSipAccountsEdit.js +++ b/ui/views/App/Settings/Dialogs/SettingsSipAccountsEdit.js @@ -73,7 +73,7 @@ function validProxyConfig () { // ----------------------------------------------------------------------------- function handleRouteChanged (route) { - dialog._routeOk = route.length === 0 || Linphone.SipAddressesModel.sipAddressIsValid(route) + dialog._routeOk = route.length === 0 || Linphone.SipAddressesModel.addressIsValid(route) } function handleServerAddressChanged (address) {