diff --git a/src/libtomahawk/Source.cpp b/src/libtomahawk/Source.cpp index 0425c9361..bfeeb5fbe 100644 --- a/src/libtomahawk/Source.cpp +++ b/src/libtomahawk/Source.cpp @@ -175,6 +175,20 @@ Source::setFriendlyName( const QString& fname ) } +QString +Source::dbFriendlyName() const +{ + return m_dbFriendlyName; +} + + +void +Source::setDbFriendlyName( const QString& dbFriendlyName ) +{ + m_dbFriendlyName = dbFriendlyName; +} + + void Source::addCollection( const collection_ptr& c ) { @@ -228,7 +242,7 @@ Source::setOnline() if ( !isLocal() ) { // ensure username is in the database - DatabaseCommand_addSource* cmd = new DatabaseCommand_addSource( m_nodeId, friendlyName() ); + DatabaseCommand_addSource* cmd = new DatabaseCommand_addSource( m_nodeId, dbFriendlyName() ); connect( cmd, SIGNAL( done( unsigned int, QString ) ), SLOT( dbLoaded( unsigned int, const QString& ) ) ); Database::instance()->enqueue( QSharedPointer<DatabaseCommand>(cmd) ); @@ -240,7 +254,7 @@ void Source::dbLoaded( unsigned int id, const QString& fname ) { m_id = id; - setFriendlyName( fname ); + setDbFriendlyName( fname ); emit syncedWithDatabase(); } diff --git a/src/libtomahawk/Source.h b/src/libtomahawk/Source.h index 1645c61eb..599b29d59 100644 --- a/src/libtomahawk/Source.h +++ b/src/libtomahawk/Source.h @@ -62,9 +62,17 @@ public: bool isOnline() const { return m_online || m_isLocal; } QString nodeId() const { return m_nodeId; } + QString friendlyName() const; void setFriendlyName( const QString& fname ); + + // fallback when the normal friendlyname from cache is not available + // this is usually the jabber id or whatever was used when first connected + QString dbFriendlyName() const; + void setDbFriendlyName( const QString& dbFriendlyName ); + + #ifndef ENABLE_HEADLESS QPixmap avatar( TomahawkUtils::ImageMode style = TomahawkUtils::Original, const QSize& size = QSize() ); #endif @@ -144,6 +152,7 @@ private: bool m_online; QString m_nodeId; QString m_friendlyname; + QString m_dbFriendlyName; int m_id; bool m_scrubFriendlyName; bool m_updateIndexWhenSynced; diff --git a/src/libtomahawk/SourceList.cpp b/src/libtomahawk/SourceList.cpp index e31dc7af2..a0204a19e 100644 --- a/src/libtomahawk/SourceList.cpp +++ b/src/libtomahawk/SourceList.cpp @@ -202,14 +202,14 @@ SourceList::get( const QString& username, const QString& friendlyName, bool auto { Q_ASSERT( !friendlyName.isEmpty() ); source = source_ptr( new Source( -1, username ) ); - source->setFriendlyName( friendlyName ); + source->setDbFriendlyName( friendlyName ); add( source ); } } else { source = m_sources.value( username ); - source->setFriendlyName( friendlyName ); + source->setDbFriendlyName( friendlyName ); } return source; diff --git a/src/libtomahawk/database/DatabaseCommand_LoadAllSources.cpp b/src/libtomahawk/database/DatabaseCommand_LoadAllSources.cpp index 155701a12..5ecd70a0f 100644 --- a/src/libtomahawk/database/DatabaseCommand_LoadAllSources.cpp +++ b/src/libtomahawk/database/DatabaseCommand_LoadAllSources.cpp @@ -40,7 +40,7 @@ DatabaseCommand_LoadAllSources::exec( DatabaseImpl* dbi ) while ( query.next() ) { source_ptr src( new Source( query.value( 0 ).toUInt(), query.value( 1 ).toString() ) ); - src->setFriendlyName( query.value( 2 ).toString() ); + src->setDbFriendlyName( query.value( 2 ).toString() ); sources << src; }