diff --git a/src/libtomahawk/database/databasecommand_allalbums.cpp b/src/libtomahawk/database/databasecommand_allalbums.cpp index 15aca3ed3..e0ab9b97e 100644 --- a/src/libtomahawk/database/databasecommand_allalbums.cpp +++ b/src/libtomahawk/database/databasecommand_allalbums.cpp @@ -44,10 +44,11 @@ DatabaseCommand_AllAlbums::execForArtist( DatabaseImpl* dbi ) QString sql = QString( "SELECT DISTINCT album.id, album.name " - "FROM album, file, file_join " + "FROM file, file_join " + "LEFT OUTER JOIN album " + "ON file_join.album = album.id " "WHERE file.id = file_join.file " - "AND file_join.album = album.id " - "AND album.artist = %1 " + "AND file_join.artist = %1 " "%2 " "%3 %4 %5" ).arg( m_artist->id() ) @@ -61,7 +62,14 @@ DatabaseCommand_AllAlbums::execForArtist( DatabaseImpl* dbi ) while( query.next() ) { - Tomahawk::album_ptr album = Tomahawk::Album::get( query.value( 0 ).toUInt(), query.value( 1 ).toString(), m_artist ); + unsigned int albumId = query.value( 0 ).toUInt(); + QString albumName; + if ( query.value( 0 ).isNull() ) + { + albumName = tr( "Unknown" ); + } + + Tomahawk::album_ptr album = Tomahawk::Album::get( albumId, albumName, m_artist ); al << album; } diff --git a/src/libtomahawk/database/databasecommand_alltracks.cpp b/src/libtomahawk/database/databasecommand_alltracks.cpp index 57ebf3afa..a6bcb7151 100644 --- a/src/libtomahawk/database/databasecommand_alltracks.cpp +++ b/src/libtomahawk/database/databasecommand_alltracks.cpp @@ -54,6 +54,12 @@ 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 ) + { + m_artist = m_album->artist().data(); + m_album = 0; + } + QString sql = QString( "SELECT file.id, artist.name, album.name, track.name, file.size, " "file.duration, file.bitrate, file.url, file.source, file.mtime, file.mimetype, file_join.albumpos, artist.id, album.id, track.id " diff --git a/src/libtomahawk/playlist/treeitemdelegate.cpp b/src/libtomahawk/playlist/treeitemdelegate.cpp index fcb453f73..50ac99979 100644 --- a/src/libtomahawk/playlist/treeitemdelegate.cpp +++ b/src/libtomahawk/playlist/treeitemdelegate.cpp @@ -67,7 +67,6 @@ TreeItemDelegate::paint( QPainter* painter, const QStyleOptionViewItem& option, else if ( !item->result().isNull() ) { float opacity = item->result()->score(); - opacity = qMax( (float)0.3, opacity ); QColor textColor = TomahawkUtils::alphaBlend( option.palette.color( QPalette::Foreground ), option.palette.color( QPalette::Background ), opacity ); @@ -77,9 +76,12 @@ TreeItemDelegate::paint( QPainter* painter, const QStyleOptionViewItem& option, o.palette.setColor( QPalette::Text, textColor ); return QStyledItemDelegate::paint( painter, o, index ); } - else - return QStyledItemDelegate::paint( painter, option, index ); } + else + return; + + if ( text.trimmed().isEmpty() ) + text = tr( "Unknown" ); QStyleOptionViewItemV4 opt = option; initStyleOption( &opt, QModelIndex() ); diff --git a/src/libtomahawk/playlist/treemodel.cpp b/src/libtomahawk/playlist/treemodel.cpp index ea8feb1c7..247735999 100644 --- a/src/libtomahawk/playlist/treemodel.cpp +++ b/src/libtomahawk/playlist/treemodel.cpp @@ -96,8 +96,6 @@ TreeModel::canFetchMore( const QModelIndex& parent ) const void TreeModel::fetchMore( const QModelIndex& parent ) { - qDebug() << Q_FUNC_INFO; - TreeModelItem* parentItem = itemFromIndex( parent ); if ( !parentItem || parentItem->fetchingMore ) return; @@ -105,16 +103,16 @@ TreeModel::fetchMore( const QModelIndex& parent ) parentItem->fetchingMore = true; if ( !parentItem->artist().isNull() ) { - qDebug() << "Artist" << parentItem->artist()->name(); + qDebug() << Q_FUNC_INFO << "Loading Artist:" << parentItem->artist()->name(); addAlbums( parentItem->artist(), parent ); } else if ( !parentItem->album().isNull() ) { - qDebug() << "Artist" << parentItem->album()->name(); + qDebug() << Q_FUNC_INFO << "Loading Album:" << parentItem->album()->name(); addTracks( parentItem->album(), parent ); } else - qDebug() << "Something else"; + Q_ASSERT( false ); } @@ -183,8 +181,12 @@ TreeModel::data( const QModelIndex& index, int role ) const { return QSize( 128, 32 ); } + else if ( !entry->artist().isNull() ) + { + return QSize( 128, 44 ); + } - return QSize( 128, 44 ); + return QSize( 128, 0 ); } if ( role != Qt::DisplayRole ) // && role != Qt::ToolTipRole ) @@ -371,7 +373,6 @@ TreeModel::addTracks( const album_ptr& album, const QModelIndex& parent ) QList< QVariant > rows; rows << parent.row(); rows << parent.parent().row(); - cmd->setData( QVariant( rows ) ); connect( cmd, SIGNAL( tracks( QList, QVariant ) ), @@ -438,7 +439,6 @@ TreeModel::onArtistsAdded( const QList& artists ) TreeModelItem* artistitem; foreach( const artist_ptr& artist, artists ) { - qDebug() << artist->name(); artistitem = new TreeModelItem( artist, m_rootItem ); artistitem->cover = m_defaultCover; artistitem->index = createIndex( m_rootItem->children.count() - 1, 0, artistitem ); @@ -470,7 +470,7 @@ TreeModel::onAlbumsAdded( const QList& albums, const QVaria if ( crows.second > 0 ) emit beginInsertRows( parent, crows.first + 1, crows.second ); - TreeModelItem* albumitem; + TreeModelItem* albumitem = 0; foreach( const album_ptr& album, albums ) { albumitem = new TreeModelItem( album, parentItem ); @@ -518,7 +518,7 @@ TreeModel::onTracksAdded( const QList& tracks, const QVaria if ( crows.second > 0 ) emit beginInsertRows( parent, crows.first + 1, crows.second ); - TreeModelItem* item; + TreeModelItem* item = 0; foreach( const query_ptr& query, tracks ) { qDebug() << query->toString(); @@ -541,7 +541,9 @@ TreeModel::onTracksAdded( const QList& tracks, const QVaria void TreeModel::infoSystemInfo( QString caller, Tomahawk::InfoSystem::InfoType type, QVariant input, QVariant output, Tomahawk::InfoSystem::InfoCustomData customData ) { + Q_UNUSED( customData ); qDebug() << Q_FUNC_INFO; + if ( caller != s_tmInfoIdentifier || type != Tomahawk::InfoSystem::InfoAlbumCoverArt ) { qDebug() << "Info of wrong type or not with our identifier"; @@ -578,6 +580,7 @@ TreeModel::infoSystemInfo( QString caller, Tomahawk::InfoSystem::InfoType type, void TreeModel::infoSystemFinished( QString target ) { + Q_UNUSED( target ); qDebug() << Q_FUNC_INFO; }