feat(ui/views/App/MainWindow/ContactEdit): name must be given & interpretUrl is used

This commit is contained in:
Ronan Abhamon 2016-12-15 17:12:39 +01:00
parent b13763e25d
commit 53a8b2f472
3 changed files with 22 additions and 5 deletions

@ -1 +1 @@
Subproject commit e816a335cd1693cdbbde27a69143e1570058ed5f
Subproject commit 7650064a1cb5b914b157c788e4ff8fa22d971f78

View file

@ -159,18 +159,35 @@ bool VcardModel::setAddress (const QVariantMap &address) {
}
QVariantList VcardModel::getSipAddresses () const {
shared_ptr<linphone::Core> core = CoreManager::getInstance()->getCore();
QVariantList list;
for (const auto &address : m_vcard->getBelcard()->getImpp())
list.append(::Utils::linphoneStringToQString(address->getValue()));
for (const auto &address : m_vcard->getBelcard()->getImpp()) {
string value = address->getValue();
shared_ptr<linphone::Address> l_address = core->createAddress(value);
if (l_address)
list.append(::Utils::linphoneStringToQString(l_address->asStringUriOnly()));
}
return list;
}
bool VcardModel::addSipAddress (const QString &sip_address) {
// Check sip address format.
shared_ptr<linphone::Address> l_address = CoreManager::getInstance()->getCore()->interpretUrl(
::Utils::qStringToLinphoneString(sip_address)
);
if (!l_address) {
qWarning() << QStringLiteral("Unable to add invalid sip address: `%1`.").arg(sip_address);
return false;
}
// Add sip address in belcard.
shared_ptr<belcard::BelCard> belcard = m_vcard->getBelcard();
shared_ptr<belcard::BelCardImpp> value = belcard::BelCardGeneric::create<belcard::BelCardImpp>();
value->setValue(::Utils::qStringToLinphoneString(sip_address));
value->setValue(l_address->asStringUriOnly());
qInfo() << QStringLiteral("Add new sip address: `%1`.").arg(sip_address);

View file

@ -340,7 +340,7 @@ ColumnLayout {
visible: _edition
TextButtonB {
enabled: _vcard.sipAddresses.length > 0
enabled: usernameInput.text.length > 0 && _vcard.sipAddresses.length > 0
text: qsTr('save')
onClicked: _save()
}