diff --git a/src/libtomahawk/viewmanager.cpp b/src/libtomahawk/viewmanager.cpp index 3f24720db..ef8008773 100644 --- a/src/libtomahawk/viewmanager.cpp +++ b/src/libtomahawk/viewmanager.cpp @@ -126,6 +126,10 @@ ViewManager::ViewManager( QObject* parent ) ViewManager::~ViewManager() { saveCurrentPlaylistSettings(); + delete m_whatsHotWidget; + delete m_welcomeWidget; + delete m_topLovedWidget; + delete m_contextWidget; delete m_widget; } diff --git a/src/libtomahawk/widgets/whatshotwidget.cpp b/src/libtomahawk/widgets/whatshotwidget.cpp index bedad456a..c4c9ecfb4 100644 --- a/src/libtomahawk/widgets/whatshotwidget.cpp +++ b/src/libtomahawk/widgets/whatshotwidget.cpp @@ -108,6 +108,8 @@ WhatsHotWidget::WhatsHotWidget( QWidget* parent ) WhatsHotWidget::~WhatsHotWidget() { + qDeleteAll( m_workers ); + m_workers.clear(); m_workerThread->exit(0); m_playlistInterface.clear(); delete ui; @@ -485,6 +487,7 @@ WhatsHotWidget::chartArtistsLoaded( ChartDataLoader* loader, const QList< artist } } + m_workers.remove( loader ); loader->deleteLater(); } @@ -502,6 +505,7 @@ WhatsHotWidget::chartTracksLoaded( ChartDataLoader* loader, const QList< query_p m_trackModels[ chartId ]->append( tracks ); } + m_workers.remove( loader ); loader->deleteLater(); } @@ -515,5 +519,6 @@ WhatsHotWidget::chartAlbumsLoaded( ChartDataLoader* loader, const QList< album_p if ( m_albumModels.contains( chartId ) ) m_albumModels[ chartId ]->addAlbums( albums ); + m_workers.remove( loader ); loader->deleteLater(); } diff --git a/src/libtomahawk/widgets/whatshotwidget.h b/src/libtomahawk/widgets/whatshotwidget.h index 4cc74208b..5c10581f5 100644 --- a/src/libtomahawk/widgets/whatshotwidget.h +++ b/src/libtomahawk/widgets/whatshotwidget.h @@ -49,6 +49,7 @@ namespace Tomahawk { class ChartDataLoader; class ChartsPlaylistInterface; + class ChartDataLoader; } /** @@ -110,6 +111,7 @@ private: // {Artist,Album,Track}::get() calls are all synchronous db calls // and we don't want to lock up out UI in case the db is busy (e.g. on startup) QThread* m_workerThread; + QSet< Tomahawk::ChartDataLoader* > m_workers; // Cache our model data QHash< QString, AlbumModel* > m_albumModels;