From 2b408744d7380658edc3a920f2dadce0f0426515 Mon Sep 17 00:00:00 2001 From: Leo Franchi Date: Sun, 1 May 2011 11:08:01 -0400 Subject: [PATCH] play the track if nothing is playing. doesn't select in the playlist yet, thinking of an elegant solution --- src/globalactionmanager.cpp | 20 ++++++++++++++++++-- src/globalactionmanager.h | 4 +++- 2 files changed, 21 insertions(+), 3 deletions(-) diff --git a/src/globalactionmanager.cpp b/src/globalactionmanager.cpp index 65ef3fba8..2f9d64279 100644 --- a/src/globalactionmanager.cpp +++ b/src/globalactionmanager.cpp @@ -18,6 +18,7 @@ #include "globalactionmanager.h" +#include "audio/audioengine.h" #include "utils/xspfloader.h" #include "sourcelist.h" #include "playlist/dynamic/GeneratorInterface.h" @@ -324,11 +325,15 @@ GlobalActionManager::doBookmark( const Tomahawk::playlist_ptr& pl, const Tomahaw connect( pl.data(), SIGNAL( revisionLoaded( Tomahawk::PlaylistRevision ) ), this, SLOT( showPlaylist() ) ); m_toShow = pl; - m_waitingToBookmark.clear(); // if nothing is playing, lets start this // TODO -// if( !AudioEngine::instance()->isPlaying() ) + if( !AudioEngine::instance()->isPlaying() ) { + connect( q.data(), SIGNAL( resolvingFinished( bool ) ), this, SLOT( waitingForResolved( bool ) ) ); + m_waitingToPlay = q; + } + + m_waitingToBookmark.clear(); } void @@ -342,3 +347,14 @@ GlobalActionManager::showPlaylist() m_toShow.clear(); } +void +GlobalActionManager::waitingForResolved( bool success ) +{ + if( success && !m_waitingToPlay.isNull() && !m_waitingToPlay->results().isEmpty() ) { // play it! + AudioEngine::instance()->playItem( AudioEngine::instance()->playlist(), m_waitingToPlay->results().first() ); + } + + m_waitingToPlay.clear(); +} + + diff --git a/src/globalactionmanager.h b/src/globalactionmanager.h index d038b066d..d4b94af37 100644 --- a/src/globalactionmanager.h +++ b/src/globalactionmanager.h @@ -34,6 +34,7 @@ public: public slots: bool parseTomahawkLink( const QString& link ); + void waitingForResolved( bool ); private slots: void bookmarkPlaylistCreated( const Tomahawk::playlist_ptr& pl ); @@ -50,8 +51,9 @@ private: bool handleSearchCommand(const QUrl& url ); bool handlePlayCommand(const QUrl& url ); - Tomahawk::query_ptr m_waitingToBookmark; Tomahawk::playlist_ptr m_toShow; + Tomahawk::query_ptr m_waitingToBookmark; + Tomahawk::query_ptr m_waitingToPlay; static GlobalActionManager* s_instance; };