Index: meta/proxy/MetaProxy.cpp =================================================================== --- meta/proxy/MetaProxy.cpp (Revision 791803) +++ meta/proxy/MetaProxy.cpp (Arbeitskopie) @@ -73,7 +73,7 @@ d->proxy = this; d->cachedLength = 0; - QObject::connect( CollectionManager::instance(), SIGNAL( collectionAdded( Collection* ) ), d, SLOT( slotNewCollection( Collection* ) ) ); + QObject::connect( CollectionManager::instance(), SIGNAL( trackProviderAdded( TrackProvider* ) ), d, SLOT( slotNewTrackProvider( TrackProvider* ) ) ); d->albumPtr = Meta::AlbumPtr( new ProxyAlbum( QPointer( d ) ) ); d->artistPtr = Meta::ArtistPtr( new ProxyArtist( QPointer( d ) ) ); Index: collection/CollectionManager.cpp =================================================================== --- collection/CollectionManager.cpp (Revision 791803) +++ collection/CollectionManager.cpp (Arbeitskopie) @@ -332,6 +332,7 @@ d->collections.append( newCollection ); d->trackProviders.append( newCollection ); emit collectionAdded( newCollection ); + emit trackProviderAdded( newCollection ); } } @@ -351,6 +352,7 @@ CollectionManager::addTrackProvider( TrackProvider *provider ) { d->trackProviders.append( provider ); + emit trackProviderAdded( provider ); } void Index: collection/CollectionManager.h =================================================================== --- collection/CollectionManager.h (Revision 791803) +++ collection/CollectionManager.h (Arbeitskopie) @@ -91,6 +91,7 @@ signals: void collectionAdded( Collection *newCollection ); void collectionRemoved( QString collectionId ); + void trackProviderAdded( TrackProvider *provider ); //this signal will be emitted after major changes to the collection //e.g. new songs where added, or an album changed //from compilation to non-compilation (and vice versa) Index: meta/proxy/MetaProxy_p.h =================================================================== --- meta/proxy/MetaProxy_p.h (Revision 791803) +++ meta/proxy/MetaProxy_p.h (Arbeitskopie) @@ -81,17 +81,17 @@ } public slots: - void slotNewCollection( Collection *newCollection ) + void slotNewTrackProvider( TrackProvider *newTrackProvider ) { - if( newCollection->possiblyContainsTrack( url ) ) + if( newTrackProvider->possiblyContainsTrack( url ) ) { - Meta::TrackPtr track = newCollection->trackForUrl( url ); + Meta::TrackPtr track = newTrackProvider->trackForUrl( url ); if( track ) { track->subscribe( this ); realTrack = track; notifyObservers(); - disconnect( CollectionManager::instance(), SIGNAL( collectionAdded( Collection* ) ), this, SLOT( slotNewCollection( Collection* ) ) ); + disconnect( CollectionManager::instance(), SIGNAL( trackProviderAdded( TrackProvider* ) ), this, SLOT( slotNewTrackProvider( TrackProvider* ) ) ); } } }