mirror of
https://github.com/tomahawk-player/tomahawk.git
synced 2025-08-07 22:56:42 +02:00
Don't update playlist if no tracks have changed
This commit is contained in:
@@ -71,7 +71,11 @@ XspfUpdater::playlistLoaded()
|
|||||||
foreach ( const plentry_ptr ple, playlist()->entries() )
|
foreach ( const plentry_ptr ple, playlist()->entries() )
|
||||||
tracks << ple->query();
|
tracks << ple->query();
|
||||||
|
|
||||||
QList< query_ptr > mergedTracks = TomahawkUtils::mergePlaylistChanges( tracks, loader->entries() );
|
bool changed = false;
|
||||||
|
QList< query_ptr > mergedTracks = TomahawkUtils::mergePlaylistChanges( tracks, loader->entries(), changed );
|
||||||
|
|
||||||
|
if ( !changed )
|
||||||
|
return;
|
||||||
|
|
||||||
QList<Tomahawk::plentry_ptr> el = playlist()->entriesFromQueries( mergedTracks, true );
|
QList<Tomahawk::plentry_ptr> el = playlist()->entriesFromQueries( mergedTracks, true );
|
||||||
playlist()->createNewRevision( uuid(), playlist()->currentrevision(), el );
|
playlist()->createNewRevision( uuid(), playlist()->currentrevision(), el );
|
||||||
|
@@ -104,7 +104,11 @@ CustomPlaylistView::generateTracks()
|
|||||||
void
|
void
|
||||||
CustomPlaylistView::tracksGenerated( QList< query_ptr > tracks )
|
CustomPlaylistView::tracksGenerated( QList< query_ptr > tracks )
|
||||||
{
|
{
|
||||||
QList< query_ptr > newTracks = TomahawkUtils::mergePlaylistChanges( m_model->queries(), tracks );
|
bool changed = false;
|
||||||
|
QList< query_ptr > newTracks = TomahawkUtils::mergePlaylistChanges( m_model->queries(), tracks, changed);
|
||||||
|
|
||||||
|
if ( !changed )
|
||||||
|
return;
|
||||||
|
|
||||||
m_model->clear();
|
m_model->clear();
|
||||||
m_model->append( newTracks );
|
m_model->append( newTracks );
|
||||||
|
@@ -533,10 +533,12 @@ newerVersion( const QString& oldVersion, const QString& newVersion )
|
|||||||
|
|
||||||
|
|
||||||
QList< Tomahawk::query_ptr >
|
QList< Tomahawk::query_ptr >
|
||||||
mergePlaylistChanges( const QList< Tomahawk::query_ptr >& orig, const QList< Tomahawk::query_ptr >& newTracks )
|
mergePlaylistChanges( const QList< Tomahawk::query_ptr >& orig, const QList< Tomahawk::query_ptr >& newTracks, bool& changed )
|
||||||
{
|
{
|
||||||
int sameCount = 0;
|
int sameCount = 0;
|
||||||
QList< Tomahawk::query_ptr > tosave = newTracks;
|
QList< Tomahawk::query_ptr > tosave = newTracks;
|
||||||
|
changed = false;
|
||||||
|
|
||||||
foreach ( const Tomahawk::query_ptr& newquery, newTracks )
|
foreach ( const Tomahawk::query_ptr& newquery, newTracks )
|
||||||
{
|
{
|
||||||
foreach ( const Tomahawk::query_ptr& oldq, orig )
|
foreach ( const Tomahawk::query_ptr& oldq, orig )
|
||||||
@@ -558,6 +560,7 @@ mergePlaylistChanges( const QList< Tomahawk::query_ptr >& orig, const QList< Tom
|
|||||||
if ( orig.size() == newTracks.size() && sameCount == orig.size() )
|
if ( orig.size() == newTracks.size() && sameCount == orig.size() )
|
||||||
return orig;
|
return orig;
|
||||||
|
|
||||||
|
changed = true;
|
||||||
return tosave;
|
return tosave;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@@ -110,7 +110,7 @@ namespace TomahawkUtils
|
|||||||
*
|
*
|
||||||
* \return true if some changes were made, false if the new tracks are the same as the current tracks in \param orig
|
* \return true if some changes were made, false if the new tracks are the same as the current tracks in \param orig
|
||||||
*/
|
*/
|
||||||
DLLEXPORT QList< Tomahawk::query_ptr > mergePlaylistChanges( const QList< Tomahawk::query_ptr >& orig, const QList< Tomahawk::query_ptr >& newTracks );
|
DLLEXPORT QList< Tomahawk::query_ptr > mergePlaylistChanges( const QList< Tomahawk::query_ptr >& orig, const QList< Tomahawk::query_ptr >& newTracks, bool& changed );
|
||||||
|
|
||||||
DLLEXPORT void crash();
|
DLLEXPORT void crash();
|
||||||
}
|
}
|
||||||
|
Reference in New Issue
Block a user