1
0
mirror of https://github.com/tomahawk-player/tomahawk.git synced 2025-08-16 11:04:01 +02:00

* Fix loading spinner being stuck in certain cases.

This commit is contained in:
Christian Muehlhaeuser
2011-03-17 09:19:47 +01:00
parent 61a8f784d1
commit 7778c92a17
3 changed files with 18 additions and 12 deletions

View File

@@ -44,6 +44,7 @@ CollectionFlatModel::headerData( int section, Qt::Orientation orientation, int r
return TrackModel::headerData( section, orientation, role );
}
void
CollectionFlatModel::addCollections( const QList< collection_ptr >& collections )
{
@@ -184,13 +185,14 @@ CollectionFlatModel::onTracksAdded( const QList<Tomahawk::query_ptr>& tracks )
{
qDebug() << Q_FUNC_INFO << tracks.count() << rowCount( QModelIndex() );
if( !m_loadingCollections.isEmpty() && sender() && qobject_cast< Collection* >( sender() ) ) { // we are keeping track and are called as a slot
if( !m_loadingCollections.isEmpty() && sender() && qobject_cast< Collection* >( sender() ) )
{
// we are keeping track and are called as a slot
m_loadingCollections.removeAll( qobject_cast< Collection* >( sender() ) );
if( m_loadingCollections.isEmpty() )
emit doneLoadingCollections();
}
if( m_loadingCollections.isEmpty() )
emit doneLoadingCollections();
bool kickOff = m_tracksToAdd.isEmpty();
m_tracksToAdd << tracks;

View File

@@ -35,7 +35,7 @@ public:
QVariant headerData( int section, Qt::Orientation orientation, int role ) const;
void addCollections( const QList< Tomahawk::collection_ptr >& collections );
void addCollection( const Tomahawk::collection_ptr& collection );
void removeCollection( const Tomahawk::collection_ptr& collection );
@@ -50,6 +50,7 @@ signals:
void itemSizeChanged( const QModelIndex& index );
void doneLoadingCollections();
private slots:
void onDataChanged();

View File

@@ -255,10 +255,10 @@ PlaylistManager::show( const Tomahawk::collection_ptr& collection )
view->setModel( model );
view->setFrameShape( QFrame::NoFrame );
view->setAttribute( Qt::WA_MacShowFocusRect, 0 );
model->addCollection( collection );
m_loadingSpinner->fadeIn();
connect( model, SIGNAL( doneLoadingCollections() ), m_loadingSpinner, SLOT( fadeOut() ) );
model->addCollection( collection );
m_collectionViews.insert( collection, view );
}
@@ -339,18 +339,23 @@ PlaylistManager::showSuperCollection()
QList< collection_ptr > toAdd;
foreach( const Tomahawk::source_ptr& source, SourceList::instance()->sources() )
{
bool addedStuff = false;
if ( !m_superCollections.contains( source->collection() ) )
{
m_superCollections.append( source->collection() );
toAdd << source->collection();
m_superAlbumModel->addCollection( source->collection() );
addedStuff = true;
}
if ( addedStuff )
m_loadingSpinner->fadeIn();
m_superCollectionFlatModel->setTitle( tr( "All available tracks" ) );
m_superAlbumModel->setTitle( tr( "All available albums" ) );
}
m_superCollectionFlatModel->addCollections( toAdd );
if ( m_currentMode == 0 )
{
setPage( m_superCollectionView );
@@ -359,9 +364,7 @@ PlaylistManager::showSuperCollection()
{
setPage( m_superAlbumView );
}
m_loadingSpinner->fadeIn();
emit numSourcesChanged( m_superCollections.count() );
return true;