From 2bc71743de312f9c0301035bdacff4200c69962e Mon Sep 17 00:00:00 2001 From: Christian Muehlhaeuser Date: Mon, 12 Sep 2011 15:17:37 +0200 Subject: [PATCH] * Fix for getting out of sync with locally changed playlists. --- src/libtomahawk/playlist/playlistmodel.cpp | 22 +++++++--------------- src/libtomahawk/playlist/playlistmodel.h | 4 ++-- 2 files changed, 9 insertions(+), 17 deletions(-) diff --git a/src/libtomahawk/playlist/playlistmodel.cpp b/src/libtomahawk/playlist/playlistmodel.cpp index 7de20c0ca..5893e2cc9 100644 --- a/src/libtomahawk/playlist/playlistmodel.cpp +++ b/src/libtomahawk/playlist/playlistmodel.cpp @@ -25,6 +25,7 @@ #include "album.h" #include "pipeline.h" #include "source.h" +#include "sourcelist.h" #include "database/database.h" #include "database/databasecommand_playbackhistory.h" #include "dynamic/GeneratorInterface.h" @@ -37,7 +38,6 @@ using namespace Tomahawk; PlaylistModel::PlaylistModel( QObject* parent ) : TrackModel( parent ) - , m_waitForUpdate( false ) , m_isTemporary( false ) { qDebug() << Q_FUNC_INFO; @@ -331,14 +331,7 @@ PlaylistModel::onDataChanged() void PlaylistModel::onRevisionLoaded( Tomahawk::PlaylistRevision revision ) { - qDebug() << Q_FUNC_INFO; - - if ( m_waitForUpdate ) - { - qDebug() << m_playlist->currentrevision() << revision.revisionguid; - m_waitForUpdate = false; - } - else + if ( m_playlist->author() != SourceList::instance()->getLocal() ) loadPlaylist( m_playlist ); } @@ -425,7 +418,7 @@ PlaylistModel::parsedDroppedTracks( QList< query_ptr > tracks ) if ( m_dropStorage.action & Qt::CopyAction || m_dropStorage.action & Qt::MoveAction ) { - onPlaylistChanged( true ); + onPlaylistChanged(); emit trackCountChanged( rowCount( QModelIndex() ) ); } @@ -437,7 +430,7 @@ PlaylistModel::parsedDroppedTracks( QList< query_ptr > tracks ) void -PlaylistModel::onPlaylistChanged( bool waitForUpdate ) +PlaylistModel::onPlaylistChanged() { qDebug() << Q_FUNC_INFO; @@ -445,13 +438,11 @@ PlaylistModel::onPlaylistChanged( bool waitForUpdate ) return; QList l = playlistEntries(); - foreach( const plentry_ptr& ple, l ) { qDebug() << "updateinternal:" << ple->query()->toString(); } - m_waitForUpdate = waitForUpdate; QString newrev = uuid(); if( dynplaylist_ptr dynplaylist = m_playlist.dynamicCast() ) { @@ -463,7 +454,8 @@ PlaylistModel::onPlaylistChanged( bool waitForUpdate ) { dynplaylist->createNewRevision( newrev, dynplaylist->currentrevision(), dynplaylist->type(), dynplaylist->generator()->controls(), l ); } - } else + } + else { m_playlist->createNewRevision( newrev, m_playlist->currentrevision(), l ); } @@ -511,7 +503,7 @@ PlaylistModel::removeIndex( const QModelIndex& index, bool moreToCome ) if ( !moreToCome && !m_playlist.isNull() ) { - onPlaylistChanged( true ); + onPlaylistChanged(); } } diff --git a/src/libtomahawk/playlist/playlistmodel.h b/src/libtomahawk/playlist/playlistmodel.h index 0f2dc3fc5..9791eae00 100644 --- a/src/libtomahawk/playlist/playlistmodel.h +++ b/src/libtomahawk/playlist/playlistmodel.h @@ -85,7 +85,7 @@ private slots: void onDataChanged(); void onRevisionLoaded( Tomahawk::PlaylistRevision revision ); - void onPlaylistChanged( bool waitForUpdate = true ); + void onPlaylistChanged(); void onTracksAdded( const QList& tracks ); void onTracksInserted( unsigned int row, const QList& tracks ); @@ -97,7 +97,7 @@ private: QList playlistEntries() const; Tomahawk::playlist_ptr m_playlist; - bool m_waitForUpdate, m_isTemporary; + bool m_isTemporary; QList< Tomahawk::Query* > m_waitingForResolved; DropStorageData m_dropStorage;