From 6e5023df7f39c6326301d6c30219114b7761b69d Mon Sep 17 00:00:00 2001 From: Leo Franchi Date: Wed, 19 Sep 2012 07:55:02 -0400 Subject: [PATCH] Update resolver icon for new results after it is changed --- src/libtomahawk/AtticaManager.cpp | 2 ++ src/libtomahawk/AtticaManager.h | 2 ++ src/libtomahawk/accounts/ResolverAccount.cpp | 18 ++++++++++++++++-- src/libtomahawk/accounts/ResolverAccount.h | 4 ++++ 4 files changed, 24 insertions(+), 2 deletions(-) diff --git a/src/libtomahawk/AtticaManager.cpp b/src/libtomahawk/AtticaManager.cpp index 9cf0737e0..aacde53f8 100644 --- a/src/libtomahawk/AtticaManager.cpp +++ b/src/libtomahawk/AtticaManager.cpp @@ -471,6 +471,8 @@ AtticaManager::resolverIconFetched() icon->loadFromData( data ); m_resolverStates[ resolverId ].pixmap = icon; m_resolverStates[ resolverId ].pixmapDirty = true; + + emit resolverIconUpdated( resolverId ); } diff --git a/src/libtomahawk/AtticaManager.h b/src/libtomahawk/AtticaManager.h index 5a8bd1532..51c20ff20 100644 --- a/src/libtomahawk/AtticaManager.h +++ b/src/libtomahawk/AtticaManager.h @@ -123,6 +123,8 @@ signals: void resolverUninstalled( const QString& resolverId ); void resolverInstallationFailed( const QString& resolverId ); + void resolverIconUpdated( const QString& resolverId ); + void startedInstalling( const QString& resolverId ); private slots: diff --git a/src/libtomahawk/accounts/ResolverAccount.cpp b/src/libtomahawk/accounts/ResolverAccount.cpp index b7a8f9e64..25b06991b 100644 --- a/src/libtomahawk/accounts/ResolverAccount.cpp +++ b/src/libtomahawk/accounts/ResolverAccount.cpp @@ -18,13 +18,14 @@ #include "ResolverAccount.h" +#include "AccountManager.h" +#include "AtticaManager.h" #include "ExternalResolver.h" #include "ExternalResolverGui.h" -#include "AccountManager.h" +#include "Pipeline.h" #include "TomahawkSettings.h" #include "Source.h" -#include #include #include #include @@ -240,6 +241,9 @@ AtticaResolverAccount::AtticaResolverAccount( const QString& accountId ) TomahawkSettings::instance()->setValue( QString( "accounts/%1/atticaresolver" ).arg( accountId ), true ); m_atticaId = configuration().value( "atticaId" ).toString(); + + connect( AtticaManager::instance(), SIGNAL( resolverIconUpdated( QString ) ), this, SLOT( resolverIconUpdated( QString ) ) ); + loadIcon(); } @@ -253,6 +257,8 @@ 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(); sync(); } @@ -301,3 +307,11 @@ AtticaResolverAccount::icon() const { return m_icon; } + + +void +AtticaResolverAccount::resolverIconUpdated( const QString& resolver ) +{ + if ( m_atticaId == resolver ) + loadIcon(); +} diff --git a/src/libtomahawk/accounts/ResolverAccount.h b/src/libtomahawk/accounts/ResolverAccount.h index fb3f5487e..3a46a4171 100644 --- a/src/libtomahawk/accounts/ResolverAccount.h +++ b/src/libtomahawk/accounts/ResolverAccount.h @@ -118,6 +118,10 @@ public: QString atticaId() const { return m_atticaId; } void setPath( const QString& path ); + +private slots: + void resolverIconUpdated( const QString& ); + private: // Created by factory, when user installs a new resolver AtticaResolverAccount( const QString& accountId, const QString& path, const QString& atticaId );