diff --git a/src/sourcetree/items/collectionitem.cpp b/src/sourcetree/items/collectionitem.cpp index aceac1490..7d5fca06c 100644 --- a/src/sourcetree/items/collectionitem.cpp +++ b/src/sourcetree/items/collectionitem.cpp @@ -78,18 +78,21 @@ CollectionItem::CollectionItem( SourcesModel* mdl, SourceTreeItem* parent, cons SLOT( onStationsDeleted( QList ) ), Qt::QueuedConnection ); } + Tomahawk::source_ptr CollectionItem::source() const { return m_source; } + QString CollectionItem::text() const { return m_source.isNull() ? tr( "Super Collection" ) : m_source->friendlyName(); } + int CollectionItem::peerSortValue() const { @@ -114,6 +117,7 @@ CollectionItem::activate() } } + QIcon CollectionItem::icon() const { @@ -123,6 +127,7 @@ CollectionItem::icon() const return QIcon( RESPATH "images/user-avatar.png" ); } + void CollectionItem::playlistsAddedInternal( SourceTreeItem* parent, const QList< dynplaylist_ptr >& playlists ) { @@ -141,6 +146,7 @@ CollectionItem::playlistsAddedInternal( SourceTreeItem* parent, const QList< dyn parent->endRowsAdded(); } + template< typename T > void CollectionItem::playlistsDeletedInternal( SourceTreeItem* parent, const QList< T >& playlists ) @@ -165,6 +171,8 @@ CollectionItem::playlistsDeletedInternal( SourceTreeItem* parent, const QList< T void CollectionItem::onPlaylistsAdded( const QList< playlist_ptr >& playlists ) { + qDebug() << Q_FUNC_INFO << m_source->friendlyName() << playlists.count(); + if( playlists.isEmpty() ) return; @@ -190,12 +198,14 @@ CollectionItem::onPlaylistsAdded( const QList< playlist_ptr >& playlists ) m_playlists->endRowsAdded(); } + void CollectionItem::onPlaylistsDeleted( const QList< playlist_ptr >& playlists ) { playlistsDeletedInternal( m_playlists, playlists ); } + void CollectionItem::onAutoPlaylistsAdded( const QList< dynplaylist_ptr >& playlists ) { @@ -212,6 +222,7 @@ CollectionItem::onAutoPlaylistsAdded( const QList< dynplaylist_ptr >& playlists playlistsAddedInternal( m_playlists, playlists ); } + void CollectionItem::onAutoPlaylistsDeleted( const QList< dynplaylist_ptr >& playlists ) { @@ -221,6 +232,7 @@ CollectionItem::onAutoPlaylistsDeleted( const QList< dynplaylist_ptr >& playlist playlistsDeletedInternal( m_playlists, playlists ); } + void CollectionItem::onStationsAdded( const QList< dynplaylist_ptr >& stations ) { @@ -237,6 +249,7 @@ CollectionItem::onStationsAdded( const QList< dynplaylist_ptr >& stations ) playlistsAddedInternal( m_stations, stations ); } + void CollectionItem::onStationsDeleted( const QList< dynplaylist_ptr >& stations ) { diff --git a/src/sourcetree/items/playlistitems.cpp b/src/sourcetree/items/playlistitems.cpp index eb164df63..d9836a56c 100644 --- a/src/sourcetree/items/playlistitems.cpp +++ b/src/sourcetree/items/playlistitems.cpp @@ -23,9 +23,9 @@ #include "collectionitem.h" #include + using namespace Tomahawk; -/// PlaylistItem PlaylistItem::PlaylistItem( SourcesModel* mdl, SourceTreeItem* parent, const playlist_ptr& pl, int index ) : SourceTreeItem( mdl, parent, SourcesModel::StaticPlaylist, index ) @@ -33,9 +33,9 @@ PlaylistItem::PlaylistItem( SourcesModel* mdl, SourceTreeItem* parent, const pla , m_playlist( pl ) { connect( pl.data(), SIGNAL( revisionLoaded( Tomahawk::PlaylistRevision ) ), - SLOT( onPlaylistLoaded( Tomahawk::PlaylistRevision ) ), Qt::QueuedConnection ); + SLOT( onPlaylistLoaded( Tomahawk::PlaylistRevision ) ), Qt::QueuedConnection ); connect( pl.data(), SIGNAL( changed() ), - SIGNAL( updated() ), Qt::QueuedConnection ); + SIGNAL( updated() ), Qt::QueuedConnection ); if( ViewManager::instance()->pageForPlaylist( pl ) ) model()->linkSourceItemToPage( this, ViewManager::instance()->pageForPlaylist( pl ) ); @@ -48,11 +48,14 @@ PlaylistItem::text() const return m_playlist->title(); } + Tomahawk::playlist_ptr PlaylistItem::playlist() const { return m_playlist; } + + void PlaylistItem::onPlaylistLoaded( Tomahawk::PlaylistRevision revision ) { @@ -60,12 +63,14 @@ PlaylistItem::onPlaylistLoaded( Tomahawk::PlaylistRevision revision ) emit updated(); } + void PlaylistItem::onPlaylistChanged() { emit updated(); } + int PlaylistItem::peerSortValue() const { @@ -88,6 +93,7 @@ PlaylistItem::flags() const return flags; } + void PlaylistItem::activate() { @@ -95,12 +101,14 @@ PlaylistItem::activate() model()->linkSourceItemToPage( this, p ); } + void PlaylistItem::setLoaded( bool loaded ) { m_loaded = loaded; } + bool PlaylistItem::willAcceptDrag( const QMimeData* data ) const { @@ -170,12 +178,14 @@ PlaylistItem::dropMimeData( const QMimeData* data, Qt::DropAction action ) return false; } + QIcon PlaylistItem::icon() const { return QIcon( RESPATH "images/playlist-icon.png" ); } + bool PlaylistItem::setData(const QVariant& v, bool role) { @@ -187,6 +197,7 @@ PlaylistItem::setData(const QVariant& v, bool role) return false; } + DynamicPlaylistItem::DynamicPlaylistItem( SourcesModel* mdl, SourceTreeItem* parent, const dynplaylist_ptr& pl, int index ) : PlaylistItem( mdl, parent, pl.staticCast< Playlist >(), index ) , m_dynplaylist( pl ) @@ -200,10 +211,12 @@ DynamicPlaylistItem::DynamicPlaylistItem( SourcesModel* mdl, SourceTreeItem* par model()->linkSourceItemToPage( this, ViewManager::instance()->pageForDynPlaylist( pl ) ); } + DynamicPlaylistItem::~DynamicPlaylistItem() { } + void DynamicPlaylistItem::activate() { @@ -211,6 +224,7 @@ DynamicPlaylistItem::activate() model()->linkSourceItemToPage( this, p ); } + void DynamicPlaylistItem::onDynamicPlaylistLoaded( DynamicPlaylistRevision revision ) { @@ -220,6 +234,7 @@ DynamicPlaylistItem::onDynamicPlaylistLoaded( DynamicPlaylistRevision revision ) emit updated(); } + int DynamicPlaylistItem::peerSortValue() const { @@ -287,12 +302,14 @@ DynamicPlaylistItem::dynPlaylist() const return m_dynplaylist; } + QString DynamicPlaylistItem::text() const { return m_dynplaylist->title(); } + bool DynamicPlaylistItem::willAcceptDrag( const QMimeData* data ) const { diff --git a/src/sourcetree/sourcesmodel.cpp b/src/sourcetree/sourcesmodel.cpp index e0d666c08..8d688c2ab 100644 --- a/src/sourcetree/sourcesmodel.cpp +++ b/src/sourcetree/sourcesmodel.cpp @@ -54,6 +54,7 @@ SourcesModel::SourcesModel( QObject* parent ) connect( ViewManager::instance(), SIGNAL( viewPageActivated( Tomahawk::ViewPage* ) ), this, SLOT( viewPageActivated( Tomahawk::ViewPage* ) ) ); } + SourcesModel::~SourcesModel() { delete m_rootItem;