From 343053577497b36668cd4781bf0d3882f2b0dafb Mon Sep 17 00:00:00 2001 From: Jeff Mitchell Date: Fri, 9 Dec 2011 17:19:57 -0500 Subject: [PATCH] First bit of migrating PlaylistInterface* to playlistinterface_ptr Compiles, but need to fix up signals and slots --- src/libtomahawk/LatchManager.cpp | 4 +-- src/libtomahawk/audio/audioengine.cpp | 8 +++--- src/libtomahawk/audio/audioengine.h | 27 ++++++++---------- src/libtomahawk/globalactionmanager.cpp | 2 +- .../infoplugins/unix/mprisplugin.cpp | 28 +++++++++---------- src/libtomahawk/playlist/albumview.h | 2 +- src/libtomahawk/playlist/artistview.cpp | 2 +- src/libtomahawk/playlist/artistview.h | 10 ++++--- src/libtomahawk/playlist/collectionview.h | 2 +- .../dynamic/widgets/DynamicWidget.cpp | 4 +-- .../playlist/dynamic/widgets/DynamicWidget.h | 2 +- src/libtomahawk/playlist/playlistview.h | 2 +- src/libtomahawk/playlist/trackproxymodel.h | 2 +- src/libtomahawk/playlist/trackview.cpp | 2 +- src/libtomahawk/playlist/trackview.h | 4 +-- src/libtomahawk/playlistinterface.h | 8 ++---- src/libtomahawk/viewmanager.cpp | 14 +++++----- src/libtomahawk/viewmanager.h | 12 ++++---- src/libtomahawk/viewpage.h | 4 +-- .../widgets/SocialPlaylistWidget.cpp | 4 +-- .../widgets/SocialPlaylistWidget.h | 2 +- .../widgets/infowidgets/AlbumInfoWidget.cpp | 4 +-- .../widgets/infowidgets/AlbumInfoWidget.h | 4 +-- .../widgets/infowidgets/ArtistInfoWidget.cpp | 4 +-- .../widgets/infowidgets/ArtistInfoWidget.h | 2 +- .../widgets/infowidgets/sourceinfowidget.h | 2 +- src/libtomahawk/widgets/newplaylistwidget.h | 6 ++-- src/libtomahawk/widgets/searchwidget.h | 2 +- src/libtomahawk/widgets/welcomewidget.cpp | 6 ++-- src/libtomahawk/widgets/welcomewidget.h | 2 +- src/libtomahawk/widgets/whatshotwidget.cpp | 6 ++-- src/libtomahawk/widgets/whatshotwidget.h | 10 +++---- src/tomahawkwindow.cpp | 2 +- 33 files changed, 94 insertions(+), 101 deletions(-) diff --git a/src/libtomahawk/LatchManager.cpp b/src/libtomahawk/LatchManager.cpp index f596f009e..39e6357d7 100644 --- a/src/libtomahawk/LatchManager.cpp +++ b/src/libtomahawk/LatchManager.cpp @@ -58,7 +58,7 @@ LatchManager::latchRequest( const source_ptr& source ) m_state = Latching; m_waitingForLatch = source; - AudioEngine::instance()->playItem( source->getPlaylistInterface().data(), source->getPlaylistInterface()->nextItem() ); + AudioEngine::instance()->playItem( source->getPlaylistInterface(), source->getPlaylistInterface()->nextItem() ); } void @@ -133,7 +133,7 @@ LatchManager::unlatchRequest( const source_ptr& source ) { Q_UNUSED( source ); AudioEngine::instance()->stop(); - AudioEngine::instance()->setPlaylist( 0 ); + AudioEngine::instance()->setPlaylist( Tomahawk::playlistinterface_ptr() ); ActionCollection::instance()->getAction( "latchOn" )->setText( tr( "&Listen Along" ) ); } diff --git a/src/libtomahawk/audio/audioengine.cpp b/src/libtomahawk/audio/audioengine.cpp index 2a4a8bfc7..74ba77e38 100644 --- a/src/libtomahawk/audio/audioengine.cpp +++ b/src/libtomahawk/audio/audioengine.cpp @@ -554,7 +554,7 @@ AudioEngine::loadNextTrack() void -AudioEngine::playItem( Tomahawk::PlaylistInterface* playlist, const Tomahawk::result_ptr& result ) +AudioEngine::playItem( Tomahawk::playlistinterface_ptr playlist, const Tomahawk::result_ptr& result ) { tDebug( LOGEXTRA ) << Q_FUNC_INFO << ( result.isNull() ? QString() : result->url() ); @@ -678,7 +678,7 @@ AudioEngine::timerTriggered( qint64 time ) void -AudioEngine::setPlaylist( PlaylistInterface* playlist ) +AudioEngine::setPlaylist( Tomahawk::playlistinterface_ptr playlist ) { if ( !m_playlist.isNull() ) { @@ -687,14 +687,14 @@ AudioEngine::setPlaylist( PlaylistInterface* playlist ) m_playlist.data()->reset(); } - if ( !playlist ) + if ( !playlist.isNull() ) { m_playlist.clear(); emit playlistChanged( playlist ); return; } - m_playlist = playlist->getSharedPointer(); + m_playlist = playlist.data()->getSharedPointer(); if ( m_playlist.data()->object() && m_playlist.data()->retryMode() == PlaylistInterface::Retry ) connect( m_playlist.data()->object(), SIGNAL( nextTrackReady() ), SLOT( playlistNextTrackReady() ) ); diff --git a/src/libtomahawk/audio/audioengine.h b/src/libtomahawk/audio/audioengine.h index d90db5f27..c65ae3e5e 100644 --- a/src/libtomahawk/audio/audioengine.h +++ b/src/libtomahawk/audio/audioengine.h @@ -19,8 +19,8 @@ #ifndef AUDIOENGINE_H #define AUDIOENGINE_H -#include -#include +#include +#include #include #include @@ -30,15 +30,12 @@ #include "result.h" #include "typedefs.h" +#include "playlistinterface.h" #include "dllmacro.h" #define AUDIO_VOLUME_STEP 5 -namespace Tomahawk -{ - class PlaylistInterface; -} class DLLEXPORT AudioEngine : public QObject { @@ -62,10 +59,10 @@ public: bool isStopped() const { return m_state == Stopped; } /* Returns the PlaylistInterface of the currently playing track. Note: This might be different to the current playlist! */ - Tomahawk::PlaylistInterface* currentTrackPlaylist() const { return m_currentTrackPlaylist.data(); } + Tomahawk::playlistinterface_ptr currentTrackPlaylist() const { return m_currentTrackPlaylist; } /* Returns the PlaylistInterface of the current playlist. Note: The currently playing track might still be from a different playlist! */ - Tomahawk::PlaylistInterface* playlist() const { return m_playlist.data(); } + Tomahawk::playlistinterface_ptr playlist() const { return m_playlist; } Tomahawk::result_ptr currentTrack() const { return m_currentTrack; } @@ -93,9 +90,9 @@ public slots: void onVolumeChanged( qreal volume ) { emit volumeChanged( volume * 100 ); } void mute(); - void playItem( Tomahawk::PlaylistInterface* playlist, const Tomahawk::result_ptr& result ); - void setPlaylist( Tomahawk::PlaylistInterface* playlist ); - void setQueue( Tomahawk::PlaylistInterface* queue ) { m_queue = queue; } + void playItem( Tomahawk::playlistinterface_ptr playlist, const Tomahawk::result_ptr& result ); + void setPlaylist( Tomahawk::playlistinterface_ptr playlist ); + void setQueue( Tomahawk::playlistinterface_ptr queue ) { m_queue = queue.data()->getSharedPointer(); } void playlistNextTrackReady(); @@ -119,7 +116,7 @@ signals: void timerSeconds( unsigned int secondsElapsed ); void timerPercentage( unsigned int percentage ); - void playlistChanged( Tomahawk::PlaylistInterface* playlist ); + void playlistChanged( Tomahawk::playlistinterface_ptr playlist ); void error( AudioEngine::AudioErrorCode errorCode ); @@ -147,9 +144,9 @@ private: Tomahawk::result_ptr m_currentTrack; Tomahawk::result_ptr m_lastTrack; - QWeakPointer< Tomahawk::PlaylistInterface > m_playlist; - QWeakPointer< Tomahawk::PlaylistInterface > m_currentTrackPlaylist; - Tomahawk::PlaylistInterface* m_queue; + Tomahawk::playlistinterface_ptr m_playlist; + Tomahawk::playlistinterface_ptr m_currentTrackPlaylist; + Tomahawk::playlistinterface_ptr m_queue; Phonon::MediaObject* m_mediaObject; Phonon::AudioOutput* m_audioOutput; diff --git a/src/libtomahawk/globalactionmanager.cpp b/src/libtomahawk/globalactionmanager.cpp index 9ba2479d6..767b41157 100644 --- a/src/libtomahawk/globalactionmanager.cpp +++ b/src/libtomahawk/globalactionmanager.cpp @@ -1012,7 +1012,7 @@ GlobalActionManager::waitingForResolved( bool /* success */ ) // AudioEngine::instance()->playItem( AudioEngine::instance()->playlist(), m_waitingToPlay->results().first() ); if ( sender() && sender()->property( "playNow" ).toBool() ) { - if ( AudioEngine::instance()->playlist() ) + if ( !AudioEngine::instance()->playlist().isNull() ) AudioEngine::instance()->playItem( AudioEngine::instance()->playlist(), m_waitingToPlay->results().first() ); else { diff --git a/src/libtomahawk/infosystem/infoplugins/unix/mprisplugin.cpp b/src/libtomahawk/infosystem/infoplugins/unix/mprisplugin.cpp index 9067e5669..837da0ed2 100644 --- a/src/libtomahawk/infosystem/infoplugins/unix/mprisplugin.cpp +++ b/src/libtomahawk/infosystem/infoplugins/unix/mprisplugin.cpp @@ -66,8 +66,8 @@ MprisPlugin::MprisPlugin() SLOT( onPlaylistChanged( Tomahawk::PlaylistInterface* ) ) ); // When a track is added or removed, CanGoNext updated signal is sent - PlaylistInterface *playlist = AudioEngine::instance()->playlist(); - if( playlist ) + Tomahawk::playlistinterface_ptr playlist = AudioEngine::instance()->playlist(); + if( !playlist.isNull() ) connect( playlist->object(), SIGNAL( trackCountChanged( unsigned int ) ), SLOT( onTrackCountChanged( unsigned int ) ) ); @@ -182,15 +182,15 @@ bool MprisPlugin::canPlay() const { // If there is a currently playing track, or if there is a playlist with at least 1 track, you can hit play - PlaylistInterface *p = AudioEngine::instance()->playlist(); - return AudioEngine::instance()->currentTrack() || ( p && p->trackCount() ); + Tomahawk::playlistinterface_ptr p = AudioEngine::instance()->playlist(); + return AudioEngine::instance()->currentTrack() || ( !p.isNull() && p->trackCount() ); } bool MprisPlugin::canSeek() const { - PlaylistInterface *p = AudioEngine::instance()->playlist(); - if (!p) + Tomahawk::playlistinterface_ptr p = AudioEngine::instance()->playlist(); + if ( p.isNull() ) return false; return p->seekRestrictions() != PlaylistInterface::NoSeek; @@ -199,8 +199,8 @@ MprisPlugin::canSeek() const QString MprisPlugin::loopStatus() const { - PlaylistInterface *p = AudioEngine::instance()->playlist(); - if (!p) + Tomahawk::playlistinterface_ptr p = AudioEngine::instance()->playlist(); + if ( p.isNull() ) return "None"; PlaylistInterface::RepeatMode mode = p->repeatMode(); switch( mode ) @@ -225,8 +225,8 @@ MprisPlugin::loopStatus() const void MprisPlugin::setLoopStatus( const QString &value ) { - PlaylistInterface *p = AudioEngine::instance()->playlist(); - if (!p) + Tomahawk::playlistinterface_ptr p = AudioEngine::instance()->playlist(); + if ( p.isNull() ) return; if( value == "Track") p->setRepeatMode( PlaylistInterface::RepeatOne ); @@ -314,8 +314,8 @@ MprisPlugin::setRate( double value ) bool MprisPlugin::shuffle() const { - PlaylistInterface *p = AudioEngine::instance()->playlist(); - if (!p) + Tomahawk::playlistinterface_ptr p = AudioEngine::instance()->playlist(); + if ( p.isNull() ) return false; return p->shuffled(); } @@ -323,8 +323,8 @@ MprisPlugin::shuffle() const void MprisPlugin::setShuffle( bool value ) { - PlaylistInterface *p = AudioEngine::instance()->playlist(); - if (!p) + Tomahawk::playlistinterface_ptr p = AudioEngine::instance()->playlist(); + if ( p.isNull() ) return; return p->setShuffled( value ); } diff --git a/src/libtomahawk/playlist/albumview.h b/src/libtomahawk/playlist/albumview.h index 5599b68e5..84ad7d1f2 100644 --- a/src/libtomahawk/playlist/albumview.h +++ b/src/libtomahawk/playlist/albumview.h @@ -53,7 +53,7 @@ public: void setModel( QAbstractItemModel* model ); virtual QWidget* widget() { return this; } - virtual Tomahawk::PlaylistInterface* playlistInterface() const { return proxyModel(); } + virtual Tomahawk::playlistinterface_ptr playlistInterface() const { return proxyModel()->getSharedPointer(); } virtual QString title() const { return m_model->title(); } virtual QString description() const { return m_model->description(); } diff --git a/src/libtomahawk/playlist/artistview.cpp b/src/libtomahawk/playlist/artistview.cpp index df24db5d0..029de502f 100644 --- a/src/libtomahawk/playlist/artistview.cpp +++ b/src/libtomahawk/playlist/artistview.cpp @@ -188,7 +188,7 @@ ArtistView::onItemActivated( const QModelIndex& index ) else if ( !item->result().isNull() && item->result()->isOnline() ) { m_model->setCurrentItem( item->index ); - AudioEngine::instance()->playItem( m_proxyModel, item->result() ); + AudioEngine::instance()->playItem( m_proxyModel->getSharedPointer(), item->result() ); } } } diff --git a/src/libtomahawk/playlist/artistview.h b/src/libtomahawk/playlist/artistview.h index 623494c21..65fb145e8 100644 --- a/src/libtomahawk/playlist/artistview.h +++ b/src/libtomahawk/playlist/artistview.h @@ -19,13 +19,15 @@ #ifndef ARTISTVIEW_H #define ARTISTVIEW_H -#include -#include -#include +#include +#include +#include #include "treeproxymodel.h" #include "viewpage.h" +#include "playlistinterface.h" + #include "dllmacro.h" namespace Tomahawk @@ -60,7 +62,7 @@ public: void setTreeModel( TreeModel* model ); virtual QWidget* widget() { return this; } - virtual Tomahawk::PlaylistInterface* playlistInterface() const { return proxyModel(); } + virtual Tomahawk::playlistinterface_ptr playlistInterface() const { return proxyModel()->getSharedPointer(); } virtual QString title() const { return m_model->title(); } virtual QString description() const { return m_model->description(); } diff --git a/src/libtomahawk/playlist/collectionview.h b/src/libtomahawk/playlist/collectionview.h index 3109c77d7..867fb7431 100644 --- a/src/libtomahawk/playlist/collectionview.h +++ b/src/libtomahawk/playlist/collectionview.h @@ -39,7 +39,7 @@ public: virtual void setModel( QAbstractItemModel* model ); virtual QWidget* widget() { return this; } - virtual Tomahawk::PlaylistInterface* playlistInterface() const { return proxyModel(); } + virtual Tomahawk::playlistinterface_ptr playlistInterface() const { return proxyModel()->getSharedPointer(); } virtual QString title() const { return model()->title(); } virtual QString description() const { return model()->description(); } diff --git a/src/libtomahawk/playlist/dynamic/widgets/DynamicWidget.cpp b/src/libtomahawk/playlist/dynamic/widgets/DynamicWidget.cpp index dffcdbf49..104729c20 100644 --- a/src/libtomahawk/playlist/dynamic/widgets/DynamicWidget.cpp +++ b/src/libtomahawk/playlist/dynamic/widgets/DynamicWidget.cpp @@ -200,10 +200,10 @@ DynamicWidget::onRevisionLoaded( const Tomahawk::DynamicPlaylistRevision& rev ) } -PlaylistInterface* +Tomahawk::playlistinterface_ptr DynamicWidget::playlistInterface() const { - return m_view->proxyModel(); + return m_view->proxyModel()->getSharedPointer(); } diff --git a/src/libtomahawk/playlist/dynamic/widgets/DynamicWidget.h b/src/libtomahawk/playlist/dynamic/widgets/DynamicWidget.h index 659e42963..28ebf8c5f 100644 --- a/src/libtomahawk/playlist/dynamic/widgets/DynamicWidget.h +++ b/src/libtomahawk/playlist/dynamic/widgets/DynamicWidget.h @@ -62,7 +62,7 @@ public: void loadDynamicPlaylist( const dynplaylist_ptr& playlist ); dynplaylist_ptr playlist(); - virtual PlaylistInterface* playlistInterface() const; + virtual Tomahawk::playlistinterface_ptr playlistInterface() const; virtual QSize sizeHint() const; virtual void resizeEvent( QResizeEvent* ); diff --git a/src/libtomahawk/playlist/playlistview.h b/src/libtomahawk/playlist/playlistview.h index d2b1d56d9..2bdaac084 100644 --- a/src/libtomahawk/playlist/playlistview.h +++ b/src/libtomahawk/playlist/playlistview.h @@ -38,7 +38,7 @@ public: virtual void setModel( QAbstractItemModel* model ); virtual QWidget* widget() { return this; } - virtual Tomahawk::PlaylistInterface* playlistInterface() const { return proxyModel(); } + virtual Tomahawk::playlistinterface_ptr playlistInterface() const { return proxyModel()->getSharedPointer(); } virtual bool showFilter() const { return true; } diff --git a/src/libtomahawk/playlist/trackproxymodel.h b/src/libtomahawk/playlist/trackproxymodel.h index 862929965..9c485b462 100644 --- a/src/libtomahawk/playlist/trackproxymodel.h +++ b/src/libtomahawk/playlist/trackproxymodel.h @@ -19,7 +19,7 @@ #ifndef TRACKPROXYMODEL_H #define TRACKPROXYMODEL_H -#include +#include #include "playlistinterface.h" #include "playlist/trackmodel.h" diff --git a/src/libtomahawk/playlist/trackview.cpp b/src/libtomahawk/playlist/trackview.cpp index 840f8d131..4b5a028b0 100644 --- a/src/libtomahawk/playlist/trackview.cpp +++ b/src/libtomahawk/playlist/trackview.cpp @@ -182,7 +182,7 @@ TrackView::onItemActivated( const QModelIndex& index ) { tDebug() << "Result activated:" << item->query()->toString() << item->query()->results().first()->url(); m_proxyModel->setCurrentIndex( index ); - AudioEngine::instance()->playItem( m_proxyModel, item->query()->results().first() ); + AudioEngine::instance()->playItem( m_proxyModel->getSharedPointer(), item->query()->results().first() ); } emit itemActivated( index ); diff --git a/src/libtomahawk/playlist/trackview.h b/src/libtomahawk/playlist/trackview.h index dc7df9d35..45bb1b23c 100644 --- a/src/libtomahawk/playlist/trackview.h +++ b/src/libtomahawk/playlist/trackview.h @@ -19,8 +19,8 @@ #ifndef TRACKVIEW_H #define TRACKVIEW_H -#include -#include +#include +#include #include "contextmenu.h" #include "playlistitemdelegate.h" diff --git a/src/libtomahawk/playlistinterface.h b/src/libtomahawk/playlistinterface.h index c6017f197..88909f2c4 100644 --- a/src/libtomahawk/playlistinterface.h +++ b/src/libtomahawk/playlistinterface.h @@ -69,19 +69,15 @@ public: // Some playlist interfaces can wrap other interfaces. When checking for top-level // equality (say, to compare the currently playing interface) this might be needed - virtual bool hasChildInterface( PlaylistInterface* ) { return false; } + virtual bool hasChildInterface( Tomahawk::playlistinterface_ptr ) { return false; } QObject* object() const { return m_object; } - static void dontDelete( Tomahawk::PlaylistInterface* obj ) - { - tDebug() << Q_FUNC_INFO << obj; - } virtual Tomahawk::playlistinterface_ptr getSharedPointer() { if ( m_sharedPtr.isNull() ) { - m_sharedPtr = Tomahawk::playlistinterface_ptr( this, dontDelete ); + m_sharedPtr = Tomahawk::playlistinterface_ptr( this ); } return m_sharedPtr; diff --git a/src/libtomahawk/viewmanager.cpp b/src/libtomahawk/viewmanager.cpp index 2841f39a1..4937aad4f 100644 --- a/src/libtomahawk/viewmanager.cpp +++ b/src/libtomahawk/viewmanager.cpp @@ -388,7 +388,7 @@ ViewManager::showSuperCollection() void -ViewManager::playlistInterfaceChanged( Tomahawk::PlaylistInterface* interface ) +ViewManager::playlistInterfaceChanged( Tomahawk::playlistinterface_ptr interface ) { playlist_ptr pl = playlistForInterface( interface ); if ( !pl.isNull() ) @@ -813,7 +813,7 @@ ViewManager::pageForPlaylist(const playlist_ptr& pl) const ViewPage* -ViewManager::pageForInterface( Tomahawk::PlaylistInterface* interface ) const +ViewManager::pageForInterface( Tomahawk::playlistinterface_ptr interface ) const { for ( int i = 0; i < m_pageHistory.count(); i++ ) { @@ -827,13 +827,13 @@ ViewManager::pageForInterface( Tomahawk::PlaylistInterface* interface ) const return 0; } -PlaylistInterface* +Tomahawk::playlistinterface_ptr ViewManager::currentPlaylistInterface() const { if ( currentPage() ) return currentPage()->playlistInterface(); else - return 0; + return Tomahawk::playlistinterface_ptr(); } @@ -844,7 +844,7 @@ ViewManager::currentPage() const } Tomahawk::playlist_ptr -ViewManager::playlistForInterface( Tomahawk::PlaylistInterface* interface ) const +ViewManager::playlistForInterface( Tomahawk::playlistinterface_ptr interface ) const { foreach ( QWeakPointer view, m_playlistViews.values() ) { @@ -859,7 +859,7 @@ ViewManager::playlistForInterface( Tomahawk::PlaylistInterface* interface ) cons Tomahawk::dynplaylist_ptr -ViewManager::dynamicPlaylistForInterface( Tomahawk::PlaylistInterface* interface ) const +ViewManager::dynamicPlaylistForInterface( Tomahawk::playlistinterface_ptr interface ) const { foreach ( QWeakPointer view, m_dynamicWidgets.values() ) { @@ -874,7 +874,7 @@ ViewManager::dynamicPlaylistForInterface( Tomahawk::PlaylistInterface* interface Tomahawk::collection_ptr -ViewManager::collectionForInterface( Tomahawk::PlaylistInterface* interface ) const +ViewManager::collectionForInterface( Tomahawk::playlistinterface_ptr interface ) const { foreach ( QWeakPointer view, m_collectionViews.values() ) { diff --git a/src/libtomahawk/viewmanager.h b/src/libtomahawk/viewmanager.h index 3c2bed9a6..8b21dc406 100644 --- a/src/libtomahawk/viewmanager.h +++ b/src/libtomahawk/viewmanager.h @@ -82,9 +82,9 @@ public: bool isSuperCollectionVisible() const; bool isNewPlaylistPageVisible() const; - Tomahawk::PlaylistInterface* currentPlaylistInterface() const; + Tomahawk::playlistinterface_ptr currentPlaylistInterface() const; Tomahawk::ViewPage* currentPage() const; - Tomahawk::ViewPage* pageForInterface( Tomahawk::PlaylistInterface* interface ) const; + Tomahawk::ViewPage* pageForInterface( Tomahawk::playlistinterface_ptr interface ) const; Tomahawk::ViewPage* show( Tomahawk::ViewPage* page ); @@ -156,7 +156,7 @@ public slots: void setRepeatMode( Tomahawk::PlaylistInterface::RepeatMode mode ); void setShuffled( bool enabled ); - void playlistInterfaceChanged( Tomahawk::PlaylistInterface* ); + void playlistInterfaceChanged( Tomahawk::playlistinterface_ptr ); // called by the playlist creation dbcmds void createPlaylist( const Tomahawk::source_ptr& src, const QVariant& contents ); @@ -177,9 +177,9 @@ private: void saveCurrentPlaylistSettings(); void loadCurrentPlaylistSettings(); - Tomahawk::playlist_ptr playlistForInterface( Tomahawk::PlaylistInterface* interface ) const; - Tomahawk::dynplaylist_ptr dynamicPlaylistForInterface( Tomahawk::PlaylistInterface* interface ) const; - Tomahawk::collection_ptr collectionForInterface( Tomahawk::PlaylistInterface* interface ) const; + Tomahawk::playlist_ptr playlistForInterface( Tomahawk::playlistinterface_ptr interface ) const; + Tomahawk::dynplaylist_ptr dynamicPlaylistForInterface( Tomahawk::playlistinterface_ptr interface ) const; + Tomahawk::collection_ptr collectionForInterface( Tomahawk::playlistinterface_ptr interface ) const; QWidget* m_widget; InfoBar* m_infobar; diff --git a/src/libtomahawk/viewpage.h b/src/libtomahawk/viewpage.h index 72726f57e..9b0b0a199 100644 --- a/src/libtomahawk/viewpage.h +++ b/src/libtomahawk/viewpage.h @@ -25,7 +25,7 @@ #include "album.h" #include "utils/tomahawkutils.h" -#include +#include namespace Tomahawk { @@ -43,7 +43,7 @@ public: virtual ~ViewPage() {} virtual QWidget* widget() = 0; - virtual Tomahawk::PlaylistInterface* playlistInterface() const = 0; + virtual Tomahawk::playlistinterface_ptr playlistInterface() const = 0; virtual QString title() const = 0; diff --git a/src/libtomahawk/widgets/SocialPlaylistWidget.cpp b/src/libtomahawk/widgets/SocialPlaylistWidget.cpp index ea45f1aec..56d7cef02 100644 --- a/src/libtomahawk/widgets/SocialPlaylistWidget.cpp +++ b/src/libtomahawk/widgets/SocialPlaylistWidget.cpp @@ -115,10 +115,10 @@ SocialPlaylistWidget::fetchFromDB() } -PlaylistInterface* +Tomahawk::playlistinterface_ptr SocialPlaylistWidget::playlistInterface() const { - return 0; + return Tomahawk::playlistinterface_ptr(); } diff --git a/src/libtomahawk/widgets/SocialPlaylistWidget.h b/src/libtomahawk/widgets/SocialPlaylistWidget.h index 50549c33c..e8f109bdb 100644 --- a/src/libtomahawk/widgets/SocialPlaylistWidget.h +++ b/src/libtomahawk/widgets/SocialPlaylistWidget.h @@ -55,7 +55,7 @@ public: ~SocialPlaylistWidget(); virtual QWidget* widget() { return this; } - virtual Tomahawk::PlaylistInterface* playlistInterface() const; + virtual Tomahawk::playlistinterface_ptr playlistInterface() const; virtual QString title() const { return m_title; } virtual QString description() const { return m_description; } diff --git a/src/libtomahawk/widgets/infowidgets/AlbumInfoWidget.cpp b/src/libtomahawk/widgets/infowidgets/AlbumInfoWidget.cpp index cad3c9785..54b98d0b2 100644 --- a/src/libtomahawk/widgets/infowidgets/AlbumInfoWidget.cpp +++ b/src/libtomahawk/widgets/infowidgets/AlbumInfoWidget.cpp @@ -99,10 +99,10 @@ AlbumInfoWidget::~AlbumInfoWidget() } -PlaylistInterface* +Tomahawk::playlistinterface_ptr AlbumInfoWidget::playlistInterface() const { - return ui->tracksView->playlistInterface(); + return ui->tracksView->playlistInterface()->getSharedPointer(); } diff --git a/src/libtomahawk/widgets/infowidgets/AlbumInfoWidget.h b/src/libtomahawk/widgets/infowidgets/AlbumInfoWidget.h index 9c849ec0a..56ce5dc4e 100644 --- a/src/libtomahawk/widgets/infowidgets/AlbumInfoWidget.h +++ b/src/libtomahawk/widgets/infowidgets/AlbumInfoWidget.h @@ -28,7 +28,7 @@ #ifndef ALBUMINFOWIDGET_H #define ALBUMINFOWIDGET_H -#include +#include #include "playlistinterface.h" #include "viewpage.h" @@ -55,7 +55,7 @@ public: ~AlbumInfoWidget(); virtual QWidget* widget() { return this; } - virtual Tomahawk::PlaylistInterface* playlistInterface() const; + virtual Tomahawk::playlistinterface_ptr playlistInterface() const; virtual QString title() const { return m_title; } virtual DescriptionType descriptionType(); diff --git a/src/libtomahawk/widgets/infowidgets/ArtistInfoWidget.cpp b/src/libtomahawk/widgets/infowidgets/ArtistInfoWidget.cpp index daf9be42b..f24187c3b 100644 --- a/src/libtomahawk/widgets/infowidgets/ArtistInfoWidget.cpp +++ b/src/libtomahawk/widgets/infowidgets/ArtistInfoWidget.cpp @@ -102,10 +102,10 @@ ArtistInfoWidget::~ArtistInfoWidget() } -PlaylistInterface* +Tomahawk::playlistinterface_ptr ArtistInfoWidget::playlistInterface() const { - return m_plInterface; + return m_plInterface->getSharedPointer(); } diff --git a/src/libtomahawk/widgets/infowidgets/ArtistInfoWidget.h b/src/libtomahawk/widgets/infowidgets/ArtistInfoWidget.h index 72e5fb815..3a3815088 100644 --- a/src/libtomahawk/widgets/infowidgets/ArtistInfoWidget.h +++ b/src/libtomahawk/widgets/infowidgets/ArtistInfoWidget.h @@ -68,7 +68,7 @@ public: void load( const Tomahawk::artist_ptr& artist ); virtual QWidget* widget() { return this; } - virtual Tomahawk::PlaylistInterface* playlistInterface() const; + virtual Tomahawk::playlistinterface_ptr playlistInterface() const; virtual QString title() const { return m_title; } virtual QString description() const { return m_description; } diff --git a/src/libtomahawk/widgets/infowidgets/sourceinfowidget.h b/src/libtomahawk/widgets/infowidgets/sourceinfowidget.h index 7d849004c..eb1817aba 100644 --- a/src/libtomahawk/widgets/infowidgets/sourceinfowidget.h +++ b/src/libtomahawk/widgets/infowidgets/sourceinfowidget.h @@ -44,7 +44,7 @@ public: ~SourceInfoWidget(); virtual QWidget* widget() { return this; } - virtual Tomahawk::PlaylistInterface* playlistInterface() const { return 0; } + virtual Tomahawk::playlistinterface_ptr playlistInterface() const { return Tomahawk::playlistinterface_ptr(); } virtual QString title() const { return m_title; } virtual QString description() const { return m_description; } diff --git a/src/libtomahawk/widgets/newplaylistwidget.h b/src/libtomahawk/widgets/newplaylistwidget.h index 8d99a154c..56bfa9134 100644 --- a/src/libtomahawk/widgets/newplaylistwidget.h +++ b/src/libtomahawk/widgets/newplaylistwidget.h @@ -19,8 +19,8 @@ #ifndef NEWPLAYLISTWIDGET_H #define NEWPLAYLISTWIDGET_H -#include -#include +#include +#include #include "playlistinterface.h" #include "viewpage.h" @@ -44,7 +44,7 @@ public: ~NewPlaylistWidget(); virtual QWidget* widget() { return this; } - virtual Tomahawk::PlaylistInterface* playlistInterface() const { return 0; } + virtual Tomahawk::playlistinterface_ptr playlistInterface() const { return Tomahawk::playlistinterface_ptr(); } virtual QString title() const { return tr( "Create a new playlist" ); } virtual QString description() const { return QString(); } diff --git a/src/libtomahawk/widgets/searchwidget.h b/src/libtomahawk/widgets/searchwidget.h index 9c00a3469..b16f3611f 100644 --- a/src/libtomahawk/widgets/searchwidget.h +++ b/src/libtomahawk/widgets/searchwidget.h @@ -46,7 +46,7 @@ public: ~SearchWidget(); virtual QWidget* widget() { return this; } - virtual Tomahawk::PlaylistInterface* playlistInterface() const { return 0; } + virtual Tomahawk::playlistinterface_ptr playlistInterface() const { return Tomahawk::playlistinterface_ptr(); } virtual bool isTemporaryPage() const { return true; } virtual QString title() const { return QString( tr( "Search: %1" ) ).arg( m_search ); } diff --git a/src/libtomahawk/widgets/welcomewidget.cpp b/src/libtomahawk/widgets/welcomewidget.cpp index 5ac2f5581..c5f02dbdb 100644 --- a/src/libtomahawk/widgets/welcomewidget.cpp +++ b/src/libtomahawk/widgets/welcomewidget.cpp @@ -20,7 +20,7 @@ #include "welcomewidget.h" #include "ui_welcomewidget.h" -#include +#include #include "viewmanager.h" #include "sourcelist.h" @@ -98,10 +98,10 @@ WelcomeWidget::~WelcomeWidget() } -PlaylistInterface* +Tomahawk::playlistinterface_ptr WelcomeWidget::playlistInterface() const { - return ui->tracksView->playlistInterface(); + return ui->tracksView->playlistInterface()->getSharedPointer(); } diff --git a/src/libtomahawk/widgets/welcomewidget.h b/src/libtomahawk/widgets/welcomewidget.h index bbbb754bf..f3356080d 100644 --- a/src/libtomahawk/widgets/welcomewidget.h +++ b/src/libtomahawk/widgets/welcomewidget.h @@ -84,7 +84,7 @@ public: ~WelcomeWidget(); virtual QWidget* widget() { return this; } - virtual Tomahawk::PlaylistInterface* playlistInterface() const; + virtual Tomahawk::playlistinterface_ptr playlistInterface() const; virtual QString title() const { return tr( "Welcome to Tomahawk" ); } virtual QString description() const { return QString(); } diff --git a/src/libtomahawk/widgets/whatshotwidget.cpp b/src/libtomahawk/widgets/whatshotwidget.cpp index cd4e5cec8..3a9f8183c 100644 --- a/src/libtomahawk/widgets/whatshotwidget.cpp +++ b/src/libtomahawk/widgets/whatshotwidget.cpp @@ -51,7 +51,6 @@ static QString s_whatsHotIdentifier = QString( "WhatsHotWidget" ); WhatsHotWidget::WhatsHotWidget( QWidget* parent ) : QWidget( parent ) , ui( new Ui::WhatsHotWidget ) - , m_playlistInterface( 0 ) , m_sortedProxy( 0 ) { ui->setupUi( this ); @@ -92,7 +91,7 @@ WhatsHotWidget::WhatsHotWidget( QWidget* parent ) ui->artistsViewLeft->setHorizontalScrollBarPolicy( Qt::ScrollBarAlwaysOff ); ui->artistsViewLeft->header()->setVisible( false ); - m_playlistInterface = new ChartsPlaylistInterface( this ); + m_playlistInterface = ( new ChartsPlaylistInterface( this ) )->getSharedPointer(); connect( Tomahawk::InfoSystem::InfoSystem::instance(), SIGNAL( info( Tomahawk::InfoSystem::InfoRequestData, QVariant ) ), @@ -106,12 +105,11 @@ WhatsHotWidget::WhatsHotWidget( QWidget* parent ) WhatsHotWidget::~WhatsHotWidget() { - delete m_playlistInterface; delete ui; } -PlaylistInterface* +Tomahawk::playlistinterface_ptr WhatsHotWidget::playlistInterface() const { return m_playlistInterface; diff --git a/src/libtomahawk/widgets/whatshotwidget.h b/src/libtomahawk/widgets/whatshotwidget.h index 392c39a32..06129b323 100644 --- a/src/libtomahawk/widgets/whatshotwidget.h +++ b/src/libtomahawk/widgets/whatshotwidget.h @@ -19,9 +19,9 @@ #ifndef WHATSHOTWIDGET_H #define WHATSHOTWIDGET_H -#include -#include -#include +#include +#include +#include #include "playlistinterface.h" #include "infosystem/infosystem.h" @@ -59,7 +59,7 @@ public: ~WhatsHotWidget(); virtual QWidget* widget() { return this; } - virtual Tomahawk::PlaylistInterface* playlistInterface() const; + virtual Tomahawk::playlistinterface_ptr playlistInterface() const; virtual QString title() const { return tr( "Charts" ); } virtual QString description() const { return QString(); } @@ -91,7 +91,7 @@ private: QStandardItem* parseNode( QStandardItem* parentItem, const QString &label, const QVariant &data ); Ui::WhatsHotWidget *ui; - ChartsPlaylistInterface* m_playlistInterface; + Tomahawk::playlistinterface_ptr m_playlistInterface; QStandardItemModel* m_crumbModelLeft; QSortFilterProxyModel* m_sortedProxy; diff --git a/src/tomahawkwindow.cpp b/src/tomahawkwindow.cpp index 64e9d40e7..e44f8f73d 100644 --- a/src/tomahawkwindow.cpp +++ b/src/tomahawkwindow.cpp @@ -224,7 +224,7 @@ TomahawkWindow::setupSideBar() m_queueModel->setStyle( PlaylistModel::Short ); m_queueView->queue()->setPlaylistModel( m_queueModel ); m_queueView->queue()->playlistModel()->setReadOnly( false ); - AudioEngine::instance()->setQueue( m_queueView->queue()->proxyModel() ); + AudioEngine::instance()->setQueue( m_queueView->queue()->proxyModel()->getSharedPointer() ); m_sidebar->addWidget( m_searchWidget ); m_sidebar->addWidget( m_sourcetree );