diff --git a/src/libtomahawk/playlist/treemodel.cpp b/src/libtomahawk/playlist/treemodel.cpp index 450e14895..25e0d05f0 100644 --- a/src/libtomahawk/playlist/treemodel.cpp +++ b/src/libtomahawk/playlist/treemodel.cpp @@ -271,6 +271,12 @@ TreeModel::data( const QModelIndex& index, int role ) const else if ( !entry->result().isNull() ) { const result_ptr& result = entry->result(); + unsigned int discnumber = 0; + if( !entry->query().isNull() ) + discnumber = entry->query()->discnumber(); + if( discnumber == 0 ) + discnumber = result->discnumber(); + unsigned int albumpos = 0; if ( !entry->query().isNull() ) albumpos = entry->query()->albumpos(); @@ -280,8 +286,9 @@ TreeModel::data( const QModelIndex& index, int role ) const switch( index.column() ) { case Name: - return QString( "%1%2" ).arg( albumpos > 0 ? QString( "%1. ").arg( albumpos ) : QString() ) - .arg( result->track() ); + return QString( "%1%2%3" ).arg( discnumber > 0 ? QString( "%1." ).arg( discnumber ) : QString() ) + .arg( albumpos > 0 ? QString( "%1. ").arg( albumpos ) : QString() ) + .arg( result->track() ); case Duration: return TomahawkUtils::timeToString( result->duration() ); @@ -310,6 +317,9 @@ TreeModel::data( const QModelIndex& index, int role ) const case AlbumPosition: return result->albumpos(); + case Composer: + return result->composer()->name(); + default: return QVariant(); } diff --git a/src/libtomahawk/playlist/treemodel.h b/src/libtomahawk/playlist/treemodel.h index 0e4d3cd11..2a7349452 100644 --- a/src/libtomahawk/playlist/treemodel.h +++ b/src/libtomahawk/playlist/treemodel.h @@ -50,7 +50,8 @@ public: Year, Filesize, Origin, - AlbumPosition + AlbumPosition, + Composer }; enum ColumnStyle diff --git a/src/libtomahawk/query.cpp b/src/libtomahawk/query.cpp index 3b1109e5b..8df9cd6f7 100644 --- a/src/libtomahawk/query.cpp +++ b/src/libtomahawk/query.cpp @@ -116,6 +116,7 @@ Query::init() m_playable = false; m_duration = -1; m_albumpos = 0; + m_discnumber = 0; updateSortNames(); } diff --git a/src/libtomahawk/taghandlers/tag.h b/src/libtomahawk/taghandlers/tag.h index 5f83b92f4..c1bf51ea2 100644 --- a/src/libtomahawk/taghandlers/tag.h +++ b/src/libtomahawk/taghandlers/tag.h @@ -57,7 +57,7 @@ public: //TODO: add support for writing those 3 items with TagLib's addField/setField protected: - Tag( TagLib::Tag *tag ) : m_tag( tag ) {} + Tag( TagLib::Tag *tag ) : m_tag( tag ), m_discNumber( 0 ) {} unsigned int processDiscNumber( const QString & ) const;