Fix imdn crash + readme

This commit is contained in:
Julien Wadel 2021-08-02 18:47:23 +02:00
parent 9eac0c77b2
commit aca3b5038f
5 changed files with 23 additions and 15 deletions

View file

@ -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

View file

@ -40,9 +40,11 @@ ParticipantImdnStateListModel::ParticipantImdnStateListModel (std::shared_ptr<li
for(int i = 0 ; i < states.size() ; ++i){
std::list<std::shared_ptr<linphone::ParticipantImdnState>> imdns = message->getParticipantsByImdnState(states[i]);
for(auto imdn : imdns){
auto deviceModel = std::make_shared<ParticipantImdnStateModel>(imdn);
if(imdn->getParticipant()){
auto deviceModel = std::make_shared<ParticipantImdnStateModel>(imdn);
//connect(this, &ParticipantDeviceListModel::securityLevelChanged, deviceModel.get(), &ParticipantDeviceModel::onSecurityLevelChanged);
mList << deviceModel;
mList << deviceModel;
}
}
}
}
@ -118,7 +120,8 @@ std::shared_ptr<ParticipantImdnStateModel> ParticipantImdnStateListModel::getImd
//--------------------------------------------------------------------------------
void ParticipantImdnStateListModel::updateState(const std::shared_ptr<const linphone::ParticipantImdnState> & state){
getImdnState(state)->update(state);
if(state->getParticipant())
getImdnState(state)->update(state);
}
//--------------------------------------------------------------------------------

View file

@ -34,7 +34,9 @@ ParticipantImdnStateModel::ParticipantImdnStateModel (const std::shared_ptr<cons
App::getInstance()->getEngine()->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();
}
// -----------------------------------------------------------------------------

View file

@ -461,15 +461,17 @@ void Utils::copyDir(QString from, QString to) {
}
QString Utils::getDisplayName(const std::shared_ptr<const linphone::Address>& 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;
}

View file

@ -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 {