diff options
| author | Richard Maudsley <richard.maudsley@isode.com> | 2014-06-23 10:52:31 (GMT) | 
|---|---|---|
| committer | Richard Maudsley <richard.maudsley@isode.com> | 2014-06-24 14:32:55 (GMT) | 
| commit | c779e07f6d1d23cc157ab3823a00edd95f70ab3b (patch) | |
| tree | 5de546a38677ce19be1b34932144460f11197f96 /Swiften/Avatars/AvatarManagerImpl.cpp | |
| parent | bd7f30aec53fc776be678577dbe4f9afec5898a6 (diff) | |
| download | swift-contrib-c779e07f6d1d23cc157ab3823a00edd95f70ab3b.zip swift-contrib-c779e07f6d1d23cc157ab3823a00edd95f70ab3b.tar.bz2 | |
Fix old avatar being displayed in QtRosterHeader when cleared.
Test-Information:
Added unit tests for AvatarManagerImpl and CombinedAvatarProvider. Updated test cases to distinguish between error case and empty avatar. Tested changing between blank and non-blank avatars while watching MUC and 1-to-1 chats.
Change-Id: I0bea89c7a22ae9c44a0b126e672a7af94b6f5049
Diffstat (limited to 'Swiften/Avatars/AvatarManagerImpl.cpp')
| -rw-r--r-- | Swiften/Avatars/AvatarManagerImpl.cpp | 16 | 
1 files changed, 9 insertions, 7 deletions
| diff --git a/Swiften/Avatars/AvatarManagerImpl.cpp b/Swiften/Avatars/AvatarManagerImpl.cpp index 7c3baa7..3aaae33 100644 --- a/Swiften/Avatars/AvatarManagerImpl.cpp +++ b/Swiften/Avatars/AvatarManagerImpl.cpp @@ -35,30 +35,32 @@ AvatarManagerImpl::~AvatarManagerImpl() {  	combinedAvatarProvider.removeProvider(offlineAvatarManager);  	delete offlineAvatarManager;  	combinedAvatarProvider.removeProvider(vcardAvatarManager);  	delete vcardAvatarManager;  	combinedAvatarProvider.removeProvider(vcardUpdateAvatarManager);  	delete vcardUpdateAvatarManager;  }  boost::filesystem::path AvatarManagerImpl::getAvatarPath(const JID& jid) const { -	std::string hash = combinedAvatarProvider.getAvatarHash(jid); -	if (!hash.empty()) { -		return avatarStorage->getAvatarPath(hash); +	boost::optional<std::string> hash = combinedAvatarProvider.getAvatarHash(jid); +	if (hash && !hash->empty()) { +		return avatarStorage->getAvatarPath(*hash);  	}  	return boost::filesystem::path();  }  ByteArray AvatarManagerImpl::getAvatar(const JID& jid) const { -	std::string hash = combinedAvatarProvider.getAvatarHash(jid); -	if (!hash.empty()) { -		return avatarStorage->getAvatar(hash); +	boost::optional<std::string> hash = combinedAvatarProvider.getAvatarHash(jid); +	if (hash && !hash->empty()) { +		return avatarStorage->getAvatar(*hash);  	}  	return ByteArray();  }  void AvatarManagerImpl::handleCombinedAvatarChanged(const JID& jid) { -	offlineAvatarManager->setAvatar(jid, combinedAvatarProvider.getAvatarHash(jid)); +	boost::optional<std::string> hash = combinedAvatarProvider.getAvatarHash(jid); +	assert(hash); +	offlineAvatarManager->setAvatar(jid, *hash);  	onAvatarChanged(jid);  }  } | 
 Swift
 Swift