Tomahawk::ViewPage* ViewManager::showRecentPlaysPage() { if ( !m_recentPlaysWidget ) { FlexibleView* pv = new FlexibleView( m_widget ); pv->setPixmap( TomahawkUtils::defaultPixmap( TomahawkUtils::RecentlyPlayed ) ); RecentlyPlayedModel* raModel = new RecentlyPlayedModel( pv ); raModel->setTitle( tr( "Recently Played Tracks" ) ); raModel->setDescription( tr( "Recently played tracks from all your friends" ) ); PlaylistLargeItemDelegate* del = new PlaylistLargeItemDelegate( PlaylistLargeItemDelegate::RecentlyPlayed, pv->trackView(), pv->trackView()->proxyModel() ); connect( del, SIGNAL( updateIndex( QModelIndex ) ), pv->trackView(), SLOT( update( QModelIndex ) ) ); pv->trackView()->setItemDelegate( del ); pv->setPlayableModel( raModel ); pv->setEmptyTip( tr( "Sorry, we could not find any recent plays!" ) ); raModel->setSource( source_ptr() ); pv->setGuid( "recentlyplayed" ); m_recentPlaysWidget = pv; } return show( m_recentPlaysWidget ); }
FlexibleView* ViewManager::createPageForPlaylist( const playlist_ptr& playlist ) { FlexibleView* view = new FlexibleView(); PlaylistModel* model = new PlaylistModel(); PlaylistView* pv = new PlaylistView(); pv->setPlaylistModel( model ); view->setDetailedView( pv ); view->setPixmap( pv->pixmap() ); model->loadPlaylist( playlist ); view->setPlayableModel( model ); playlist->resolve(); return view; }