SourceInfoWidget::SourceInfoWidget( const Tomahawk::source_ptr& source, QWidget* parent ) : QWidget( parent ) , ui( new Ui::SourceInfoWidget ) { ui->setupUi( this ); ui->historyView->overlay()->setEnabled( false ); m_recentCollectionModel = new CollectionFlatModel( ui->recentCollectionView ); ui->recentCollectionView->setModel( m_recentCollectionModel ); m_recentCollectionModel->addFilteredCollection( source->collection(), 250, DatabaseCommand_AllTracks::ModificationTime ); m_historyModel = new PlaylistModel( ui->historyView ); ui->historyView->setModel( m_historyModel ); m_historyModel->loadHistory( source ); connect( source.data(), SIGNAL( playbackFinished( Tomahawk::query_ptr ) ), SLOT( onPlaybackFinished( Tomahawk::query_ptr ) ) ); ui->recentCollectionView->setColumnHidden( TrackModel::Bitrate, true ); ui->recentCollectionView->setColumnHidden( TrackModel::Origin, true ); ui->recentCollectionView->setColumnHidden( TrackModel::Filesize, true ); ui->historyView->setColumnHidden( TrackModel::Bitrate, true ); ui->historyView->setColumnHidden( TrackModel::Origin, true ); ui->historyView->setColumnHidden( TrackModel::Filesize, true ); m_recentAlbumModel = new AlbumModel( ui->recentAlbumView ); ui->recentAlbumView->setModel( m_recentAlbumModel ); m_recentAlbumModel->addFilteredCollection( source->collection(), 20, DatabaseCommand_AllAlbums::ModificationTime ); m_title = tr( "Info about %1" ).arg( source->isLocal() ? tr( "Your Collection" ) : source->friendlyName() ); }
SourceInfoWidget::SourceInfoWidget( const Tomahawk::source_ptr& source, QWidget* parent ) : QWidget( parent ) , ui( new Ui::SourceInfoWidget ) , m_source( source ) { ui->setupUi( this ); ui->historyView->setFrameShape( QFrame::NoFrame ); ui->historyView->setAttribute( Qt::WA_MacShowFocusRect, 0 ); ui->recentAlbumView->setFrameShape( QFrame::NoFrame ); ui->recentAlbumView->setAttribute( Qt::WA_MacShowFocusRect, 0 ); ui->recentCollectionView->setFrameShape( QFrame::NoFrame ); ui->recentCollectionView->setAttribute( Qt::WA_MacShowFocusRect, 0 ); TomahawkUtils::unmarginLayout( layout() ); ui->historyView->overlay()->setEnabled( false ); m_recentCollectionModel = new CollectionFlatModel( ui->recentCollectionView ); m_recentCollectionModel->setStyle( TrackModel::Short ); ui->recentCollectionView->setTrackModel( m_recentCollectionModel ); ui->recentCollectionView->sortByColumn( TrackModel::Age, Qt::DescendingOrder ); m_historyModel = new PlaylistModel( ui->historyView ); m_historyModel->setStyle( TrackModel::Short ); ui->historyView->setPlaylistModel( m_historyModel ); m_historyModel->loadHistory( source, 25 ); m_recentAlbumModel = new AlbumModel( ui->recentAlbumView ); ui->recentAlbumView->setAlbumModel( m_recentAlbumModel ); ui->recentAlbumView->proxyModel()->sort( -1 ); onCollectionChanged(); connect( source->collection().data(), SIGNAL( changed() ), SLOT( onCollectionChanged() ) ); connect( source.data(), SIGNAL( playbackFinished( Tomahawk::query_ptr ) ), SLOT( onPlaybackFinished( Tomahawk::query_ptr ) ) ); m_title = tr( "New Additions" ); if ( source->isLocal() ) { m_description = tr( "My recent activity" ); } else { m_description = tr( "Recent activity from %1" ).arg( source->friendlyName() ); } m_pixmap.load( RESPATH "images/new-additions.png" ); }
void GridItemDelegate::onPlayClicked( const QPersistentModelIndex& index ) { QPoint pos = m_playButton[ index ]->pos(); foreach ( ImageButton* button, m_playButton ) button->deleteLater(); m_playButton.clear(); AnimatedSpinner* spinner = new AnimatedSpinner( m_view ); spinner->setAutoCenter( false ); spinner->fadeIn(); spinner->move( pos ); spinner->setFocusPolicy( Qt::NoFocus ); spinner->installEventFilter( this ); m_spinner[ index ] = spinner; PlayableItem* item = m_model->sourceModel()->itemFromIndex( m_model->mapToSource( index ) ); if ( item ) { NewClosure( AudioEngine::instance(), SIGNAL( loading( Tomahawk::result_ptr ) ), const_cast<GridItemDelegate*>(this), SLOT( onPlaybackStarted( QPersistentModelIndex ) ), QPersistentModelIndex( index ) ); m_closures.remove( index ); m_closures.insertMulti( index, NewClosure( AudioEngine::instance(), SIGNAL( started( Tomahawk::result_ptr ) ), const_cast<GridItemDelegate*>(this), SLOT( onPlaylistChanged( QPersistentModelIndex ) ), QPersistentModelIndex( index ) ) ); m_closures.insertMulti( index, NewClosure( AudioEngine::instance(), SIGNAL( stopped() ), const_cast<GridItemDelegate*>(this), SLOT( onPlaylistChanged( QPersistentModelIndex ) ), QPersistentModelIndex( index ) ) ); foreach ( _detail::Closure* closure, m_closures.values( index ) ) closure->setAutoDelete( false ); connect( AudioEngine::instance(), SIGNAL( stopped() ), SLOT( onPlaybackFinished() ) ); if ( !item->query().isNull() ) AudioEngine::instance()->playItem( Tomahawk::playlistinterface_ptr(), item->query() ); else if ( !item->album().isNull() ) AudioEngine::instance()->playItem( item->album() ); else if ( !item->artist().isNull() ) AudioEngine::instance()->playItem( item->artist() ); } }
SourceInfoWidget::SourceInfoWidget( const Tomahawk::source_ptr& source, QWidget* parent ) : QWidget( parent ) , ui( new Ui::SourceInfoWidget ) { ui->setupUi( this ); ui->historyView->setFrameShape( QFrame::NoFrame ); ui->historyView->setAttribute( Qt::WA_MacShowFocusRect, 0 ); ui->recentAlbumView->setFrameShape( QFrame::NoFrame ); ui->recentAlbumView->setAttribute( Qt::WA_MacShowFocusRect, 0 ); ui->recentCollectionView->setFrameShape( QFrame::NoFrame ); ui->recentCollectionView->setAttribute( Qt::WA_MacShowFocusRect, 0 ); TomahawkUtils::unmarginLayout( layout() ); ui->historyView->overlay()->setEnabled( false ); m_recentCollectionModel = new CollectionFlatModel( ui->recentCollectionView ); m_recentCollectionModel->setStyle( TrackModel::Short ); ui->recentCollectionView->setTrackModel( m_recentCollectionModel ); m_recentCollectionModel->addFilteredCollection( source->collection(), 250, DatabaseCommand_AllTracks::ModificationTime ); m_historyModel = new PlaylistModel( ui->historyView ); m_historyModel->setStyle( TrackModel::Short ); ui->historyView->setPlaylistModel( m_historyModel ); m_historyModel->loadHistory( source, 25 ); connect( source.data(), SIGNAL( playbackFinished( Tomahawk::query_ptr ) ), SLOT( onPlaybackFinished( Tomahawk::query_ptr ) ) ); m_recentAlbumModel = new AlbumModel( ui->recentAlbumView ); ui->recentAlbumView->setAlbumModel( m_recentAlbumModel ); m_recentAlbumModel->addFilteredCollection( source->collection(), 20, DatabaseCommand_AllAlbums::ModificationTime ); m_title = tr( "New Additions" ); m_description = tr( "Recent activity from %1" ).arg( source->isLocal() ? tr( "Your Collection" ) : source->friendlyName() ); m_pixmap.load( RESPATH "images/new-additions.png" ); }
void WelcomeWidget::onSourceAdded( const Tomahawk::source_ptr& source ) { connect( source.data(), SIGNAL( playbackFinished( Tomahawk::query_ptr ) ), SLOT( onPlaybackFinished( Tomahawk::query_ptr ) ) ); }