mirror of
https://bitbucket.org/smil3y/kde-extraapps.git
synced 2025-02-26 20:03:10 +00:00
113 lines
4.5 KiB
C++
113 lines
4.5 KiB
C++
/****************************************************************************************
|
|
* Copyright (c) 2007 Maximilian Kossick <maximilian.kossick@googlemail.com> *
|
|
* *
|
|
* This program is free software; you can redistribute it and/or modify it under *
|
|
* the terms of the GNU General Public License as published by the Free Software *
|
|
* Foundation; either version 2 of the License, or (at your option) any later *
|
|
* version. *
|
|
* *
|
|
* This program is distributed in the hope that it will be useful, but WITHOUT ANY *
|
|
* WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A *
|
|
* PARTICULAR PURPOSE. See the GNU General Public License for more details. *
|
|
* *
|
|
* You should have received a copy of the GNU General Public License along with *
|
|
* this program. If not, see <http://www.gnu.org/licenses/>. *
|
|
****************************************************************************************/
|
|
|
|
#ifndef AMAROK_AMAROKMIMEDATA_H
|
|
#define AMAROK_AMAROKMIMEDATA_H
|
|
|
|
#include "amarok_export.h"
|
|
#include "amarokurls/BookmarkGroup.h"
|
|
#include "core/meta/forward_declarations.h"
|
|
#include "core/playlists/Playlist.h"
|
|
#include "core/podcasts/PodcastMeta.h"
|
|
#include "core/collections/QueryMaker.h"
|
|
|
|
#include <QList>
|
|
#include <QMap>
|
|
#include <QMimeData>
|
|
|
|
class AMAROK_EXPORT AmarokMimeData : public QMimeData
|
|
{
|
|
Q_OBJECT
|
|
public:
|
|
static const QString TRACK_MIME;
|
|
static const QString PLAYLIST_MIME;
|
|
|
|
static const QString PLAYLISTBROWSERGROUP_MIME;
|
|
|
|
static const QString PODCASTCHANNEL_MIME;
|
|
static const QString PODCASTEPISODE_MIME;
|
|
|
|
static const QString AMAROKURL_MIME;
|
|
static const QString BOOKMARKGROUP_MIME;
|
|
|
|
AmarokMimeData();
|
|
virtual ~AmarokMimeData();
|
|
|
|
virtual QStringList formats() const;
|
|
virtual bool hasFormat( const QString &mimeType ) const;
|
|
|
|
Meta::TrackList tracks() const;
|
|
void setTracks( const Meta::TrackList &tracks );
|
|
void addTracks( const Meta::TrackList &tracks );
|
|
|
|
Playlists::PlaylistList playlists() const;
|
|
void setPlaylists( const Playlists::PlaylistList &playlists );
|
|
void addPlaylists( const Playlists::PlaylistList &playlists );
|
|
|
|
QStringList playlistGroups() const;
|
|
void setPlaylistGroups( const QStringList &groups );
|
|
void addPlaylistGroup( const QString &group );
|
|
|
|
Podcasts::PodcastChannelList podcastChannels() const;
|
|
void setPodcastChannels( const Podcasts::PodcastChannelList &channels );
|
|
void addPodcastChannels( const Podcasts::PodcastChannelList &channels );
|
|
|
|
Podcasts::PodcastEpisodeList podcastEpisodes() const;
|
|
void setPodcastEpisodes( const Podcasts::PodcastEpisodeList &episodes );
|
|
void addPodcastEpisodes( const Podcasts::PodcastEpisodeList &episodes );
|
|
|
|
QList<Collections::QueryMaker*> queryMakers();
|
|
void addQueryMaker( Collections::QueryMaker *queryMaker );
|
|
void setQueryMakers( const QList<Collections::QueryMaker*> &queryMakers );
|
|
|
|
BookmarkList bookmarks() const;
|
|
void setBookmarks( const BookmarkList &bookmarks );
|
|
void addBookmarks( const BookmarkList &bookmarks );
|
|
|
|
BookmarkGroupList bookmarkGroups() const;
|
|
void setBookmarkGroups( const BookmarkGroupList &groups );
|
|
void addBookmarkGroups( const BookmarkGroupList &groups );
|
|
|
|
/**
|
|
There is a lot of time to run the queries while the user is dragging.
|
|
This method runs all queries passed to this object. It will do nothing if there
|
|
are no queries.
|
|
*/
|
|
void startQueries();
|
|
|
|
signals:
|
|
void trackListSignal( Meta::TrackList ) const;
|
|
|
|
public slots:
|
|
void getTrackListSignal() const;
|
|
|
|
protected:
|
|
virtual QVariant retrieveData( const QString &mimeType, QVariant::Type type ) const;
|
|
|
|
private slots:
|
|
void newResultReady( const Meta::TrackList &tracks );
|
|
void queryDone();
|
|
|
|
private:
|
|
class Private;
|
|
Private * const d;
|
|
|
|
AmarokMimeData( const AmarokMimeData& );
|
|
AmarokMimeData& operator=( const AmarokMimeData& );
|
|
};
|
|
|
|
|
|
#endif
|