diff --git a/src/libtomahawk/playlist/TreeProxyModel.cpp b/src/libtomahawk/playlist/TreeProxyModel.cpp index 9f4817668..ffef3be2d 100644 --- a/src/libtomahawk/playlist/TreeProxyModel.cpp +++ b/src/libtomahawk/playlist/TreeProxyModel.cpp @@ -114,6 +114,7 @@ TreeProxyModel::setFilter( const QString& pattern ) disconnect( dynamic_cast< QObject* >( m_artistsFilterCmd ), SIGNAL( artists( QList ) ), this, SLOT( onFilterArtists( QList ) ) ); + delete m_artistsFilterCmd; m_artistsFilterCmd = 0; } @@ -190,7 +191,14 @@ TreeProxyModel::onFilterAlbums( const QList& albums ) void TreeProxyModel::filterFinished() { - m_artistsFilterCmd = 0; + if ( m_artistsFilterCmd ) + { + disconnect( dynamic_cast< QObject* >( m_artistsFilterCmd ), SIGNAL( artists( QList ) ), + this, SLOT( onFilterArtists( QList ) ) ); + + delete m_artistsFilterCmd; + m_artistsFilterCmd = 0; + } setFilterRegExp( m_filter ); emit filterChanged( m_filter );