void CollectionViewPage::onCollectionChanged() { TreeModel* model = new TreeModel(); PlayableModel* flatModel = new PlayableModel(); PlayableModel* albumModel = new PlayableModel(); setTreeModel( model ); setFlatModel( flatModel ); setAlbumModel( albumModel ); model->addCollection( m_collection ); flatModel->appendTracks( m_collection ); albumModel->appendAlbums( m_collection ); if ( m_collection && m_collection->source() && m_collection->source()->isLocal() ) { setEmptyTip( tr( "After you have scanned your music collection you will find your tracks right here." ) ); } else setEmptyTip( tr( "This collection is empty." ) ); if ( m_collection.objectCast<ScriptCollection>() ) m_trackView->setEmptyTip( tr( "Cloud collections aren't supported in the flat view yet. We will have them covered soon. Switch to another view to navigate them." ) ); }
void CollectionViewPage::onCollectionChanged() { TreeModel* model = new TreeModel(); PlayableModel* flatModel = new PlayableModel(); PlayableModel* albumModel = new PlayableModel(); setTreeModel( model ); setFlatModel( flatModel ); setAlbumModel( albumModel ); model->addCollection( m_collection ); flatModel->appendTracks( m_collection ); albumModel->appendAlbums( m_collection ); if ( m_collection && m_collection->isLocal() ) { setEmptyTip( tr( "After you have scanned your music collection you will find your tracks right here." ) ); } else setEmptyTip( tr( "This collection is empty." ) ); }
void WhatsHotWidget::infoSystemInfo( Tomahawk::InfoSystem::InfoRequestData requestData, QVariant output ) { if ( requestData.caller != s_whatsHotIdentifier ) return; if ( output.isNull() ) { tDebug( LOGVERBOSE ) << Q_FUNC_INFO << "Info came back empty"; return; } if ( !output.canConvert< QVariantMap >() ) { tDebug( LOGVERBOSE ) << Q_FUNC_INFO << "WhatsHot: Could not parse output into a map"; return; } QVariantMap returnedData = output.toMap(); switch ( requestData.type ) { case InfoSystem::InfoChartCapabilities: { setViewData( returnedData ); } case InfoSystem::InfoChart: { if ( returnedData.contains( "chart_error" ) ) { tDebug( LOGVERBOSE ) << Q_FUNC_INFO << "Info came back with error!"; Tomahawk::InfoSystem::InfoStringHash criteria; criteria.insert( "chart_refetch", returnedData[ "chart_source" ].value< QString >() ); Tomahawk::InfoSystem::InfoRequestData requestData; requestData.caller = s_whatsHotIdentifier; requestData.customData = QVariantMap(); requestData.input = QVariant::fromValue< Tomahawk::InfoSystem::InfoStringHash >( criteria ); requestData.type = Tomahawk::InfoSystem::InfoChartCapabilities; requestData.timeoutMillis = 20000; requestData.allSources = false; Tomahawk::InfoSystem::InfoSystem::instance()->getInfo( requestData ); tDebug( LOGVERBOSE ) << "WhatsHot: re-requesting InfoChartCapabilities"; break; } if ( !returnedData.contains( "type" ) ) break; const QString type = returnedData[ "type" ].toString(); if ( !returnedData.contains( type ) ) break; const QString chartId = requestData.input.value< Tomahawk::InfoSystem::InfoStringHash >().value( "chart_id" ); m_queuedFetches.remove( chartId ); ChartDataLoader* loader = new ChartDataLoader(); loader->setProperty( "chartid", chartId ); loader->moveToThread( m_workerThread ); if ( type == "artists" ) { loader->setType( ChartDataLoader::Artist ); loader->setData( returnedData[ "artists" ].value< QStringList >() ); connect( loader, SIGNAL( artists( Tomahawk::ChartDataLoader*, QList< Tomahawk::artist_ptr > ) ), SLOT( chartArtistsLoaded( Tomahawk::ChartDataLoader*, QList< Tomahawk::artist_ptr > ) ) ); TreeModel* artistsModel = new TreeModel( ui->artistsViewLeft ); artistsModel->setMode( InfoSystemMode ); artistsModel->startLoading(); m_artistModels[ chartId ] = artistsModel; if ( m_queueItemToShow == chartId ) setLeftViewArtists( artistsModel ); } else if ( type == "albums" ) { loader->setType( ChartDataLoader::Album ); loader->setData( returnedData[ "albums" ].value< QList< Tomahawk::InfoSystem::InfoStringHash > >() ); connect( loader, SIGNAL( albums( Tomahawk::ChartDataLoader*, QList< Tomahawk::album_ptr > ) ), SLOT( chartAlbumsLoaded( Tomahawk::ChartDataLoader*, QList< Tomahawk::album_ptr > ) ) ); PlayableModel* albumModel = new PlayableModel( ui->albumsView ); albumModel->startLoading(); m_albumModels[ chartId ] = albumModel; if ( m_queueItemToShow == chartId ) setLeftViewAlbums( albumModel ); } else if ( type == "tracks" ) { loader->setType( ChartDataLoader::Track ); loader->setData( returnedData[ "tracks" ].value< QList< Tomahawk::InfoSystem::InfoStringHash > >() ); connect( loader, SIGNAL( tracks( Tomahawk::ChartDataLoader*, QList< Tomahawk::query_ptr > ) ), SLOT( chartTracksLoaded( Tomahawk::ChartDataLoader*, QList< Tomahawk::query_ptr > ) ) ); PlaylistModel* trackModel = new PlaylistModel( ui->tracksViewLeft ); trackModel->startLoading(); m_trackModels[ chartId ] = trackModel; if ( m_queueItemToShow == chartId ) setLeftViewTracks( trackModel ); } QMetaObject::invokeMethod( loader, "go", Qt::QueuedConnection ); break; } default: return; } }