mirror of
https://github.com/tomahawk-player/tomahawk.git
synced 2025-08-04 13:17:34 +02:00
* Style cleanup for AvatarManager.
This commit is contained in:
@@ -33,11 +33,10 @@
|
|||||||
#include "utils/Logger.h"
|
#include "utils/Logger.h"
|
||||||
|
|
||||||
|
|
||||||
AvatarManager::AvatarManager(Jreen::Client *client) :
|
AvatarManager::AvatarManager( Jreen::Client* client )
|
||||||
m_cacheDir(TomahawkUtils::appDataDir().absolutePath().append("/jreen/"))
|
: m_cacheDir( TomahawkUtils::appDataDir().absolutePath().append( "/jreen/" ) )
|
||||||
{
|
{
|
||||||
m_client = client;
|
m_client = client;
|
||||||
|
|
||||||
m_cachedAvatars = m_cacheDir.entryList();
|
m_cachedAvatars = m_cacheDir.entryList();
|
||||||
|
|
||||||
connect( m_client, SIGNAL( serverFeaturesReceived( QSet<QString> ) ), SLOT( onNewConnection() ) );
|
connect( m_client, SIGNAL( serverFeaturesReceived( QSet<QString> ) ), SLOT( onNewConnection() ) );
|
||||||
@@ -47,27 +46,32 @@ AvatarManager::AvatarManager(Jreen::Client *client) :
|
|||||||
connect( this, SIGNAL( newAvatar( QString ) ), SLOT( onNewAvatar( QString ) ) );
|
connect( this, SIGNAL( newAvatar( QString ) ), SLOT( onNewAvatar( QString ) ) );
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
AvatarManager::~AvatarManager()
|
AvatarManager::~AvatarManager()
|
||||||
{
|
{
|
||||||
}
|
}
|
||||||
|
|
||||||
void AvatarManager::onNewConnection()
|
|
||||||
|
void
|
||||||
|
AvatarManager::onNewConnection()
|
||||||
{
|
{
|
||||||
fetchVCard( m_client->jid().bare() );
|
fetchVCard( m_client->jid().bare() );
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
void AvatarManager::fetchVCard(const QString &jid)
|
void
|
||||||
|
AvatarManager::fetchVCard( const QString& jid )
|
||||||
{
|
{
|
||||||
// qDebug() << Q_FUNC_INFO;
|
|
||||||
|
|
||||||
Jreen::IQ iq( Jreen::IQ::Get, jid );
|
Jreen::IQ iq( Jreen::IQ::Get, jid );
|
||||||
iq.addExtension( new Jreen::VCard() );
|
iq.addExtension( new Jreen::VCard() );
|
||||||
Jreen::IQReply *reply = m_client->send( iq );
|
Jreen::IQReply *reply = m_client->send( iq );
|
||||||
|
|
||||||
connect( reply, SIGNAL( received( Jreen::IQ ) ), SLOT( onNewIq( Jreen::IQ ) ) );
|
connect( reply, SIGNAL( received( Jreen::IQ ) ), SLOT( onNewIq( Jreen::IQ ) ) );
|
||||||
}
|
}
|
||||||
|
|
||||||
void AvatarManager::onNewPresence(const Jreen::Presence& presence)
|
|
||||||
|
void
|
||||||
|
AvatarManager::onNewPresence( const Jreen::Presence& presence )
|
||||||
{
|
{
|
||||||
Jreen::VCardUpdate::Ptr update = presence.payload<Jreen::VCardUpdate>();
|
Jreen::VCardUpdate::Ptr update = presence.payload<Jreen::VCardUpdate>();
|
||||||
if ( update )
|
if ( update )
|
||||||
@@ -89,27 +93,27 @@ void AvatarManager::onNewPresence(const Jreen::Presence& presence)
|
|||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
// qDebug() << Q_FUNC_INFO << presence.from().full() << "got no statusupdateextension";
|
|
||||||
|
|
||||||
//TODO: do we want this? might fetch avatars for broken clients
|
//TODO: do we want this? might fetch avatars for broken clients
|
||||||
fetchVCard( presence.from().bare() );
|
fetchVCard( presence.from().bare() );
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
void AvatarManager::onNewIq(const Jreen::IQ& iq)
|
|
||||||
|
void
|
||||||
|
AvatarManager::onNewIq( const Jreen::IQ& iq )
|
||||||
{
|
{
|
||||||
Jreen::VCard::Ptr vcard = iq.payload<Jreen::VCard>();
|
Jreen::VCard::Ptr vcard = iq.payload<Jreen::VCard>();
|
||||||
if ( vcard )
|
if ( vcard )
|
||||||
{
|
{
|
||||||
iq.accept();
|
iq.accept();
|
||||||
|
|
||||||
// qDebug() << Q_FUNC_INFO << "Got vcard from " << iq.from().full();
|
// qDebug() << Q_FUNC_INFO << "Got vcard from " << iq.from().full();
|
||||||
|
|
||||||
QString id = iq.from().full();
|
QString id = iq.from().full();
|
||||||
QString avatarHash;
|
QString avatarHash;
|
||||||
|
|
||||||
const Jreen::VCard::Photo &photo = vcard->photo();
|
const Jreen::VCard::Photo &photo = vcard->photo();
|
||||||
if (!photo.data().isEmpty()) {
|
if ( !photo.data().isEmpty() )
|
||||||
|
{
|
||||||
// qDebug() << "vcard: got photo data" << id;
|
// qDebug() << "vcard: got photo data" << id;
|
||||||
|
|
||||||
avatarHash = QCryptographicHash::hash( photo.data(), QCryptographicHash::Sha1 ).toHex();
|
avatarHash = QCryptographicHash::hash( photo.data(), QCryptographicHash::Sha1 ).toHex();
|
||||||
@@ -117,9 +121,9 @@ void AvatarManager::onNewIq(const Jreen::IQ& iq)
|
|||||||
if ( !m_cacheDir.exists() )
|
if ( !m_cacheDir.exists() )
|
||||||
m_cacheDir.mkpath( avatarDir( avatarHash ).absolutePath() );
|
m_cacheDir.mkpath( avatarDir( avatarHash ).absolutePath() );
|
||||||
|
|
||||||
|
|
||||||
QFile file( avatarPath( avatarHash ) );
|
QFile file( avatarPath( avatarHash ) );
|
||||||
if (file.open(QIODevice::WriteOnly)) {
|
if ( file.open( QIODevice::WriteOnly ) )
|
||||||
|
{
|
||||||
file.write( photo.data() );
|
file.write( photo.data() );
|
||||||
file.close();
|
file.close();
|
||||||
}
|
}
|
||||||
@@ -130,22 +134,14 @@ void AvatarManager::onNewIq(const Jreen::IQ& iq)
|
|||||||
Q_ASSERT( !this->avatar( iq.from().bare() ).isNull() );
|
Q_ASSERT( !this->avatar( iq.from().bare() ).isNull() );
|
||||||
emit newAvatar( iq.from().bare() );
|
emit newAvatar( iq.from().bare() );
|
||||||
}
|
}
|
||||||
else
|
|
||||||
{
|
|
||||||
// qDebug() << "vcard: got no photo data" << id;
|
|
||||||
}
|
|
||||||
|
|
||||||
// got own presence
|
// got own presence
|
||||||
if ( m_client->jid().bare() == id )
|
if ( m_client->jid().bare() == id )
|
||||||
{
|
{
|
||||||
// qDebug() << Q_FUNC_INFO << "got own vcard";
|
|
||||||
|
|
||||||
Jreen::Presence presence = m_client->presence();
|
Jreen::Presence presence = m_client->presence();
|
||||||
Jreen::VCardUpdate::Ptr update = presence.payload<Jreen::VCardUpdate>();
|
Jreen::VCardUpdate::Ptr update = presence.payload<Jreen::VCardUpdate>();
|
||||||
if ( update->photoHash() != avatarHash )
|
if ( update->photoHash() != avatarHash )
|
||||||
{
|
{
|
||||||
qDebug() << Q_FUNC_INFO << "Updating own presence...";
|
|
||||||
|
|
||||||
update->setPhotoHash( avatarHash );
|
update->setPhotoHash( avatarHash );
|
||||||
m_client->send( presence );
|
m_client->send( presence );
|
||||||
}
|
}
|
||||||
@@ -153,7 +149,9 @@ void AvatarManager::onNewIq(const Jreen::IQ& iq)
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
QPixmap AvatarManager::avatar(const QString &jid) const
|
|
||||||
|
QPixmap
|
||||||
|
AvatarManager::avatar( const QString& jid ) const
|
||||||
{
|
{
|
||||||
if ( isCached( avatarHash( jid ) ) )
|
if ( isCached( avatarHash( jid ) ) )
|
||||||
{
|
{
|
||||||
@@ -165,29 +163,39 @@ QPixmap AvatarManager::avatar(const QString &jid) const
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
QString AvatarManager::avatarHash(const QString &jid) const
|
|
||||||
|
QString
|
||||||
|
AvatarManager::avatarHash( const QString& jid ) const
|
||||||
{
|
{
|
||||||
//qDebug() << Q_FUNC_INFO << jid << m_JidsAvatarHashes.key( jid );
|
//qDebug() << Q_FUNC_INFO << jid << m_JidsAvatarHashes.key( jid );
|
||||||
return m_JidsAvatarHashes.key( jid );
|
return m_JidsAvatarHashes.key( jid );
|
||||||
}
|
}
|
||||||
|
|
||||||
QDir AvatarManager::avatarDir(const QString&) const
|
|
||||||
|
QDir
|
||||||
|
AvatarManager::avatarDir( const QString& /* avatarHash */ ) const
|
||||||
{
|
{
|
||||||
return m_cacheDir;
|
return m_cacheDir;
|
||||||
}
|
}
|
||||||
|
|
||||||
QString AvatarManager::avatarPath(const QString &avatarHash) const
|
|
||||||
|
QString
|
||||||
|
AvatarManager::avatarPath( const QString& avatarHash ) const
|
||||||
{
|
{
|
||||||
Q_ASSERT( !avatarHash.contains( "@" ) );
|
Q_ASSERT( !avatarHash.contains( "@" ) );
|
||||||
return avatarDir( avatarHash ).absoluteFilePath( avatarHash );
|
return avatarDir( avatarHash ).absoluteFilePath( avatarHash );
|
||||||
}
|
}
|
||||||
|
|
||||||
bool AvatarManager::isCached(const QString &avatarHash) const
|
|
||||||
|
bool
|
||||||
|
AvatarManager::isCached( const QString& avatarHash ) const
|
||||||
{
|
{
|
||||||
return m_cachedAvatars.contains( avatarHash );
|
return m_cachedAvatars.contains( avatarHash );
|
||||||
}
|
}
|
||||||
|
|
||||||
void AvatarManager::onNewAvatar(const QString&)
|
|
||||||
|
void
|
||||||
|
AvatarManager::onNewAvatar( const QString& /* jid */ )
|
||||||
{
|
{
|
||||||
// qDebug() << Q_FUNC_INFO << "Found new Avatar..." << jid;
|
// qDebug() << Q_FUNC_INFO << "Found new Avatar..." << jid;
|
||||||
}
|
}
|
||||||
|
Reference in New Issue
Block a user