1 /**************************************************************************************** 2 * Copyright (c) 2010 Nikolaj Hald Nielsen <nhn@kde.org> * 3 * * 4 * This program is free software; you can redistribute it and/or modify it under * 5 * the terms of the GNU General Public License as published by the Free Software * 6 * Foundation; either version 2 of the License, or (at your option) any later * 7 * version. * 8 * * 9 * This program is distributed in the hope that it will be useful, but WITHOUT ANY * 10 * WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A * 11 * PARTICULAR PURPOSE. See the GNU General Public License for more details. * 12 * * 13 * You should have received a copy of the GNU General Public License along with * 14 * this program. If not, see <http://www.gnu.org/licenses/>. * 15 ****************************************************************************************/ 16 17 #include "ServiceCapabilities.h" 18 #include "ServiceMetaBase.h" 19 20 ServiceBookmarkThisCapability(BookmarkThisProvider * provider)21ServiceBookmarkThisCapability::ServiceBookmarkThisCapability( BookmarkThisProvider * provider ) 22 : Capabilities::BookmarkThisCapability(0) 23 , m_provider( provider ) 24 { 25 } 26 27 ~ServiceBookmarkThisCapability()28ServiceBookmarkThisCapability::~ServiceBookmarkThisCapability() 29 { 30 } 31 isBookmarkable()32bool ServiceBookmarkThisCapability::isBookmarkable() 33 { 34 return m_provider->isBookmarkable(); 35 } 36 browserName()37QString ServiceBookmarkThisCapability::browserName() 38 { 39 return m_provider->browserName(); 40 } 41 collectionName()42QString ServiceBookmarkThisCapability::collectionName() 43 { 44 return m_provider->collectionName(); 45 } 46 simpleFiltering()47bool ServiceBookmarkThisCapability::simpleFiltering() 48 { 49 return m_provider->simpleFiltering(); 50 } 51 bookmarkAction() const52QAction * ServiceBookmarkThisCapability::bookmarkAction() const 53 { 54 return m_provider->bookmarkAction(); 55 } 56 57 /////////////////////////////////////////////////////// 58 59 ServiceActionsCapability(ActionsProvider * actionsProvider)60ServiceActionsCapability::ServiceActionsCapability(ActionsProvider * actionsProvider) 61 : Capabilities::ActionsCapability( ) 62 , m_actionsProvider( actionsProvider ) 63 { 64 } 65 ~ServiceActionsCapability()66ServiceActionsCapability::~ServiceActionsCapability() 67 { 68 } 69 actions() const70QList< QAction * > ServiceActionsCapability::actions() const 71 { 72 return m_actionsProvider->actions(); 73 } 74 75 /////////////////////////////////////////////////////// 76 77 ServiceSourceInfoCapability(SourceInfoProvider * sourceInfoProvider)78ServiceSourceInfoCapability::ServiceSourceInfoCapability(SourceInfoProvider * sourceInfoProvider) 79 : SourceInfoCapability() 80 { 81 m_sourceInfoProvider = sourceInfoProvider; 82 } 83 ~ServiceSourceInfoCapability()84ServiceSourceInfoCapability::~ServiceSourceInfoCapability() 85 { 86 } 87 88 QString sourceName()89ServiceSourceInfoCapability::sourceName() 90 { 91 return m_sourceInfoProvider->sourceName(); 92 } 93 94 QString sourceDescription()95ServiceSourceInfoCapability::sourceDescription() 96 { 97 return m_sourceInfoProvider->sourceDescription(); 98 } 99 100 QPixmap emblem()101ServiceSourceInfoCapability::emblem() 102 { 103 return m_sourceInfoProvider->emblem(); 104 } 105 106 107 QString scalableEmblem()108ServiceSourceInfoCapability::scalableEmblem() 109 { 110 return m_sourceInfoProvider->scalableEmblem(); 111 } 112 113 114 //////////////////////////////////////////////////////////// 115 116 ServiceFindInSourceCapability(Meta::ServiceTrack * track)117ServiceFindInSourceCapability::ServiceFindInSourceCapability( Meta::ServiceTrack *track ) 118 : Capabilities::FindInSourceCapability() 119 , m_track( track ) 120 {} 121 findInSource(QFlags<TargetTag> tag)122void ServiceFindInSourceCapability::findInSource( QFlags<TargetTag> tag ) 123 { 124 Q_UNUSED( tag ) 125 DEBUG_BLOCK 126 if( m_track->artist() && m_track->album() && !m_track->collectionName().isEmpty() ) 127 { 128 QString collection =m_track->collectionName(); 129 QString artist = m_track->artist()->prettyName(); 130 QString album = m_track->album()->prettyName(); 131 132 AmarokUrl url; 133 url.setCommand( QStringLiteral("navigate") ); 134 url.setPath( "internet/" + collection ); 135 if( !m_track->simpleFiltering() ) 136 { 137 url.setArg( QStringLiteral("filter"), "artist:\"" + artist + "\" AND album:\"" + album + "\"" ); 138 url.setArg( QStringLiteral("levels"), QStringLiteral("artist-album") ); 139 debug() << "running url: " << url.url(); 140 url.run(); 141 } 142 143 144 } 145 } 146