-
Notifications
You must be signed in to change notification settings - Fork 1
/
playlistsmanager.h
76 lines (56 loc) · 2.2 KB
/
playlistsmanager.h
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
#ifndef PLAYLISTSMANAGER_H
#define PLAYLISTSMANAGER_H
#include <QObject>
#include <QStringList>
class QQmlContext;
class QQmlEngine;
class QJSEngine;
class Playlist;
class VideoItem;
class PlaylistsManagerPrivate;
class PlaylistsManager : public QObject
{
Q_OBJECT
public:
static PlaylistsManager* singleton();
static void declareQML();
void setDocument(const QJsonDocument& document);
Q_INVOKABLE bool isFavorited(const QString &id) const;
Q_INVOKABLE void addFavorite(const QString& id, const QString& title, const QString& subTitle, const QString& thumbnail, const QString &duration, QString timestamp = QString());
Q_INVOKABLE bool removeFavorite(const QString& id);
Q_INVOKABLE void removeFavorites(const QStringList& ids);
Q_INVOKABLE QList<QObject*> favorites() const;
Q_INVOKABLE Playlist* createPlaylist(const QString& name = "Unnamed Playlist");
Q_INVOKABLE bool deletePlaylist(const QString& name);
Q_INVOKABLE QList<QString> playlistNames() const;
void addPlaylist(Playlist *playlist);
Q_INVOKABLE Playlist* playlist(const QString& name) const;
Q_INVOKABLE QStringList itemPlaylists(const QString& id, const QString& excludingPlaylistName) const;
signals:
void favoritesChanged();
void playlistAdded(const QString& name);
void playlistCreated(const QString& name);
void playlistRemoved(const QString& name);
void playlistNameUpdated(const QString& name, const QString& oldName);
public slots:
protected slots:
void playlistNameChanged(const QString& name, const QString &oldName);
void playlistItemAdded(VideoItem *videoItem);
void playlistItemsAdded(QList<VideoItem*> videoItems);
void playlistItemRemoved(const QString& id);
void playlistItemsRemoved(const QStringList& ids);
protected:
private:
explicit PlaylistsManager(QObject *parent = 0);
virtual ~PlaylistsManager();
static PlaylistsManager *_singleton;
Q_DECLARE_PRIVATE(PlaylistsManager)
PlaylistsManagerPrivate * const d_ptr;
};
static QObject *qmlPlaylistsManagerSingleton(QQmlEngine *engine, QJSEngine *scriptEngine)
{
Q_UNUSED(engine)
Q_UNUSED(scriptEngine)
return PlaylistsManager::singleton();
}
#endif // PLAYLISTSMANAGER_H