Changeset View
Changeset View
Standalone View
Standalone View
src/mediaplaylist.h
Show First 20 Lines • Show All 156 Lines • ▼ Show 20 Line(s) | 75 | public: | |||
---|---|---|---|---|---|
157 | Q_INVOKABLE bool savePlaylist(const QUrl &fileName); | 157 | Q_INVOKABLE bool savePlaylist(const QUrl &fileName); | ||
158 | 158 | | |||
159 | QVariantMap persistentState() const; | 159 | QVariantMap persistentState() const; | ||
160 | 160 | | |||
161 | MusicListenersManager* musicListenersManager() const; | 161 | MusicListenersManager* musicListenersManager() const; | ||
162 | 162 | | |||
163 | int tracksCount() const; | 163 | int tracksCount() const; | ||
164 | 164 | | |||
165 | QPersistentModelIndex currentTrack() const; | 165 | QPersistentModelIndex currentTrack() const; | ||
166 | 166 | | |||
mgallien: Better use isUndoDisplayedInline | |||||
167 | int currentTrackRow() const; | 167 | int currentTrackRow() const; | ||
168 | 168 | | |||
169 | bool randomPlay() const; | 169 | bool randomPlay() const; | ||
170 | 170 | | |||
171 | bool repeatPlay() const; | 171 | bool repeatPlay() const; | ||
172 | 172 | | |||
173 | Q_SIGNALS: | 173 | Q_SIGNALS: | ||
174 | void displayUndoInline(); | ||||
175 | | ||||
176 | void hideUndoInline(); | ||||
174 | 177 | | |||
175 | void newTrackByNameInList(const QString &title, const QString &artist, const QString &album, int trackNumber, int discNumber); | 178 | void newTrackByNameInList(const QString &title, const QString &artist, const QString &album, int trackNumber, int discNumber); | ||
176 | 179 | | |||
177 | void newEntryInList(qulonglong newDatabaseId, | 180 | void newEntryInList(qulonglong newDatabaseId, | ||
178 | const QString &entryTitle, | 181 | const QString &entryTitle, | ||
179 | ElisaUtils::PlayListEntryType databaseIdType); | 182 | ElisaUtils::PlayListEntryType databaseIdType); | ||
180 | 183 | | |||
181 | void persistentStateChanged(); | 184 | void persistentStateChanged(); | ||
182 | 185 | | |||
183 | void musicListenersManagerChanged(); | 186 | void musicListenersManagerChanged(); | ||
184 | 187 | | |||
185 | void tracksCountChanged(); | 188 | void tracksCountChanged(); | ||
186 | 189 | | |||
187 | void currentTrackChanged(QPersistentModelIndex currentTrack); | 190 | void currentTrackChanged(QPersistentModelIndex currentTrack); | ||
188 | 191 | | |||
192 | void clearPlayListPlayer(); | ||||
193 | | ||||
194 | void undoClearPlayListPlayer(); | ||||
195 | | ||||
189 | void currentTrackRowChanged(); | 196 | void currentTrackRowChanged(); | ||
190 | 197 | | |||
191 | void randomPlayChanged(); | 198 | void randomPlayChanged(); | ||
192 | 199 | | |||
193 | void repeatPlayChanged(); | 200 | void repeatPlayChanged(); | ||
194 | 201 | | |||
195 | void playListFinished(); | 202 | void playListFinished(); | ||
196 | 203 | | |||
▲ Show 20 Lines • Show All 54 Lines • ▼ Show 20 Line(s) | 255 | void enqueue(const ElisaUtils::EntryDataList &newEntries, | |||
251 | ElisaUtils::PlayListEnqueueTriggerPlay triggerPlay); | 258 | ElisaUtils::PlayListEnqueueTriggerPlay triggerPlay); | ||
252 | 259 | | |||
253 | void replaceAndPlay(const ElisaUtils::EntryData &newEntry, ElisaUtils::PlayListEntryType databaseIdType); | 260 | void replaceAndPlay(const ElisaUtils::EntryData &newEntry, ElisaUtils::PlayListEntryType databaseIdType); | ||
254 | 261 | | |||
255 | void enqueueRestoredEntry(const MediaPlayListEntry &newEntry); | 262 | void enqueueRestoredEntry(const MediaPlayListEntry &newEntry); | ||
256 | 263 | | |||
257 | void trackInError(const QUrl &sourceInError, QMediaPlayer::Error playerError); | 264 | void trackInError(const QUrl &sourceInError, QMediaPlayer::Error playerError); | ||
258 | 265 | | |||
266 | void undoClearPlayList(); | ||||
267 | | ||||
As far as I know, Q_SCRIPTABLE is not necessary to call it from qml. Can you remove it ? mgallien: As far as I know, Q_SCRIPTABLE is not necessary to call it from qml. Can you remove it ? | |||||
259 | private Q_SLOTS: | 268 | private Q_SLOTS: | ||
260 | 269 | | |||
261 | void loadPlayListLoaded(); | 270 | void loadPlayListLoaded(); | ||
262 | 271 | | |||
263 | void loadPlayListLoadFailed(); | 272 | void loadPlayListLoadFailed(); | ||
264 | 273 | | |||
265 | private: | 274 | private: | ||
275 | void displayOrHideUndoInline(bool value); | ||||
276 | | ||||
277 | void clearPlayList(bool prepareUndo); | ||||
266 | 278 | | |||
267 | void resetCurrentTrack(); | 279 | void resetCurrentTrack(); | ||
268 | 280 | | |||
269 | void notifyCurrentTrackChanged(); | 281 | void notifyCurrentTrackChanged(); | ||
270 | 282 | | |||
271 | void restorePlayListPosition(); | 283 | void restorePlayListPosition(); | ||
272 | 284 | | |||
273 | void restoreRandomPlay(); | 285 | void restoreRandomPlay(); | ||
274 | 286 | | |||
275 | void restoreRepeatPlay(); | 287 | void restoreRepeatPlay(); | ||
276 | 288 | | |||
277 | void enqueueArtist(const QString &artistName); | 289 | void enqueueArtist(const QString &artistName); | ||
278 | 290 | | |||
279 | void enqueueFilesList(const ElisaUtils::EntryDataList &newEntries); | 291 | void enqueueFilesList(const ElisaUtils::EntryDataList &newEntries); | ||
280 | 292 | | |||
281 | void enqueueTracksListById(const ElisaUtils::EntryDataList &newEntries); | 293 | void enqueueTracksListById(const ElisaUtils::EntryDataList &newEntries); | ||
282 | 294 | | |||
283 | void enqueueOneEntry(const ElisaUtils::EntryData &entryData, ElisaUtils::PlayListEntryType type); | 295 | void enqueueOneEntry(const ElisaUtils::EntryData &entryData, ElisaUtils::PlayListEntryType type); | ||
284 | 296 | | |||
285 | void enqueueMultipleEntries(const ElisaUtils::EntryDataList &entriesData, ElisaUtils::PlayListEntryType type); | 297 | void enqueueMultipleEntries(const ElisaUtils::EntryDataList &entriesData, ElisaUtils::PlayListEntryType type); | ||
286 | 298 | | |||
299 | void enqueueCommon(); | ||||
300 | | ||||
301 | void copyD(); | ||||
302 | | ||||
287 | std::unique_ptr<MediaPlayListPrivate> d; | 303 | std::unique_ptr<MediaPlayListPrivate> d; | ||
288 | 304 | | |||
305 | std::unique_ptr<MediaPlayListPrivate> dOld; | ||||
289 | }; | 306 | }; | ||
290 | 307 | | |||
291 | class MediaPlayListEntry | 308 | class MediaPlayListEntry | ||
292 | { | 309 | { | ||
293 | public: | 310 | public: | ||
294 | 311 | | |||
295 | MediaPlayListEntry() = default; | 312 | MediaPlayListEntry() = default; | ||
296 | 313 | | |||
297 | explicit MediaPlayListEntry(qulonglong id) : mId(id), mIsValid(true) { | 314 | explicit MediaPlayListEntry(qulonglong id) : mId(id), mIsValid(true) { | ||
298 | } | 315 | } | ||
299 | 316 | | |||
300 | MediaPlayListEntry(QString title, QString artist, QString album, int trackNumber, int discNumber) | 317 | MediaPlayListEntry(QString title, QString artist, QString album, int trackNumber, int discNumber, ElisaUtils::PlayListEntryType entryType = ElisaUtils::Unknown) | ||
301 | : mTitle(std::move(title)), mAlbum(std::move(album)), mArtist(std::move(artist)), | 318 | : mTitle(std::move(title)), mAlbum(std::move(album)), mArtist(std::move(artist)), | ||
302 | mTrackNumber(trackNumber), mDiscNumber(discNumber) { | 319 | mTrackNumber(trackNumber), mDiscNumber(discNumber), mEntryType(entryType) { | ||
303 | } | 320 | } | ||
304 | 321 | | |||
305 | explicit MediaPlayListEntry(const MusicAudioTrack &track) | 322 | explicit MediaPlayListEntry(const MusicAudioTrack &track) | ||
306 | : mTitle(track.title()), mAlbum(track.albumName()), mTrackNumber(track.trackNumber()), | 323 | : mTitle(track.title()), mAlbum(track.albumName()), mTrackNumber(track.trackNumber()), | ||
307 | mDiscNumber(track.discNumber()), mId(track.databaseId()), mIsValid(true) { | 324 | mDiscNumber(track.discNumber()), mId(track.databaseId()), mIsValid(true) { | ||
308 | } | 325 | } | ||
309 | 326 | | |||
310 | explicit MediaPlayListEntry(const MediaPlayList::TrackDataType &track) | 327 | explicit MediaPlayListEntry(const MediaPlayList::TrackDataType &track) | ||
▲ Show 20 Lines • Show All 47 Lines • Show Last 20 Lines |
Better use isUndoDisplayedInline