~ubuntu-branches/ubuntu/saucy/clementine/saucy

« back to all changes in this revision

Viewing changes to src/playlist/playlistmanager.h

  • Committer: Package Import Robot
  • Author(s): Thomas PIERSON
  • Date: 2012-01-01 20:43:39 UTC
  • mfrom: (1.1.1)
  • Revision ID: package-import@ubuntu.com-20120101204339-lsb6nndwhfy05sde
Tags: 1.0.1+dfsg-1
New upstream release. (Closes: #653926, #651611, #657391)

Show diffs side-by-side

added added

removed removed

Lines of Context:
29
29
class LibraryBackend;
30
30
class Playlist;
31
31
class PlaylistBackend;
 
32
class PlaylistContainer;
32
33
class PlaylistParser;
33
34
class PlaylistSequence;
 
35
class SpecialPlaylistType;
34
36
class TaskManager;
35
37
 
36
38
class QModelIndex;
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;
57
 
 
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;
61
 
 
62
 
  virtual QString name(int index) const = 0;
 
59
  // Removes all deleted songs from all playlists.
 
60
  virtual void RemoveDeletedSongs() = 0;
 
61
 
 
62
  virtual QItemSelection selection(int id) const = 0;
 
63
  virtual QItemSelection current_selection() const = 0;
 
64
  virtual QItemSelection active_selection() const = 0;
 
65
 
 
66
  virtual QString GetPlaylistName(int index) const = 0;
63
67
 
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;
 
74
 
 
75
  virtual void RegisterSpecialPlaylistType(SpecialPlaylistType* type) = 0;
 
76
  virtual void UnregisterSpecialPlaylistType(SpecialPlaylistType* type) = 0;
 
77
  virtual SpecialPlaylistType* GetPlaylistType(const QString& type) const = 0;
69
78
 
70
79
public slots:
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();
140
 
 
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()); }
144
 
 
145
 
  QString name(int index) const { return playlists_[index].name; }
 
150
  // Removes all deleted songs from all playlists.
 
151
  void RemoveDeletedSongs();
 
152
 
 
153
  // Returns a pretty automatic name for playlist created from the given list of
 
154
  // songs.
 
155
  static QString GetNameForNewPlaylist(const SongList& songs);
 
156
 
 
157
  QItemSelection selection(int id) const;
 
158
  QItemSelection current_selection() const { return selection(current_id()); }
 
159
  QItemSelection active_selection() const { return selection(active_id()); }
 
160
 
 
161
  QString GetPlaylistName(int index) const { return playlists_[index].name; }
146
162
 
147
163
  void Init(LibraryBackend* library_backend, PlaylistBackend* playlist_backend,
148
 
            PlaylistSequence* sequence);
 
164
            PlaylistSequence* sequence, PlaylistContainer* playlist_container);
149
165
 
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_; }
 
172
 
 
173
  void RegisterSpecialPlaylistType(SpecialPlaylistType* type);
 
174
  void UnregisterSpecialPlaylistType(SpecialPlaylistType* type);
 
175
  SpecialPlaylistType* GetPlaylistType(const QString& type) const;
155
176
 
156
177
public slots:
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);
190
212
  void LoadFinished(bool success);
191
213
 
192
214
private:
193
 
  Playlist* AddPlaylist(int id, const QString& name);
 
215
  Playlist* AddPlaylist(int id, const QString& name, const QString& special_type);
194
216
 
195
217
private:
196
218
  struct Data {
205
227
  LibraryBackend* library_backend_;
206
228
  PlaylistSequence* sequence_;
207
229
  PlaylistParser* parser_;
 
230
  PlaylistContainer* playlist_container_;
208
231
 
209
232
  // key = id
210
233
  QMap<int, Data> playlists_;
211
234
 
 
235
  QMap<QString, SpecialPlaylistType*> special_playlist_types_;
 
236
  SpecialPlaylistType* default_playlist_type_;
 
237
 
212
238
  int current_;
213
239
  int active_;
214
240
};