From 36ea2f797f897a771bed8744d41394a8a419c95d Mon Sep 17 00:00:00 2001 From: "Uwe L. Korn" Date: Thu, 31 Jul 2014 19:58:26 +0100 Subject: [PATCH] Add Menu Entry to start playlist sync --- src/tomahawk/sourcetree/SourceTreeView.cpp | 22 ++++++++++++++++------ 1 file changed, 16 insertions(+), 6 deletions(-) diff --git a/src/tomahawk/sourcetree/SourceTreeView.cpp b/src/tomahawk/sourcetree/SourceTreeView.cpp index 5f847036a..61f79a832 100644 --- a/src/tomahawk/sourcetree/SourceTreeView.cpp +++ b/src/tomahawk/sourcetree/SourceTreeView.cpp @@ -243,14 +243,24 @@ SourceTreeView::setupMenus() QAction* exportPlaylist = m_playlistMenu.addAction( tr( "&Export Playlist") ); connect( exportPlaylist, SIGNAL( triggered() ), this, SLOT( exportPlaylist() ) ); - QMenu* playlistSyncMenu = m_playlistMenu.addMenu( tr( "Sync with .." ) ); - foreach ( const QPointer& resolver, Tomahawk::Pipeline::instance()->scriptResolvers() ) + const PlaylistItem* item = itemFromIndex< PlaylistItem >( m_contextMenuIndex ); + const playlist_ptr playlist = item->playlist(); + if ( playlist ) { - if ( resolver->capabilities().testFlag( ExternalResolver::PlaylistSync ) ) + QMenu* playlistSyncMenu = m_playlistMenu.addMenu( tr( "Sync with .." ) ); + + foreach ( const QPointer& resolver, Tomahawk::Pipeline::instance()->scriptResolvers() ) { - // TODO: Add a checkmark to the service that syncs this playlist - // TODO: Actually add an action to sync - playlistSyncMenu->addAction( resolver->icon(), resolver->name() ); + if ( resolver->capabilities().testFlag( ExternalResolver::PlaylistSync ) ) + { + // TODO: Add a checkmark to the service that syncs this playlist + // TODO: Actually add an action to sync + QAction* plSync = playlistSyncMenu->addAction( resolver->icon(), resolver->name() ); + NewClosure( plSync, SIGNAL( triggered() ), + Pipeline::instance(), + SLOT( startPlaylistSync( ExternalResolver* , playlist_ptr ) ), + resolver, playlist ); + } } } }