1
0
mirror of https://github.com/tomahawk-player/tomahawk.git synced 2025-08-26 15:25:04 +02:00

Fix race condition on loading resolver icons & loading attica resolvers

This commit is contained in:
Leo Franchi
2012-09-19 16:10:33 -04:00
parent 4a7c2fd2b4
commit 9146a3961e
2 changed files with 18 additions and 7 deletions

View File

@@ -240,11 +240,9 @@ AtticaResolverAccount::AtticaResolverAccount( const QString& accountId )
{
TomahawkSettings::instance()->setValue( QString( "accounts/%1/atticaresolver" ).arg( accountId ), true );
init();
m_atticaId = configuration().value( "atticaId" ).toString();
connect( AtticaManager::instance(), SIGNAL( resolverIconUpdated( QString ) ), this, SLOT( resolverIconUpdated( QString ) ) );
loadIcon();
}
AtticaResolverAccount::AtticaResolverAccount( const QString& accountId, const QString& path, const QString& atticaId )
@@ -257,9 +255,7 @@ AtticaResolverAccount::AtticaResolverAccount( const QString& accountId, const QS
TomahawkSettings::instance()->setValue( QString( "accounts/%1/atticaresolver" ).arg( accountId ), true );
connect( AtticaManager::instance(), SIGNAL( resolverIconUpdated( QString ) ), this, SLOT( resolverIconUpdated( QString ) ) );
loadIcon();
init();
sync();
}
@@ -269,6 +265,20 @@ AtticaResolverAccount::~AtticaResolverAccount()
}
void
AtticaResolverAccount::init()
{
connect( AtticaManager::instance(), SIGNAL( resolverIconUpdated( QString ) ), this, SLOT( resolverIconUpdated( QString ) ) );
if ( AtticaManager::instance()->resolversLoaded() )
loadIcon();
else
connect( AtticaManager::instance(), SIGNAL( resolversLoaded( Attica::Content::List ) ), this, SLOT( loadIcon() ) );
}
void
AtticaResolverAccount::loadIcon()
{

View File

@@ -122,11 +122,12 @@ public:
private slots:
void resolverIconUpdated( const QString& );
void loadIcon();
private:
// Created by factory, when user installs a new resolver
AtticaResolverAccount( const QString& accountId, const QString& path, const QString& atticaId );
void loadIcon();
void init();
QPixmap m_icon;
QString m_atticaId;