Synchronize contact list names with contact edition on save.

This commit is contained in:
Julien Wadel 2025-01-15 18:39:41 +01:00
parent c5c6a328b1
commit 4181d19631
3 changed files with 9 additions and 7 deletions

View file

@ -128,10 +128,8 @@ void CallHistoryCore::setSelf(QSharedPointer<CallHistoryCore> me) {
};
if (!ToolModel::findFriendByAddress(mRemoteAddress))
mCoreModelConnection->makeConnectToModel(&CoreModel::friendCreated, update);
else {
mCoreModelConnection->makeConnectToModel(&CoreModel::friendUpdated, update);
mCoreModelConnection->makeConnectToModel(&CoreModel::friendRemoved, &CallHistoryCore::onRemoved);
}
mCoreModelConnection->makeConnectToModel(&CoreModel::friendUpdated, update);
mCoreModelConnection->makeConnectToModel(&CoreModel::friendRemoved, &CallHistoryCore::onRemoved);
}
ConferenceInfoGui *CallHistoryCore::getConferenceInfoGui() const {

View file

@ -221,6 +221,10 @@ void FriendCore::setSelf(QSharedPointer<FriendCore> me) {
updateVerifiedDevicesCount();
});
});
mCoreModelConnection->makeConnectToCore(&FriendCore::saved, [this]() {
mCoreModelConnection->invokeToModel(
[this, f = mFriendModel->getFriend()]() { emit CoreModel::getInstance()->friendUpdated(f); });
});
} else { // Create
mCoreModelConnection = QSharedPointer<SafeConnection<FriendCore, CoreModel>>(
@ -624,7 +628,7 @@ void FriendCore::save() { // Save Values to model
thisCopy->writeIntoModel(mFriendModel);
thisCopy->deleteLater();
mVCardString = mFriendModel->getVCardAsString();
mFriendModelConnection->invokeToCore([this]() { saved(); });
mFriendModelConnection->invokeToCore([this]() { emit saved(); });
setIsSaved(true);
});
} else {
@ -648,7 +652,7 @@ void FriendCore::save() { // Save Values to model
thisCopy->deleteLater();
mVCardString = mFriendModel->getVCardAsString();
});
saved();
emit saved();
});
} else {
auto contact = core->createFriend();

View file

@ -58,7 +58,7 @@ FriendModel::FriendModel(const std::shared_ptr<linphone::Friend> &contact, const
connect(this, &FriendModel::givenNameChanged, updateFullName);
connect(this, &FriendModel::familyNameChanged, updateFullName);
connect(this, &FriendModel::updated, [this]() { emit CoreModel::getInstance()->friendUpdated(mMonitor); });
connect(CoreModel::getInstance().get(), &CoreModel::friendUpdated, this, &FriendModel::onUpdated);
connect(CoreModel::getInstance().get(), &CoreModel::friendRemoved, this, &FriendModel::onRemoved);
};