1
/* === This file is part of Tomahawk Player - <http://tomahawk-player.org> ===
3
* Copyright 2010-2011, Christian Muehlhaeuser <muesli@tomahawk-player.org>
4
* Copyright 2010-2011, Jeff Mitchell <jeff@tomahawk-player.org>
6
* Tomahawk is free software: you can redistribute it and/or modify
7
* it under the terms of the GNU General Public License as published by
8
* the Free Software Foundation, either version 3 of the License, or
9
* (at your option) any later version.
11
* Tomahawk is distributed in the hope that it will be useful,
12
* but WITHOUT ANY WARRANTY; without even the implied warranty of
13
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
14
* GNU General Public License for more details.
16
* You should have received a copy of the GNU General Public License
17
* along with Tomahawk. If not, see <http://www.gnu.org/licenses/>.
23
#include <QtCore/QSignalMapper>
24
#include <QtGui/QMenu>
32
class DLLEXPORT ContextMenu : public QMenu
47
ActionArtistPage = 66,
49
ActionEditMetadata = 128
52
explicit ContextMenu( QWidget* parent = 0 );
53
virtual ~ContextMenu();
55
int supportedActions() const { return m_supportedActions; }
56
void setSupportedActions( int actions ) { m_supportedActions = actions; }
58
void setPlaylistInterface( const Tomahawk::playlistinterface_ptr& plInterface );
60
void setQuery( const Tomahawk::query_ptr& query );
61
void setQueries( const QList<Tomahawk::query_ptr>& queries );
63
void setArtist( const Tomahawk::artist_ptr& artist );
64
void setArtists( const QList<Tomahawk::artist_ptr>& artists );
66
void setAlbum( const Tomahawk::album_ptr& album );
67
void setAlbums( const QList<Tomahawk::album_ptr>& albums );
71
unsigned int itemCount() const;
74
void triggered( int action );
77
void onTriggered( int action );
79
void openPage( MenuActions action );
82
void onSocialActionsLoaded();
85
QSignalMapper* m_sigmap;
86
int m_supportedActions;
88
QAction* m_loveAction;
90
QList< Tomahawk::query_ptr > m_queries;
91
QList< Tomahawk::artist_ptr > m_artists;
92
QList< Tomahawk::album_ptr > m_albums;
94
Tomahawk::playlistinterface_ptr m_interface;