diff --git a/src/libtomahawk/playlist/albummodel.cpp b/src/libtomahawk/playlist/albummodel.cpp index d3ab1b860..4ed4ecb1d 100644 --- a/src/libtomahawk/playlist/albummodel.cpp +++ b/src/libtomahawk/playlist/albummodel.cpp @@ -236,13 +236,14 @@ AlbumModel::removeIndexes( const QList& indexes ) void -AlbumModel::addCollection( const collection_ptr& collection ) +AlbumModel::addCollection( const collection_ptr& collection, bool overwrite ) { qDebug() << Q_FUNC_INFO << collection->name() << collection->source()->id() << collection->source()->userName(); DatabaseCommand_AllAlbums* cmd = new DatabaseCommand_AllAlbums( collection ); + cmd->setProperty( "overwrite", overwrite ); connect( cmd, SIGNAL( albums( QList, QVariant ) ), SLOT( addAlbums( QList ) ) ); @@ -254,7 +255,7 @@ AlbumModel::addCollection( const collection_ptr& collection ) void -AlbumModel::addFilteredCollection( const collection_ptr& collection, unsigned int amount, DatabaseCommand_AllAlbums::SortOrder order ) +AlbumModel::addFilteredCollection( const collection_ptr& collection, unsigned int amount, DatabaseCommand_AllAlbums::SortOrder order, bool overwrite ) { /* qDebug() << Q_FUNC_INFO << collection->name() << collection->source()->id() @@ -265,6 +266,7 @@ AlbumModel::addFilteredCollection( const collection_ptr& collection, unsigned in cmd->setLimit( amount ); cmd->setSortOrder( order ); cmd->setSortDescending( true ); + cmd->setProperty( "overwrite", overwrite ); connect( cmd, SIGNAL( albums( QList, QVariant ) ), SLOT( addAlbums( QList ) ) ); @@ -284,6 +286,9 @@ AlbumModel::addAlbums( const QList& albums ) if ( !albums.count() ) return; + if ( sender() && sender()->property( "overwrite" ).toBool() ) + clear(); + int c = rowCount( QModelIndex() ); QPair< int, int > crows; crows.first = c; diff --git a/src/libtomahawk/playlist/albummodel.h b/src/libtomahawk/playlist/albummodel.h index 3730acde4..574bf8086 100644 --- a/src/libtomahawk/playlist/albummodel.h +++ b/src/libtomahawk/playlist/albummodel.h @@ -63,8 +63,8 @@ public: virtual QStringList mimeTypes() const; virtual Qt::ItemFlags flags( const QModelIndex& index ) const; - void addCollection( const Tomahawk::collection_ptr& collection ); - void addFilteredCollection( const Tomahawk::collection_ptr& collection, unsigned int amount, DatabaseCommand_AllAlbums::SortOrder order ); + void addCollection( const Tomahawk::collection_ptr& collection, bool overwrite = false ); + void addFilteredCollection( const Tomahawk::collection_ptr& collection, unsigned int amount, DatabaseCommand_AllAlbums::SortOrder order, bool overwrite = false ); void clear(); diff --git a/src/libtomahawk/widgets/welcomewidget.cpp b/src/libtomahawk/widgets/welcomewidget.cpp index 7fc677c19..5e090f090 100644 --- a/src/libtomahawk/widgets/welcomewidget.cpp +++ b/src/libtomahawk/widgets/welcomewidget.cpp @@ -86,7 +86,7 @@ WelcomeWidget::WelcomeWidget( QWidget* parent ) m_recentAlbumsModel = new AlbumModel( ui->additionsView ); ui->additionsView->setAlbumModel( m_recentAlbumsModel ); - m_recentAlbumsModel->addFilteredCollection( collection_ptr(), 20, DatabaseCommand_AllAlbums::ModificationTime ); + m_recentAlbumsModel->addFilteredCollection( collection_ptr(), 20, DatabaseCommand_AllAlbums::ModificationTime, true ); m_timer = new QTimer( this ); connect( m_timer, SIGNAL( timeout() ), SLOT( checkQueries() ) ); @@ -115,8 +115,7 @@ WelcomeWidget::updateRecentTracks() void WelcomeWidget::updateRecentAdditions() { - m_recentAlbumsModel->clear(); - m_recentAlbumsModel->addFilteredCollection( collection_ptr(), 20, DatabaseCommand_AllAlbums::ModificationTime ); + m_recentAlbumsModel->addFilteredCollection( collection_ptr(), 20, DatabaseCommand_AllAlbums::ModificationTime, true ); }