diff --git a/README.md b/README.md index 85993ece7..c275a14de 100644 --- a/README.md +++ b/README.md @@ -244,8 +244,9 @@ Please note that we don't offer free support and these contributions will be add ### Languages -Linphone is getting a full internationalization support, using Transifex platform. -If you want you can contribute at: https://www.transifex.com/belledonne-communications/linphone-desktop/languages/ +Linphone is getting a full internationalization support. +We no longer use transifex for the translation process, instead we have deployed our own instance of [Weblate](https://weblate.linphone.org). +If you want you can contribute at: https://weblate.linphone.org/projects/linphone-desktop/ ### Feedback or bug reporting diff --git a/linphone-app/src/components/participant-imdn/ParticipantImdnStateListModel.cpp b/linphone-app/src/components/participant-imdn/ParticipantImdnStateListModel.cpp index a3cf37578..4b18ae634 100644 --- a/linphone-app/src/components/participant-imdn/ParticipantImdnStateListModel.cpp +++ b/linphone-app/src/components/participant-imdn/ParticipantImdnStateListModel.cpp @@ -40,9 +40,11 @@ ParticipantImdnStateListModel::ParticipantImdnStateListModel (std::shared_ptr
  • > imdns = message->getParticipantsByImdnState(states[i]); for(auto imdn : imdns){ - auto deviceModel = std::make_shared(imdn); + if(imdn->getParticipant()){ + auto deviceModel = std::make_shared(imdn); //connect(this, &ParticipantDeviceListModel::securityLevelChanged, deviceModel.get(), &ParticipantDeviceModel::onSecurityLevelChanged); - mList << deviceModel; + mList << deviceModel; + } } } } @@ -118,7 +120,8 @@ std::shared_ptr ParticipantImdnStateListModel::getImd //-------------------------------------------------------------------------------- void ParticipantImdnStateListModel::updateState(const std::shared_ptr & state){ - getImdnState(state)->update(state); + if(state->getParticipant()) + getImdnState(state)->update(state); } //-------------------------------------------------------------------------------- diff --git a/linphone-app/src/components/participant-imdn/ParticipantImdnStateModel.cpp b/linphone-app/src/components/participant-imdn/ParticipantImdnStateModel.cpp index 3f5b41bc8..41ff8fa88 100644 --- a/linphone-app/src/components/participant-imdn/ParticipantImdnStateModel.cpp +++ b/linphone-app/src/components/participant-imdn/ParticipantImdnStateModel.cpp @@ -34,7 +34,9 @@ ParticipantImdnStateModel::ParticipantImdnStateModel (const std::shared_ptrgetEngine()->setObjectOwnership(this, QQmlEngine::CppOwnership);// Avoid QML to destroy it when passing by Q_INVOKABLE setState(LinphoneEnums::fromLinphone(imdn->getState())); setStateChangeTime(QDateTime::fromSecsSinceEpoch(imdn->getStateChangeTime())) ; - mAddress = imdn->getParticipant()->getAddress()->clone(); + auto participant = imdn->getParticipant(); + if(participant) + mAddress = imdn->getParticipant()->getAddress()->clone(); } // ----------------------------------------------------------------------------- diff --git a/linphone-app/src/utils/Utils.cpp b/linphone-app/src/utils/Utils.cpp index c91345bc8..a03e4ddee 100644 --- a/linphone-app/src/utils/Utils.cpp +++ b/linphone-app/src/utils/Utils.cpp @@ -461,15 +461,17 @@ void Utils::copyDir(QString from, QString to) { } QString Utils::getDisplayName(const std::shared_ptr& address){ - QString qtAddress = Utils::coreStringToAppString(address->asString()); QString displayName; - ContactModel * model = CoreManager::getInstance()->getContactsListModel()->findContactModelFromSipAddress(qtAddress); - if(model && model->getVcardModel()) - displayName = model->getVcardModel()->getUsername(); - else{ - displayName = Utils::coreStringToAppString(address->getDisplayName()); - if(displayName == "") - displayName = Utils::coreStringToAppString(address->getUsername()); + if(address){ + QString qtAddress = Utils::coreStringToAppString(address->asString()); + ContactModel * model = CoreManager::getInstance()->getContactsListModel()->findContactModelFromSipAddress(qtAddress); + if(model && model->getVcardModel()) + displayName = model->getVcardModel()->getUsername(); + else{ + displayName = Utils::coreStringToAppString(address->getDisplayName()); + if(displayName == "") + displayName = Utils::coreStringToAppString(address->getUsername()); + } } return displayName; } diff --git a/linphone-app/ui/modules/Linphone/Chat/OutgoingMessage.qml b/linphone-app/ui/modules/Linphone/Chat/OutgoingMessage.qml index 134ba09ed..b806a7875 100644 --- a/linphone-app/ui/modules/Linphone/Chat/OutgoingMessage.qml +++ b/linphone-app/ui/modules/Linphone/Chat/OutgoingMessage.qml @@ -45,7 +45,7 @@ Item { icon: isError ? 'chat_error' - : (isRead ? 'chat_read' : (isDelivered ? 'chat_delivered' : '')) + : (isRead ? 'chat_read' : isDelivered ? 'chat_delivered' : '') iconSize: ChatStyle.entry.message.outgoing.sendIconSize MouseArea {