1
0
mirror of https://github.com/tomahawk-player/tomahawk.git synced 2025-03-21 16:29:43 +01:00

TWK-722: Fix quitting right after startup by ensuring chart data loaders are deleted before database

This commit is contained in:
Leo Franchi 2012-03-06 18:46:48 -05:00
parent 3caeb4642a
commit 34672c7bed
3 changed files with 11 additions and 0 deletions

View File

@ -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;
}

View File

@ -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();
}

View File

@ -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;