diff --git a/src/libtomahawk/database/databasecommand_allalbums.cpp b/src/libtomahawk/database/databasecommand_allalbums.cpp index e0ab9b97e..55b2b7139 100644 --- a/src/libtomahawk/database/databasecommand_allalbums.cpp +++ b/src/libtomahawk/database/databasecommand_allalbums.cpp @@ -63,7 +63,7 @@ DatabaseCommand_AllAlbums::execForArtist( DatabaseImpl* dbi ) while( query.next() ) { unsigned int albumId = query.value( 0 ).toUInt(); - QString albumName; + QString albumName = query.value( 1 ).toString(); if ( query.value( 0 ).isNull() ) { albumName = tr( "Unknown" ); diff --git a/src/libtomahawk/database/databasecommand_alltracks.cpp b/src/libtomahawk/database/databasecommand_alltracks.cpp index a6bcb7151..01117751c 100644 --- a/src/libtomahawk/database/databasecommand_alltracks.cpp +++ b/src/libtomahawk/database/databasecommand_alltracks.cpp @@ -54,10 +54,16 @@ DatabaseCommand_AllTracks::exec( DatabaseImpl* dbi ) if ( !m_collection.isNull() ) sourceToken = QString( "AND file.source %1" ).arg( m_collection->source()->isLocal() ? "IS NULL" : QString( "= %1" ).arg( m_collection->source()->id() ) ); - if ( m_album && m_album->id() == 0 ) + QString albumToken; + if ( m_album ) { - m_artist = m_album->artist().data(); - m_album = 0; + if ( m_album->id() == 0 ) + { + m_artist = m_album->artist().data(); + albumToken = QString( "AND album.id IS NULL" ); + } + else + albumToken = QString( "AND album.id = %1" ).arg( m_album->id() ); } QString sql = QString( @@ -74,7 +80,7 @@ DatabaseCommand_AllTracks::exec( DatabaseImpl* dbi ) "%4 %5 %6" ).arg( sourceToken ) .arg( !m_artist ? QString() : QString( "AND artist.id = %1" ).arg( m_artist->id() ) ) - .arg( !m_album ? QString() : QString( "AND album.id = %1" ).arg( m_album->id() ) ) + .arg( !m_album ? QString() : albumToken ) .arg( m_sortOrder > 0 ? QString( "ORDER BY %1" ).arg( m_orderToken ) : QString() ) .arg( m_sortDescending ? "DESC" : QString() ) .arg( m_amount > 0 ? QString( "LIMIT 0, %1" ).arg( m_amount ) : QString() );