diff --git a/src/libtomahawk/playlist/PlayableModel.cpp b/src/libtomahawk/playlist/PlayableModel.cpp index 802f45781..2b88246cd 100644 --- a/src/libtomahawk/playlist/PlayableModel.cpp +++ b/src/libtomahawk/playlist/PlayableModel.cpp @@ -682,8 +682,18 @@ PlayableModel::insertInternal( const QList< T >& items, int row, const QList< To plitem->index = createIndex( row + i, 0, plitem ); if ( plitem->query() ) { - connect( plitem->query().data(), SIGNAL( playableStateChanged( bool ) ), SLOT( onQueryBecamePlayable( bool ) ), Qt::UniqueConnection ); - connect( plitem->query().data(), SIGNAL( resolvingFinished( bool ) ), SLOT( onQueryResolved( bool ) ), Qt::UniqueConnection ); + if ( !plitem->query()->playable() ) + { + connect( plitem->query().data(), SIGNAL( playableStateChanged( bool ) ), + SLOT( onQueryBecamePlayable( bool ) ), + Qt::UniqueConnection ); + } + if ( !plitem->query()->resolvingFinished() ) + { + connect( plitem->query().data(), SIGNAL( resolvingFinished( bool ) ), + SLOT( onQueryResolved( bool ) ), + Qt::UniqueConnection ); + } } if ( logs.count() > i )