mirror of
https://github.com/tomahawk-player/tomahawk.git
synced 2025-08-07 14:46:33 +02:00
Expose name and isPlaying status in TreeModel
This commit is contained in:
@@ -49,6 +49,11 @@ TreeModel::TreeModel( QObject* parent )
|
|||||||
SLOT( infoSystemInfo( Tomahawk::InfoSystem::InfoRequestData, QVariant ) ) );
|
SLOT( infoSystemInfo( Tomahawk::InfoSystem::InfoRequestData, QVariant ) ) );
|
||||||
|
|
||||||
connect( Tomahawk::InfoSystem::InfoSystem::instance(), SIGNAL( finished( QString ) ), SLOT( infoSystemFinished( QString ) ) );
|
connect( Tomahawk::InfoSystem::InfoSystem::instance(), SIGNAL( finished( QString ) ), SLOT( infoSystemFinished( QString ) ) );
|
||||||
|
|
||||||
|
QHash<int, QByteArray> roles;
|
||||||
|
roles[NameRole] = "name";
|
||||||
|
roles[IsPlayingRole] = "isPlaying";
|
||||||
|
setRoleNames(roles);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@@ -277,17 +282,25 @@ TreeModel::data( const QModelIndex& index, int role ) const
|
|||||||
return QSize( 128, 0 );
|
return QSize( 128, 0 );
|
||||||
}
|
}
|
||||||
|
|
||||||
if ( role != Qt::DisplayRole ) // && role != Qt::ToolTipRole )
|
|
||||||
|
if ( role != Qt::DisplayRole && !roleNames().contains( role ) ) // && role != Qt::ToolTipRole )
|
||||||
return QVariant();
|
return QVariant();
|
||||||
|
|
||||||
if ( !entry->artist().isNull() && index.column() == Name )
|
if ( role == IsPlayingRole )
|
||||||
|
return entry->isPlaying();
|
||||||
|
|
||||||
|
if ( !entry->artist().isNull() && ( index.column() == Name || role == NameRole ) )
|
||||||
{
|
{
|
||||||
return entry->artist()->name();
|
return entry->artist()->name();
|
||||||
}
|
}
|
||||||
else if ( !entry->album().isNull() && index.column() == Name )
|
else if ( !entry->album().isNull() && ( index.column() == Name || role == NameRole ) )
|
||||||
{
|
{
|
||||||
return entry->album()->name();
|
return entry->album()->name();
|
||||||
}
|
}
|
||||||
|
else if ( role = NameRole )
|
||||||
|
{
|
||||||
|
return entry->result()->track();
|
||||||
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
const result_ptr& result = entry->result();
|
const result_ptr& result = entry->result();
|
||||||
|
@@ -50,6 +50,11 @@ public:
|
|||||||
AlbumPosition
|
AlbumPosition
|
||||||
};
|
};
|
||||||
|
|
||||||
|
enum Roles {
|
||||||
|
NameRole = Qt::UserRole + 1,
|
||||||
|
IsPlayingRole
|
||||||
|
};
|
||||||
|
|
||||||
enum ColumnStyle // Default style is AllColumns
|
enum ColumnStyle // Default style is AllColumns
|
||||||
{ AllColumns = 0, TrackOnly };
|
{ AllColumns = 0, TrackOnly };
|
||||||
|
|
||||||
|
Reference in New Issue
Block a user