mirror of
https://github.com/tomahawk-player/tomahawk.git
synced 2025-03-23 17:29:42 +01:00
Speed up the loved tracks model
This commit is contained in:
parent
0c4db907b3
commit
ddfef98e20
@ -74,7 +74,7 @@ LovedTracksModel::loadTracks()
|
||||
}
|
||||
|
||||
DatabaseCommand_GenericSelect* cmd = new DatabaseCommand_GenericSelect( sql, DatabaseCommand_GenericSelect::Track, -1, 0 );
|
||||
connect( cmd, SIGNAL( tracks( QList<Tomahawk::query_ptr> ) ), this, SLOT( appendQueries( QList<Tomahawk::query_ptr> ) ) );
|
||||
connect( cmd, SIGNAL( tracks( QList<Tomahawk::query_ptr> ) ), this, SLOT( tracksLoaded( QList<Tomahawk::query_ptr> ) ) );
|
||||
Database::instance()->enqueue( QSharedPointer<DatabaseCommand>( cmd ) );
|
||||
}
|
||||
|
||||
@ -131,3 +131,26 @@ LovedTracksModel::isTemporary() const
|
||||
{
|
||||
return true;
|
||||
}
|
||||
|
||||
|
||||
void
|
||||
LovedTracksModel::tracksLoaded( QList< query_ptr > newLoved )
|
||||
{
|
||||
finishLoading();
|
||||
|
||||
QList< query_ptr > tracks;
|
||||
|
||||
foreach ( const plentry_ptr ple, playlistEntries() )
|
||||
tracks << ple->query();
|
||||
|
||||
bool changed = false;
|
||||
QList< query_ptr > mergedTracks = TomahawkUtils::mergePlaylistChanges( tracks, newLoved, changed );
|
||||
|
||||
if ( changed )
|
||||
{
|
||||
QList<Tomahawk::plentry_ptr> el = playlist()->entriesFromQueries( mergedTracks, true );
|
||||
|
||||
clear();
|
||||
appendEntries( el );
|
||||
}
|
||||
}
|
||||
|
@ -50,6 +50,7 @@ private slots:
|
||||
void onTrackLoved();
|
||||
void loadTracks();
|
||||
|
||||
void tracksLoaded( QList<Tomahawk::query_ptr> );
|
||||
private:
|
||||
Tomahawk::source_ptr m_source;
|
||||
unsigned int m_limit;
|
||||
|
@ -77,6 +77,7 @@ protected:
|
||||
bool waitForRevision( const QString& revisionguid ) const { return m_waitForRevision.contains( revisionguid ); }
|
||||
void removeFromWaitList( const QString& revisionguid ) { m_waitForRevision.removeAll( revisionguid ); }
|
||||
|
||||
QList<Tomahawk::plentry_ptr> playlistEntries() const;
|
||||
private slots:
|
||||
void onRevisionLoaded( Tomahawk::PlaylistRevision revision );
|
||||
void parsedDroppedTracks( QList<Tomahawk::query_ptr> );
|
||||
@ -86,8 +87,6 @@ private:
|
||||
void beginPlaylistChanges();
|
||||
void endPlaylistChanges();
|
||||
|
||||
QList<Tomahawk::plentry_ptr> playlistEntries() const;
|
||||
|
||||
Tomahawk::playlist_ptr m_playlist;
|
||||
bool m_isTemporary;
|
||||
bool m_changesOngoing;
|
||||
|
Loading…
x
Reference in New Issue
Block a user