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)21 ServiceBookmarkThisCapability::ServiceBookmarkThisCapability( BookmarkThisProvider * provider )
22     : Capabilities::BookmarkThisCapability(0)
23     , m_provider( provider )
24 {
25 }
26 
27 
~ServiceBookmarkThisCapability()28 ServiceBookmarkThisCapability::~ServiceBookmarkThisCapability()
29 {
30 }
31 
isBookmarkable()32 bool ServiceBookmarkThisCapability::isBookmarkable()
33 {
34     return m_provider->isBookmarkable();
35 }
36 
browserName()37 QString ServiceBookmarkThisCapability::browserName()
38 {
39     return m_provider->browserName();
40 }
41 
collectionName()42 QString ServiceBookmarkThisCapability::collectionName()
43 {
44     return m_provider->collectionName();
45 }
46 
simpleFiltering()47 bool ServiceBookmarkThisCapability::simpleFiltering()
48 {
49     return m_provider->simpleFiltering();
50 }
51 
bookmarkAction() const52 QAction * ServiceBookmarkThisCapability::bookmarkAction() const
53 {
54     return m_provider->bookmarkAction();
55 }
56 
57 ///////////////////////////////////////////////////////
58 
59 
ServiceActionsCapability(ActionsProvider * actionsProvider)60 ServiceActionsCapability::ServiceActionsCapability(ActionsProvider * actionsProvider)
61     : Capabilities::ActionsCapability( )
62     , m_actionsProvider( actionsProvider )
63 {
64 }
65 
~ServiceActionsCapability()66 ServiceActionsCapability::~ServiceActionsCapability()
67 {
68 }
69 
actions() const70 QList< QAction * > ServiceActionsCapability::actions() const
71 {
72     return m_actionsProvider->actions();
73 }
74 
75 ///////////////////////////////////////////////////////
76 
77 
ServiceSourceInfoCapability(SourceInfoProvider * sourceInfoProvider)78 ServiceSourceInfoCapability::ServiceSourceInfoCapability(SourceInfoProvider * sourceInfoProvider)
79    : SourceInfoCapability()
80 {
81     m_sourceInfoProvider = sourceInfoProvider;
82 }
83 
~ServiceSourceInfoCapability()84 ServiceSourceInfoCapability::~ServiceSourceInfoCapability()
85 {
86 }
87 
88 QString
sourceName()89 ServiceSourceInfoCapability::sourceName()
90 {
91     return m_sourceInfoProvider->sourceName();
92 }
93 
94 QString
sourceDescription()95 ServiceSourceInfoCapability::sourceDescription()
96 {
97     return m_sourceInfoProvider->sourceDescription();
98 }
99 
100 QPixmap
emblem()101 ServiceSourceInfoCapability::emblem()
102 {
103     return m_sourceInfoProvider->emblem();
104 }
105 
106 
107 QString
scalableEmblem()108 ServiceSourceInfoCapability::scalableEmblem()
109 {
110     return m_sourceInfoProvider->scalableEmblem();
111 }
112 
113 
114 ////////////////////////////////////////////////////////////
115 
116 
ServiceFindInSourceCapability(Meta::ServiceTrack * track)117 ServiceFindInSourceCapability::ServiceFindInSourceCapability( Meta::ServiceTrack *track )
118     : Capabilities::FindInSourceCapability()
119     , m_track( track )
120 {}
121 
findInSource(QFlags<TargetTag> tag)122 void 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