54
56
virtual QList<Playlist*> GetAllPlaylists() const = 0;
55
57
// Grays out and reloads all deleted songs in all playlists.
56
58
virtual void InvalidateDeletedSongs() = 0;
58
virtual const QItemSelection& selection(int id) const = 0;
59
virtual const QItemSelection& current_selection() const = 0;
60
virtual const QItemSelection& active_selection() const = 0;
62
virtual QString name(int index) const = 0;
59
// Removes all deleted songs from all playlists.
60
virtual void RemoveDeletedSongs() = 0;
62
virtual QItemSelection selection(int id) const = 0;
63
virtual QItemSelection current_selection() const = 0;
64
virtual QItemSelection active_selection() const = 0;
66
virtual QString GetPlaylistName(int index) const = 0;
64
68
virtual TaskManager* task_manager() const = 0;
65
69
virtual LibraryBackend* library_backend() const = 0;
66
70
virtual PlaylistBackend* playlist_backend() const = 0;
67
71
virtual PlaylistSequence* sequence() const = 0;
68
72
virtual PlaylistParser* parser() const = 0;
73
virtual PlaylistContainer* playlist_container() const = 0;
75
virtual void RegisterSpecialPlaylistType(SpecialPlaylistType* type) = 0;
76
virtual void UnregisterSpecialPlaylistType(SpecialPlaylistType* type) = 0;
77
virtual SpecialPlaylistType* GetPlaylistType(const QString& type) const = 0;
71
virtual void New(const QString& name, const SongList& songs = SongList()) = 0;
80
virtual void New(const QString& name, const SongList& songs = SongList(),
81
const QString& special_type = QString()) = 0;
72
82
virtual void Load(const QString& filename) = 0;
73
83
virtual void Save(int id, const QString& filename) = 0;
74
84
virtual void Rename(int id, const QString& new_name) = 0;
137
147
QList<Playlist*> GetAllPlaylists() const;
138
148
// Grays out and reloads all deleted songs in all playlists.
139
149
void InvalidateDeletedSongs();
141
const QItemSelection& selection(int id) const;
142
const QItemSelection& current_selection() const { return selection(current_id()); }
143
const QItemSelection& active_selection() const { return selection(active_id()); }
145
QString name(int index) const { return playlists_[index].name; }
150
// Removes all deleted songs from all playlists.
151
void RemoveDeletedSongs();
153
// Returns a pretty automatic name for playlist created from the given list of
155
static QString GetNameForNewPlaylist(const SongList& songs);
157
QItemSelection selection(int id) const;
158
QItemSelection current_selection() const { return selection(current_id()); }
159
QItemSelection active_selection() const { return selection(active_id()); }
161
QString GetPlaylistName(int index) const { return playlists_[index].name; }
147
163
void Init(LibraryBackend* library_backend, PlaylistBackend* playlist_backend,
148
PlaylistSequence* sequence);
164
PlaylistSequence* sequence, PlaylistContainer* playlist_container);
150
166
TaskManager* task_manager() const { return task_manager_; }
151
167
LibraryBackend* library_backend() const { return library_backend_; }
152
168
PlaylistBackend* playlist_backend() const { return playlist_backend_; }
153
169
PlaylistSequence* sequence() const { return sequence_; }
154
170
PlaylistParser* parser() const { return parser_; }
171
PlaylistContainer* playlist_container() const { return playlist_container_; }
173
void RegisterSpecialPlaylistType(SpecialPlaylistType* type);
174
void UnregisterSpecialPlaylistType(SpecialPlaylistType* type);
175
SpecialPlaylistType* GetPlaylistType(const QString& type) const;
157
void New(const QString& name, const SongList& songs = SongList());
178
void New(const QString& name, const SongList& songs = SongList(),
179
const QString& special_type = QString());
158
180
void Load(const QString& filename);
159
181
void Save(int id, const QString& filename);
160
182
void Rename(int id, const QString& new_name);
205
227
LibraryBackend* library_backend_;
206
228
PlaylistSequence* sequence_;
207
229
PlaylistParser* parser_;
230
PlaylistContainer* playlist_container_;
210
233
QMap<int, Data> playlists_;
235
QMap<QString, SpecialPlaylistType*> special_playlist_types_;
236
SpecialPlaylistType* default_playlist_type_;