Fix : display name didn't support UTF8. Address created from Factory take a UTF8 string, aswell as setDisplayName

This commit is contained in:
Julien Wadel 2020-10-22 11:09:13 +02:00
parent 6ba9871c53
commit 60bf25163d
9 changed files with 35 additions and 52 deletions

View file

@ -226,19 +226,19 @@ bool AssistantModel::addOtherSipAccount (const QVariantMap &map) {
if (proxyConfig->setServerAddr(address->asString())) {
qWarning() << QStringLiteral("Unable to add server address: `%1`.")
.arg(Utils::coreStringToAppString(address->asString()));
.arg(QString::fromStdString(address->asString()));
return false;
}
}
// Sip Address.
shared_ptr<linphone::Address> address = factory->createAddress(Utils::appStringToCoreString(sipAddress));
shared_ptr<linphone::Address> address = factory->createAddress(sipAddress.toStdString());
if (!address) {
qWarning() << QStringLiteral("Unable to create sip address object from: `%1`.").arg(sipAddress);
return false;
}
address->setDisplayName(Utils::appStringToCoreString(map["displayName"].toString()));
address->setDisplayName(map["displayName"].toString().toStdString());
proxyConfig->setIdentityAddress(address);
// AuthInfo.
@ -380,14 +380,14 @@ void AssistantModel::setUsername (const QString &username) {
// -----------------------------------------------------------------------------
QString AssistantModel::getDisplayName () const {
return Utils::coreStringToAppString(mAccountCreator->getDisplayName());
return QString::fromStdString(mAccountCreator->getDisplayName());
}
void AssistantModel::setDisplayName (const QString &displayName) {
emit displayNameChanged(
displayName,
mapAccountCreatorUsernameStatusToString(
mAccountCreator->setDisplayName(Utils::appStringToCoreString(displayName))
mAccountCreator->setDisplayName(displayName.toStdString())
)
);
}

View file

@ -94,11 +94,11 @@ QString CallModel::getLocalAddress () const {
return Utils::coreStringToAppString(mCall->getCallLog()->getLocalAddress()->asStringUriOnly());
}
QString CallModel::getFullPeerAddress () const {
return Utils::coreStringToAppString(mCall->getRemoteAddress()->asString());
return QString::fromStdString(mCall->getRemoteAddress()->asString());
}
QString CallModel::getFullLocalAddress () const {
return Utils::coreStringToAppString(mCall->getCallLog()->getLocalAddress()->asString());
return QString::fromStdString(mCall->getCallLog()->getLocalAddress()->asString());
}
// -----------------------------------------------------------------------------

View file

@ -407,23 +407,19 @@ QString ChatModel::getLocalAddress () const {
);
}
QString ChatModel::getFullPeerAddress () const {
return Utils::coreStringToAppString(
mChatRoom->getPeerAddress()->asString()
);
return QString::fromStdString(mChatRoom->getPeerAddress()->asString());
}
QString ChatModel::getFullLocalAddress () const {
return Utils::coreStringToAppString(
mChatRoom->getLocalAddress()->asString()
);
return QString::fromStdString(mChatRoom->getLocalAddress()->asString());
}
void ChatModel::setSipAddresses (const QString &peerAddress, const QString &localAddress) {
shared_ptr<linphone::Core> core = CoreManager::getInstance()->getCore();
shared_ptr<linphone::Factory> factory(linphone::Factory::get());
mChatRoom = core->getChatRoom(
factory->createAddress(Utils::appStringToCoreString(peerAddress)),
factory->createAddress(Utils::appStringToCoreString(localAddress))
factory->createAddress(peerAddress.toStdString()),
factory->createAddress(localAddress.toStdString())
);
Q_ASSERT(mChatRoom);

View file

@ -116,8 +116,8 @@ shared_ptr<ChatModel> CoreManager::getChatModel (const QString &peerAddress, con
QPair<QString, QString> chatModelId{ peerAddress, localAddress };
if (!mChatModels.contains(chatModelId)) {
if (
!mCore->createAddress(Utils::appStringToCoreString(peerAddress)) ||
!mCore->createAddress(Utils::appStringToCoreString(localAddress))
!mCore->createAddress(peerAddress.toStdString()) ||
!mCore->createAddress(localAddress.toStdString())
) {
qWarning() << QStringLiteral("Unable to get chat model from invalid chat model id: (%1, %2).")
.arg(peerAddress).arg(localAddress);

View file

@ -53,7 +53,7 @@ static inline void fillCallStartEntry (QVariantMap &dest, const shared_ptr<linph
dest["isOutgoing"] = callLog->getDir() == linphone::Call::Dir::Outgoing;
dest["status"] = static_cast<HistoryModel::CallStatus>(callLog->getStatus());
dest["isStart"] = true;
dest["sipAddress"] = Utils::coreStringToAppString(callLog->getRemoteAddress()->asString());
dest["sipAddress"] = QString::fromStdString(callLog->getRemoteAddress()->asString());
}
static inline void fillCallEndEntry (QVariantMap &dest, const shared_ptr<linphone::CallLog> &callLog) {
@ -62,7 +62,7 @@ static inline void fillCallEndEntry (QVariantMap &dest, const shared_ptr<linphon
dest["isOutgoing"] = callLog->getDir() == linphone::Call::Dir::Outgoing;
dest["status"] = static_cast<HistoryModel::CallStatus>(callLog->getStatus());
dest["isStart"] = false;
dest["sipAddress"] = Utils::coreStringToAppString(callLog->getRemoteAddress()->asString());
dest["sipAddress"] = QString::fromStdString(callLog->getRemoteAddress()->asString());
}
// -----------------------------------------------------------------------------

View file

@ -275,8 +275,8 @@ void Notifier::notifyReceivedMessage (const shared_ptr<linphone::ChatMessage> &m
shared_ptr<linphone::ChatRoom> chatRoom(message->getChatRoom());
map["peerAddress"] = Utils::coreStringToAppString(chatRoom->getPeerAddress()->asStringUriOnly());
map["localAddress"] = Utils::coreStringToAppString(chatRoom->getLocalAddress()->asStringUriOnly());
map["fullPeerAddress"] = Utils::coreStringToAppString(chatRoom->getPeerAddress()->asString());
map["fullLocalAddress"] = Utils::coreStringToAppString(chatRoom->getLocalAddress()->asString());
map["fullPeerAddress"] = QString::fromStdString(chatRoom->getPeerAddress()->asString());
map["fullLocalAddress"] = QString::fromStdString(chatRoom->getLocalAddress()->asString());
map["window"].setValue(App::getInstance()->getMainWindow());
CREATE_NOTIFICATION(Notifier::ReceivedMessage, map)
}

View file

@ -84,7 +84,7 @@ QString AccountSettingsModel::getUsedSipAddressAsStringUriOnly () const {
}
QString AccountSettingsModel::getUsedSipAddressAsString () const {
return Utils::coreStringToAppString(getUsedSipAddress()->asString());
return QString::fromStdString(getUsedSipAddress()->asString());
}
// -----------------------------------------------------------------------------
@ -98,14 +98,14 @@ bool AccountSettingsModel::addOrUpdateProxyConfig (const shared_ptr<linphone::Pr
if (find(proxyConfigs.cbegin(), proxyConfigs.cend(), proxyConfig) != proxyConfigs.cend()) {
if (proxyConfig->done() == -1) {
qWarning() << QStringLiteral("Unable to update proxy config: `%1`.")
.arg(Utils::coreStringToAppString(proxyConfig->getIdentityAddress()->asString()));
.arg(QString::fromStdString(proxyConfig->getIdentityAddress()->asString()));
return false;
}
coreManager->getSettingsModel()->configureRlsUri();
} else {
if (core->addProxyConfig(proxyConfig) == -1) {
qWarning() << QStringLiteral("Unable to add proxy config: `%1`.")
.arg(Utils::coreStringToAppString(proxyConfig->getIdentityAddress()->asString()));
.arg(QString::fromStdString(proxyConfig->getIdentityAddress()->asString()));
return false;
}
coreManager->getSettingsModel()->configureRlsUri(proxyConfig);
@ -123,7 +123,7 @@ QVariantMap AccountSettingsModel::getProxyConfigDescription (const shared_ptr<li
{
const shared_ptr<const linphone::Address> address = proxyConfig->getIdentityAddress();
map["sipAddress"] = address
? Utils::coreStringToAppString(proxyConfig->getIdentityAddress()->asString())
? QString::fromStdString(proxyConfig->getIdentityAddress()->asString())
: QString("");
}
map["serverAddress"] = Utils::coreStringToAppString(proxyConfig->getServerAddr());
@ -220,9 +220,7 @@ bool AccountSettingsModel::addOrUpdateProxyConfig (
// Sip address.
{
shared_ptr<linphone::Address> address = linphone::Factory::get()->createAddress(
Utils::appStringToCoreString(literal)
);
shared_ptr<linphone::Address> address = linphone::Factory::get()->createAddress(literal.toStdString());
if (!address) {
qWarning() << QStringLiteral("Unable to create sip address object from: `%1`.").arg(literal);
return false;
@ -329,7 +327,7 @@ QString AccountSettingsModel::getUsername () const {
shared_ptr<const linphone::Address> address = getUsedSipAddress();
const string displayName = address->getDisplayName();
return Utils::coreStringToAppString(
return QString::fromStdString(
displayName.empty() ? address->getUsername() : displayName
);
}
@ -338,7 +336,7 @@ void AccountSettingsModel::setUsername (const QString &username) {
shared_ptr<const linphone::Address> address = getUsedSipAddress();
shared_ptr<linphone::Address> newAddress = address->clone();
if (newAddress->setDisplayName(Utils::appStringToCoreString(username))) {
if (newAddress->setDisplayName(username.toStdString())) {
qWarning() << QStringLiteral("Unable to set displayName on sip address: `%1`.")
.arg(Utils::coreStringToAppString(newAddress->asStringUriOnly()));
} else {
@ -374,23 +372,21 @@ void AccountSettingsModel::setPrimaryUsername (const QString &username) {
}
QString AccountSettingsModel::getPrimaryDisplayName () const {
return Utils::coreStringToAppString(
CoreManager::getInstance()->getCore()->createPrimaryContactParsed()->getDisplayName()
);
return QString::fromStdString(CoreManager::getInstance()->getCore()->createPrimaryContactParsed()->getDisplayName());
}
void AccountSettingsModel::setPrimaryDisplayName (const QString &displayName) {
shared_ptr<linphone::Core> core = CoreManager::getInstance()->getCore();
shared_ptr<linphone::Address> primary = core->createPrimaryContactParsed();
primary->setDisplayName(Utils::appStringToCoreString(displayName));
primary->setDisplayName(displayName.toStdString());
core->setPrimaryContact(primary->asString());
emit accountSettingsUpdated();
}
QString AccountSettingsModel::getPrimarySipAddress () const {
return Utils::coreStringToAppString(
return QString::fromStdString(
CoreManager::getInstance()->getCore()->createPrimaryContactParsed()->asString()
);
}
@ -404,7 +400,7 @@ QVariantList AccountSettingsModel::getAccounts () const {
{
QVariantMap account;
account["sipAddress"] = Utils::coreStringToAppString(core->createPrimaryContactParsed()->asStringUriOnly());
account["fullSipAddress"] = Utils::coreStringToAppString(core->createPrimaryContactParsed()->asString());
account["fullSipAddress"] = QString::fromStdString(core->createPrimaryContactParsed()->asString());
account["unreadMessageCount"] = core->getUnreadChatMessageCountFromLocal(core->createPrimaryContactParsed());
account["missedCallCount"] = CoreManager::getInstance()->getMissedCallCountFromLocal(account["sipAddress"].toString());
account["proxyConfig"].setValue(nullptr);
@ -414,7 +410,7 @@ QVariantList AccountSettingsModel::getAccounts () const {
for (const auto &proxyConfig : core->getProxyConfigList()) {
QVariantMap account;
account["sipAddress"] = Utils::coreStringToAppString(proxyConfig->getIdentityAddress()->asStringUriOnly());
account["fullSipAddress"] = Utils::coreStringToAppString(proxyConfig->getIdentityAddress()->asString());
account["fullSipAddress"] = QString::fromStdString(proxyConfig->getIdentityAddress()->asString());
account["proxyConfig"].setValue(proxyConfig);
account["unreadMessageCount"] = proxyConfig->getUnreadChatMessageCount();
account["missedCallCount"] = CoreManager::getInstance()->getMissedCallCountFromLocal(account["sipAddress"].toString());

View file

@ -155,10 +155,7 @@ SipAddressObserver *SipAddressesModel::getSipAddressObserver (const QString &pee
QString SipAddressesModel::getTransportFromSipAddress (const QString &sipAddress) {
if( sipAddress.toUpper().contains("TRANSPORT="))
{// Transport has been specified : check for it
const shared_ptr<const linphone::Address> address = linphone::Factory::get()->createAddress(
Utils::appStringToCoreString(sipAddress)
);
const shared_ptr<const linphone::Address> address = linphone::Factory::get()->createAddress(sipAddress.toStdString());
if (!address)
return QString("TLS"); // Return TLS by default
@ -178,16 +175,14 @@ QString SipAddressesModel::getTransportFromSipAddress (const QString &sipAddress
}
QString SipAddressesModel::addTransportToSipAddress (const QString &sipAddress, const QString &transport) {
shared_ptr<linphone::Address> address = linphone::Factory::get()->createAddress(
Utils::appStringToCoreString(sipAddress)
);
shared_ptr<linphone::Address> address = linphone::Factory::get()->createAddress(sipAddress.toStdString());
if (!address)
return QString("");
address->setTransport(LinphoneUtils::stringToTransportType(transport.toUpper()));
return Utils::coreStringToAppString(address->asString());
return QString::fromStdString(address->asString());
}
// -----------------------------------------------------------------------------
@ -207,15 +202,11 @@ QString SipAddressesModel::interpretSipAddress (const QUrl &sipAddress) {
}
bool SipAddressesModel::addressIsValid (const QString &address) {
return !!linphone::Factory::get()->createAddress(
Utils::appStringToCoreString(address)
);
return !!linphone::Factory::get()->createAddress(address.toStdString());
}
bool SipAddressesModel::sipAddressIsValid (const QString &sipAddress) {
shared_ptr<linphone::Address> address = linphone::Factory::get()->createAddress(
Utils::appStringToCoreString(sipAddress)
);
shared_ptr<linphone::Address> address = linphone::Factory::get()->createAddress(sipAddress.toStdString());
return address && !address->getUsername().empty();
}
// Return at most : sip:username@domain

View file

@ -97,7 +97,7 @@ std::shared_ptr<linphone::Address> Utils::getMatchingLocalAddress(std::shared_pt
}
// Return at most : sip:username@domain
QString Utils::cleanSipAddress (const QString &sipAddress) {
std::shared_ptr<linphone::Address> addr = linphone::Factory::get()->createAddress(Utils::appStringToCoreString(sipAddress));
std::shared_ptr<linphone::Address> addr = linphone::Factory::get()->createAddress(sipAddress.toStdString());
if( addr) {
QStringList fields = Utils::coreStringToAppString(addr->asStringUriOnly()).split('@');
if(fields.size() > 0){// maybe useless but it's just to be sure to have a domain