diff --git a/src/libtomahawk/AlbumPlaylistInterface.cpp b/src/libtomahawk/AlbumPlaylistInterface.cpp index 578237841..2ef8ba169 100644 --- a/src/libtomahawk/AlbumPlaylistInterface.cpp +++ b/src/libtomahawk/AlbumPlaylistInterface.cpp @@ -52,26 +52,27 @@ AlbumPlaylistInterface::~AlbumPlaylistInterface() } -Tomahawk::result_ptr -AlbumPlaylistInterface::siblingItem( int itemsAway, bool readOnly ) +void +AlbumPlaylistInterface::setCurrentIndex( qint64 index ) { - Q_UNUSED( readOnly ); + m_currentTrack = index; + m_currentItem = m_queries.at( index )->results().first(); +} - int p = m_currentTrack; + +qint64 +AlbumPlaylistInterface::siblingIndex( int itemsAway ) const +{ + qint64 p = m_currentTrack; p += itemsAway; if ( p < 0 ) - return Tomahawk::result_ptr(); + return -1; if ( p >= m_queries.count() ) - return Tomahawk::result_ptr(); + return -1; - if ( !m_queries.at( p )->numResults() ) - return siblingItem( itemsAway + 1 ); - - m_currentTrack = p; - m_currentItem = m_queries.at( p )->results().first(); - return m_currentItem; + return p; } @@ -82,30 +83,6 @@ AlbumPlaylistInterface::currentItem() const } -bool -AlbumPlaylistInterface::hasNextItem() -{ - int p = m_currentTrack; - p++; - if ( p < 0 || p >= m_queries.count() ) - return false; - - return true; -} - - -bool -AlbumPlaylistInterface::hasPreviousItem() -{ - int p = m_currentTrack; - p--; - if ( p < 0 || p >= m_queries.count() ) - return false; - - return true; -} - - bool AlbumPlaylistInterface::setCurrentTrack( unsigned int albumpos ) { diff --git a/src/libtomahawk/AlbumPlaylistInterface.h b/src/libtomahawk/AlbumPlaylistInterface.h index 905bff012..9ff02b640 100644 --- a/src/libtomahawk/AlbumPlaylistInterface.h +++ b/src/libtomahawk/AlbumPlaylistInterface.h @@ -44,14 +44,14 @@ public: virtual int trackCount() const { return m_queries.count(); } - virtual Tomahawk::result_ptr siblingItem( int itemsAway, bool readOnly = false ); + virtual void setCurrentIndex( qint64 index ); + virtual qint64 siblingIndex( int itemsAway ) const; - virtual Tomahawk::query_ptr itemAt( unsigned int position ) const { Q_UNUSED( position ); Q_ASSERT( false ); return Tomahawk::query_ptr(); } - virtual int indexOfResult( const Tomahawk::result_ptr& result ) const { Q_UNUSED( result ); Q_ASSERT( false ); return -1; } - virtual int indexOfQuery( const Tomahawk::query_ptr& query ) const { Q_UNUSED( query ); Q_ASSERT( false ); return -1; } + virtual Tomahawk::result_ptr resultAt( qint64 index ) const { Q_UNUSED( index ); Q_ASSERT( false ); return Tomahawk::result_ptr(); } + virtual Tomahawk::query_ptr queryAt( qint64 index ) const { Q_UNUSED( index ); Q_ASSERT( false ); return Tomahawk::query_ptr(); } + virtual qint64 indexOfResult( const Tomahawk::result_ptr& result ) const { Q_UNUSED( result ); Q_ASSERT( false ); return -1; } + virtual qint64 indexOfQuery( const Tomahawk::query_ptr& query ) const { Q_UNUSED( query ); Q_ASSERT( false ); return -1; } - virtual bool hasNextItem(); - virtual bool hasPreviousItem(); virtual Tomahawk::result_ptr currentItem() const; virtual PlaylistModes::RepeatMode repeatMode() const { return PlaylistModes::NoRepeat; } @@ -71,8 +71,8 @@ private slots: private: QList< Tomahawk::query_ptr > m_queries; - result_ptr m_currentItem; - unsigned int m_currentTrack; + mutable result_ptr m_currentItem; + mutable qint64 m_currentTrack; bool m_infoSystemLoaded; bool m_databaseLoaded; diff --git a/src/libtomahawk/ArtistPlaylistInterface.cpp b/src/libtomahawk/ArtistPlaylistInterface.cpp index 521005aea..0e55fbce3 100644 --- a/src/libtomahawk/ArtistPlaylistInterface.cpp +++ b/src/libtomahawk/ArtistPlaylistInterface.cpp @@ -51,38 +51,27 @@ ArtistPlaylistInterface::~ArtistPlaylistInterface() } -Tomahawk::result_ptr -ArtistPlaylistInterface::siblingItem( int itemsAway, bool readOnly ) +void +ArtistPlaylistInterface::setCurrentIndex( qint64 index ) { - Q_UNUSED( readOnly ); - - int p = m_currentTrack; - p += itemsAway; - - if ( p < 0 ) - return Tomahawk::result_ptr(); - - if ( p >= m_queries.count() ) - return Tomahawk::result_ptr(); - - if ( !m_queries.at( p )->numResults() ) - return siblingItem( itemsAway + 1 ); - - m_currentTrack = p; - m_currentItem = m_queries.at( p )->results().first(); - return m_currentItem; + m_currentTrack = index; + m_currentItem = m_queries.at( index )->results().first(); } -bool -ArtistPlaylistInterface::hasNextItem() +qint64 +ArtistPlaylistInterface::siblingIndex( int itemsAway ) const { - int p = m_currentTrack; - p++; - if ( p < 0 || p >= m_queries.count() ) - return false; + qint64 p = m_currentTrack; + p += itemsAway; - return true; + if ( p < 0 ) + return -1; + + if ( p >= m_queries.count() ) + return -1; + + return p; } diff --git a/src/libtomahawk/ArtistPlaylistInterface.h b/src/libtomahawk/ArtistPlaylistInterface.h index 83b5034fc..a923d3bce 100644 --- a/src/libtomahawk/ArtistPlaylistInterface.h +++ b/src/libtomahawk/ArtistPlaylistInterface.h @@ -43,13 +43,13 @@ public: virtual int trackCount() const { return m_queries.count(); } - virtual Tomahawk::result_ptr siblingItem( int itemsAway, bool readOnly = false ); + virtual void setCurrentIndex( qint64 index ); + virtual qint64 siblingIndex( int itemsAway ) const; + virtual Tomahawk::result_ptr resultAt( qint64 index ) const { Q_UNUSED( index ); Q_ASSERT( false ); return Tomahawk::result_ptr(); } + virtual Tomahawk::query_ptr queryAt( qint64 index ) const { Q_UNUSED( index ); Q_ASSERT( false ); return Tomahawk::query_ptr(); } + virtual qint64 indexOfResult( const Tomahawk::result_ptr& result ) const { Q_UNUSED( result ); Q_ASSERT( false ); return -1; } + virtual qint64 indexOfQuery( const Tomahawk::query_ptr& query ) const { Q_UNUSED( query ); Q_ASSERT( false ); return -1; } - virtual Tomahawk::query_ptr itemAt( unsigned int position ) const { Q_UNUSED( position ); Q_ASSERT( false ); return Tomahawk::query_ptr(); } - virtual int indexOfResult( const Tomahawk::result_ptr& result ) const { Q_UNUSED( result ); Q_ASSERT( false ); return -1; } - virtual int indexOfQuery( const Tomahawk::query_ptr& query ) const { Q_UNUSED( query ); Q_ASSERT( false ); return -1; } - - virtual bool hasNextItem(); virtual Tomahawk::result_ptr currentItem() const; virtual PlaylistModes::RepeatMode repeatMode() const { return PlaylistModes::NoRepeat; } @@ -70,8 +70,8 @@ private: Q_DISABLE_COPY( ArtistPlaylistInterface ) QList< Tomahawk::query_ptr > m_queries; - result_ptr m_currentItem; - unsigned int m_currentTrack; + mutable result_ptr m_currentItem; + mutable qint64 m_currentTrack; bool m_infoSystemLoaded; bool m_databaseLoaded; diff --git a/src/libtomahawk/PlaylistPlaylistInterface.h b/src/libtomahawk/PlaylistPlaylistInterface.h index da9583abc..70a92f37a 100644 --- a/src/libtomahawk/PlaylistPlaylistInterface.h +++ b/src/libtomahawk/PlaylistPlaylistInterface.h @@ -46,14 +46,14 @@ public: virtual int trackCount() const; - virtual Tomahawk::query_ptr itemAt( unsigned int position ) const { Q_UNUSED( position ); Q_ASSERT( false ); return Tomahawk::query_ptr(); } - virtual int indexOfResult( const Tomahawk::result_ptr& result ) const { Q_UNUSED( result ); Q_ASSERT( false ); return -1; } - virtual int indexOfQuery( const Tomahawk::query_ptr& query ) const { Q_UNUSED( query ); Q_ASSERT( false ); return -1; } + virtual void setCurrentIndex( qint64 index ) { Q_UNUSED( index ); } + virtual Tomahawk::result_ptr resultAt( qint64 index ) const { Q_UNUSED( index ); Q_ASSERT( false ); return Tomahawk::result_ptr(); } + virtual Tomahawk::query_ptr queryAt( qint64 index ) const { Q_UNUSED( index ); Q_ASSERT( false ); return Tomahawk::query_ptr(); } + virtual qint64 indexOfResult( const Tomahawk::result_ptr& result ) const { Q_UNUSED( result ); Q_ASSERT( false ); return -1; } + virtual qint64 indexOfQuery( const Tomahawk::query_ptr& query ) const { Q_UNUSED( query ); Q_ASSERT( false ); return -1; } - virtual bool hasNextItem() { return false; } virtual Tomahawk::result_ptr currentItem() const { return m_currentItem; } - - virtual Tomahawk::result_ptr siblingItem( int /*itemsAway*/, bool /*readOnly*/ ) { return result_ptr(); } + virtual qint64 siblingIndex( int /*itemsAway*/ ) const { return -1; } virtual PlaylistModes::RepeatMode repeatMode() const { return PlaylistModes::NoRepeat; } virtual bool shuffled() const { return false; } diff --git a/src/libtomahawk/SourcePlaylistInterface.cpp b/src/libtomahawk/SourcePlaylistInterface.cpp index 0d7717ad1..f5ff7741e 100644 --- a/src/libtomahawk/SourcePlaylistInterface.cpp +++ b/src/libtomahawk/SourcePlaylistInterface.cpp @@ -50,18 +50,27 @@ SourcePlaylistInterface::~SourcePlaylistInterface() } -Tomahawk::result_ptr -SourcePlaylistInterface::siblingItem( int itemsAway, bool readOnly ) +void +SourcePlaylistInterface::setCurrentIndex( qint64 index ) +{ + Q_UNUSED( index ); +} + + +qint64 +SourcePlaylistInterface::siblingIndex( int itemsAway ) const { Q_UNUSED( itemsAway ); - Q_UNUSED( readOnly ); - return nextItem(); + if ( nextResult() ) + return 0; + else + return -1; } Tomahawk::result_ptr -SourcePlaylistInterface::nextItem() +SourcePlaylistInterface::nextResult() const { tDebug( LOGEXTRA ) << Q_FUNC_INFO; if ( !sourceValid() ) @@ -70,7 +79,7 @@ SourcePlaylistInterface::nextItem() m_currentItem = Tomahawk::result_ptr(); return m_currentItem; } - else if ( !hasNextItem() ) + else if ( !hasNextResult() ) { tDebug( LOGEXTRA ) << Q_FUNC_INFO << "This song was already fetched or the source isn't playing anything"; return Tomahawk::result_ptr(); @@ -95,7 +104,7 @@ SourcePlaylistInterface::currentItem() const bool -SourcePlaylistInterface::sourceValid() +SourcePlaylistInterface::sourceValid() const { tDebug( LOGEXTRA ) << Q_FUNC_INFO; if ( m_source.isNull() || m_source.data()->currentTrack().isNull() ) @@ -106,7 +115,7 @@ SourcePlaylistInterface::sourceValid() bool -SourcePlaylistInterface::hasNextItem() +SourcePlaylistInterface::hasNextResult() const { if ( !sourceValid() ) return false; @@ -157,6 +166,25 @@ SourcePlaylistInterface::resolvingFinished( bool hasResults ) if ( hasResults ) { m_gotNextItem = true; - emit nextTrackReady(); + emit nextTrackAvailable(); } } + + +Tomahawk::query_ptr +SourcePlaylistInterface::queryAt( qint64 index ) const +{ + Q_UNUSED( index ); + + Tomahawk::result_ptr res = nextResult(); + return res->toQuery(); +} + + +Tomahawk::result_ptr +SourcePlaylistInterface::resultAt( qint64 index ) const +{ + Q_UNUSED( index ); + + return nextResult(); +} diff --git a/src/libtomahawk/SourcePlaylistInterface.h b/src/libtomahawk/SourcePlaylistInterface.h index a663c093d..bbd74856e 100644 --- a/src/libtomahawk/SourcePlaylistInterface.h +++ b/src/libtomahawk/SourcePlaylistInterface.h @@ -43,14 +43,16 @@ public: virtual int trackCount() const { return 1; } - virtual Tomahawk::query_ptr itemAt( unsigned int position ) const { Q_UNUSED( position ); Q_ASSERT( false ); return Tomahawk::query_ptr(); } - virtual int indexOfResult( const Tomahawk::result_ptr& result ) const { Q_UNUSED( result ); Q_ASSERT( false ); return -1; } - virtual int indexOfQuery( const Tomahawk::query_ptr& query ) const { Q_UNUSED( query ); Q_ASSERT( false ); return -1; } + virtual void setCurrentIndex( qint64 index ); + virtual Tomahawk::result_ptr resultAt( qint64 index ) const; + virtual Tomahawk::query_ptr queryAt( qint64 index ) const; + virtual qint64 indexOfResult( const Tomahawk::result_ptr& result ) const { Q_UNUSED( result ); Q_ASSERT( false ); return -1; } + virtual qint64 indexOfQuery( const Tomahawk::query_ptr& query ) const { Q_UNUSED( query ); Q_ASSERT( false ); return -1; } - virtual Tomahawk::result_ptr siblingItem( int itemsAway, bool readOnly = false ); - virtual bool sourceValid(); - virtual bool hasNextItem(); - virtual Tomahawk::result_ptr nextItem(); + virtual qint64 siblingIndex( int itemsAway ) const; + virtual bool sourceValid() const; + virtual bool hasNextResult() const; + virtual Tomahawk::result_ptr nextResult() const; virtual Tomahawk::result_ptr currentItem() const; virtual PlaylistModes::RepeatMode repeatMode() const { return PlaylistModes::NoRepeat; } @@ -78,8 +80,8 @@ private slots: private: QWeakPointer< Tomahawk::Source > m_source; - Tomahawk::result_ptr m_currentItem; - bool m_gotNextItem; + mutable Tomahawk::result_ptr m_currentItem; + mutable bool m_gotNextItem; }; }; // ns diff --git a/src/libtomahawk/playlist/SingleTrackPlaylistInterface.h b/src/libtomahawk/playlist/SingleTrackPlaylistInterface.h index 22172767b..5cd4dba04 100644 --- a/src/libtomahawk/playlist/SingleTrackPlaylistInterface.h +++ b/src/libtomahawk/playlist/SingleTrackPlaylistInterface.h @@ -41,11 +41,13 @@ public: query_ptr track() const { return m_track; } void setQuery( const query_ptr& track ) { m_track = track; } + virtual void setCurrentIndex( qint64 index ) { Q_UNUSED( index ); } virtual result_ptr currentItem() const { return result_ptr(); } - virtual Tomahawk::query_ptr itemAt( unsigned int position ) const { Q_UNUSED( position ); Q_ASSERT( false ); return Tomahawk::query_ptr(); } - virtual int indexOfResult( const Tomahawk::result_ptr& result ) const { Q_UNUSED( result ); Q_ASSERT( false ); return -1; } - virtual int indexOfQuery( const Tomahawk::query_ptr& query ) const { Q_UNUSED( query ); Q_ASSERT( false ); return -1; } + virtual Tomahawk::result_ptr resultAt( qint64 index ) const { Q_UNUSED( index ); Q_ASSERT( false ); return Tomahawk::result_ptr(); } + virtual Tomahawk::query_ptr queryAt( qint64 index ) const { Q_UNUSED( index ); Q_ASSERT( false ); return Tomahawk::query_ptr(); } + virtual qint64 indexOfResult( const Tomahawk::result_ptr& result ) const { Q_UNUSED( result ); Q_ASSERT( false ); return -1; } + virtual qint64 indexOfQuery( const Tomahawk::query_ptr& query ) const { Q_UNUSED( query ); Q_ASSERT( false ); return -1; } virtual PlaylistModes::RepeatMode repeatMode() const { return PlaylistModes::NoRepeat; } virtual void setRepeatMode( PlaylistModes::RepeatMode ) {} @@ -53,7 +55,7 @@ public: virtual bool shuffled() const { return false; } virtual void setShuffled( bool ) {} - virtual result_ptr siblingItem( int, bool ) { return result_ptr(); } + virtual qint64 siblingIndex( int ) const { return -1; } virtual int trackCount() const { return 1; } virtual QList< query_ptr > tracks() { return QList< query_ptr >(); } diff --git a/src/libtomahawk/widgets/WhatsHotWidget_p.h b/src/libtomahawk/widgets/WhatsHotWidget_p.h index c0d0aa303..901f6a89a 100644 --- a/src/libtomahawk/widgets/WhatsHotWidget_p.h +++ b/src/libtomahawk/widgets/WhatsHotWidget_p.h @@ -57,11 +57,13 @@ public: virtual bool shuffled() const { return m_w->ui->tracksViewLeft->proxyModel()->playlistInterface()->shuffled(); } // Do nothing - virtual Tomahawk::query_ptr itemAt( unsigned int position ) const { Q_UNUSED( position ); Q_ASSERT( false ); return Tomahawk::query_ptr(); } - virtual int indexOfResult( const Tomahawk::result_ptr& result ) const { Q_UNUSED( result ); Q_ASSERT( false ); return -1; } - virtual int indexOfQuery( const Tomahawk::query_ptr& query ) const { Q_UNUSED( query ); Q_ASSERT( false ); return -1; } + virtual void setCurrentIndex( qint64 index ) { Q_UNUSED( index ); } + virtual Tomahawk::result_ptr resultAt( qint64 index ) const { Q_UNUSED( index ); Q_ASSERT( false ); return Tomahawk::result_ptr(); } + virtual Tomahawk::query_ptr queryAt( qint64 index ) const { Q_UNUSED( index ); Q_ASSERT( false ); return Tomahawk::query_ptr(); } + virtual qint64 indexOfResult( const Tomahawk::result_ptr& result ) const { Q_UNUSED( result ); Q_ASSERT( false ); return -1; } + virtual qint64 indexOfQuery( const Tomahawk::query_ptr& query ) const { Q_UNUSED( query ); Q_ASSERT( false ); return -1; } virtual Tomahawk::result_ptr currentItem() const { return Tomahawk::result_ptr(); } - virtual Tomahawk::result_ptr siblingItem( int, bool ) { return Tomahawk::result_ptr(); } + virtual qint64 siblingIndex( int ) const { return -1; } virtual int trackCount() const { return 0; } virtual QList< Tomahawk::query_ptr > tracks() { return QList< Tomahawk::query_ptr >(); } @@ -86,14 +88,6 @@ public slots: m_w->ui->artistsViewLeft->proxyModel()->playlistInterface()->setShuffled( enabled ); } -signals: - void repeatModeChanged( Tomahawk::PlaylistModes::RepeatMode mode ); - void shuffleModeChanged( bool enabled ); - - void trackCountChanged( unsigned int tracks ); - void sourceTrackCountChanged( unsigned int tracks ); - void nextTrackReady(); - private slots: void anyRepeatModeChanged( Tomahawk::PlaylistModes::RepeatMode mode ) { diff --git a/src/libtomahawk/widgets/infowidgets/AlbumInfoWidget_p.h b/src/libtomahawk/widgets/infowidgets/AlbumInfoWidget_p.h index 3685bac47..bd7cc85ed 100644 --- a/src/libtomahawk/widgets/infowidgets/AlbumInfoWidget_p.h +++ b/src/libtomahawk/widgets/infowidgets/AlbumInfoWidget_p.h @@ -47,11 +47,13 @@ public: virtual Tomahawk::PlaylistModes::RepeatMode repeatMode() const { return m_w->ui->tracks->proxyModel()->playlistInterface()->repeatMode(); } virtual bool shuffled() const { return m_w->ui->tracks->proxyModel()->playlistInterface()->shuffled(); } - virtual Tomahawk::query_ptr itemAt( unsigned int position ) const { Q_UNUSED( position ); Q_ASSERT( false ); return Tomahawk::query_ptr(); } - virtual int indexOfResult( const Tomahawk::result_ptr& result ) const { Q_UNUSED( result ); Q_ASSERT( false ); return -1; } - virtual int indexOfQuery( const Tomahawk::query_ptr& query ) const { Q_UNUSED( query ); Q_ASSERT( false ); return -1; } + virtual void setCurrentIndex( qint64 index ) { Q_UNUSED( index ); } + virtual Tomahawk::result_ptr resultAt( qint64 index ) const { Q_UNUSED( index ); Q_ASSERT( false ); return Tomahawk::result_ptr(); } + virtual Tomahawk::query_ptr queryAt( qint64 index ) const { Q_UNUSED( index ); Q_ASSERT( false ); return Tomahawk::query_ptr(); } + virtual qint64 indexOfResult( const Tomahawk::result_ptr& result ) const { Q_UNUSED( result ); Q_ASSERT( false ); return -1; } + virtual qint64 indexOfQuery( const Tomahawk::query_ptr& query ) const { Q_UNUSED( query ); Q_ASSERT( false ); return -1; } virtual Tomahawk::result_ptr currentItem() const { return m_w->ui->tracks->proxyModel()->playlistInterface()->currentItem(); } - virtual Tomahawk::result_ptr siblingItem( int itemsAway, bool readOnly ) { return m_w->ui->tracks->proxyModel()->playlistInterface()->siblingItem( itemsAway, readOnly ); } + virtual qint64 siblingIndex( int itemsAway ) const { return m_w->ui->tracks->proxyModel()->playlistInterface()->siblingIndex( itemsAway ); } virtual int trackCount() const { return m_w->ui->tracks->proxyModel()->playlistInterface()->trackCount(); } virtual QList< Tomahawk::query_ptr > tracks() { return m_w->ui->tracks->proxyModel()->playlistInterface()->tracks(); } diff --git a/src/libtomahawk/widgets/infowidgets/ArtistInfoWidget_p.h b/src/libtomahawk/widgets/infowidgets/ArtistInfoWidget_p.h index 2abdbd194..d7ce61f60 100644 --- a/src/libtomahawk/widgets/infowidgets/ArtistInfoWidget_p.h +++ b/src/libtomahawk/widgets/infowidgets/ArtistInfoWidget_p.h @@ -59,11 +59,13 @@ public: virtual bool shuffled() const { return m_w->ui->albums->proxyModel()->playlistInterface()->shuffled(); } // Do nothing - virtual Tomahawk::query_ptr itemAt( unsigned int position ) const { Q_UNUSED( position ); Q_ASSERT( false ); return Tomahawk::query_ptr(); } - virtual int indexOfResult( const Tomahawk::result_ptr& result ) const { Q_UNUSED( result ); Q_ASSERT( false ); return -1; } - virtual int indexOfQuery( const Tomahawk::query_ptr& query ) const { Q_UNUSED( query ); Q_ASSERT( false ); return -1; } + virtual void setCurrentIndex( qint64 index ) { Q_UNUSED( index ); } + virtual Tomahawk::result_ptr resultAt( qint64 index ) const { Q_UNUSED( index ); Q_ASSERT( false ); return Tomahawk::result_ptr(); } + virtual Tomahawk::query_ptr queryAt( qint64 index ) const { Q_UNUSED( index ); Q_ASSERT( false ); return Tomahawk::query_ptr(); } + virtual qint64 indexOfResult( const Tomahawk::result_ptr& result ) const { Q_UNUSED( result ); Q_ASSERT( false ); return -1; } + virtual qint64 indexOfQuery( const Tomahawk::query_ptr& query ) const { Q_UNUSED( query ); Q_ASSERT( false ); return -1; } virtual Tomahawk::result_ptr currentItem() const { return Tomahawk::result_ptr(); } - virtual Tomahawk::result_ptr siblingItem( int, bool ) { return Tomahawk::result_ptr(); } + virtual qint64 siblingIndex( int ) const { return -1; } virtual int trackCount() const { return 0; } virtual QList< Tomahawk::query_ptr > tracks() { return QList< Tomahawk::query_ptr >(); } virtual int unfilteredTrackCount() const { return 0; } @@ -92,9 +94,6 @@ public slots: m_w->ui->topHits->proxyModel()->playlistInterface()->setShuffled( enabled ); } -signals: - void nextTrackReady(); - private slots: void anyRepeatModeChanged( Tomahawk::PlaylistModes::RepeatMode mode ) {