From 54b8def06aa71ddb22c24c2861cb49aaac0289b8 Mon Sep 17 00:00:00 2001 From: Christian Muehlhaeuser Date: Wed, 23 Nov 2011 04:38:07 +0100 Subject: [PATCH] * Update SourceInfoWidget when collection changes. --- .../widgets/infowidgets/sourceinfowidget.cpp | 24 +++++++++++++++---- .../widgets/infowidgets/sourceinfowidget.h | 6 +++-- 2 files changed, 24 insertions(+), 6 deletions(-) diff --git a/src/libtomahawk/widgets/infowidgets/sourceinfowidget.cpp b/src/libtomahawk/widgets/infowidgets/sourceinfowidget.cpp index 8aee771ca..b2dd5265e 100644 --- a/src/libtomahawk/widgets/infowidgets/sourceinfowidget.cpp +++ b/src/libtomahawk/widgets/infowidgets/sourceinfowidget.cpp @@ -58,19 +58,20 @@ SourceInfoWidget::SourceInfoWidget( const Tomahawk::source_ptr& source, QWidget* m_recentCollectionModel->setStyle( TrackModel::Short ); ui->recentCollectionView->setTrackModel( m_recentCollectionModel ); ui->recentCollectionView->sortByColumn( TrackModel::Age, Qt::DescendingOrder ); - loadTracks(); 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 ); ui->recentAlbumView->proxyModel()->sort( -1 ); - m_recentAlbumModel->addFilteredCollection( source->collection(), 20, DatabaseCommand_AllAlbums::ModificationTime ); + + 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() ) @@ -92,6 +93,21 @@ SourceInfoWidget::~SourceInfoWidget() } +void +SourceInfoWidget::onCollectionChanged() +{ + loadTracks(); + loadRecentAdditions(); +} + + +void +SourceInfoWidget::loadRecentAdditions() +{ + m_recentAlbumModel->addFilteredCollection( m_source->collection(), 20, DatabaseCommand_AllAlbums::ModificationTime, true ); +} + + void SourceInfoWidget::loadTracks() { diff --git a/src/libtomahawk/widgets/infowidgets/sourceinfowidget.h b/src/libtomahawk/widgets/infowidgets/sourceinfowidget.h index 211052aa2..7d849004c 100644 --- a/src/libtomahawk/widgets/infowidgets/sourceinfowidget.h +++ b/src/libtomahawk/widgets/infowidgets/sourceinfowidget.h @@ -58,9 +58,11 @@ protected: void changeEvent( QEvent* e ); private slots: - void onPlaybackFinished( const Tomahawk::query_ptr& query ); - void loadTracks(); + void loadRecentAdditions(); + + void onCollectionChanged(); + void onPlaybackFinished( const Tomahawk::query_ptr& query ); void onLoadedTrackHistory( const QList& queries ); private: