diff --git a/src/libtomahawk/playlist/PlayableModel.cpp b/src/libtomahawk/playlist/PlayableModel.cpp index eaf3328ab..bb669f138 100644 --- a/src/libtomahawk/playlist/PlayableModel.cpp +++ b/src/libtomahawk/playlist/PlayableModel.cpp @@ -1238,3 +1238,21 @@ PlayableModel::itemFromResult( const Tomahawk::result_ptr& result ) const tDebug() << "Could not find item for result:" << result->toString(); return 0; } + + +QModelIndex +PlayableModel::indexFromSource( const Tomahawk::source_ptr& source ) const +{ + for ( int i = 0; i < rowCount( QModelIndex() ); i++ ) + { + QModelIndex idx = index( i, 0, QModelIndex() ); + PlayableItem* item = itemFromIndex( idx ); + if ( item && item->source() == source ) + { + return idx; + } + } + + tDebug() << "Could not find item for source:" << source->friendlyName(); + return QModelIndex(); +} diff --git a/src/libtomahawk/playlist/PlayableModel.h b/src/libtomahawk/playlist/PlayableModel.h index 5a0db0a5c..bea3d20e4 100644 --- a/src/libtomahawk/playlist/PlayableModel.h +++ b/src/libtomahawk/playlist/PlayableModel.h @@ -124,6 +124,7 @@ public: virtual PlayableItem* itemFromIndex( const QModelIndex& index ) const; virtual PlayableItem* itemFromQuery( const Tomahawk::query_ptr& query ) const; virtual PlayableItem* itemFromResult( const Tomahawk::result_ptr& result ) const; + virtual QModelIndex indexFromSource( const Tomahawk::source_ptr& source ) const; /// Returns a flat list of all tracks in this model QList< Tomahawk::query_ptr > queries() const;