diff --git a/src/playlist/songplaylistitem.cpp b/src/playlist/songplaylistitem.cpp index 42c563e10..876a1328f 100644 --- a/src/playlist/songplaylistitem.cpp +++ b/src/playlist/songplaylistitem.cpp @@ -78,3 +78,18 @@ QUrl SongPlaylistItem::Url() const { void SongPlaylistItem::Reload() { song_.InitFromFile(song_.filename(), song_.directory_id()); } + +Song SongPlaylistItem::Metadata() const { + if (temp_metadata_.is_valid()) + return temp_metadata_; + return song_; +} + +void SongPlaylistItem::SetTemporaryMetadata(const Song& metadata) { + temp_metadata_ = metadata; + temp_metadata_.set_filetype(Song::Type_Stream); +} + +void SongPlaylistItem::ClearTemporaryMetadata() { + temp_metadata_ = Song(); +} diff --git a/src/playlist/songplaylistitem.h b/src/playlist/songplaylistitem.h index 59bedb716..0979c97f8 100644 --- a/src/playlist/songplaylistitem.h +++ b/src/playlist/songplaylistitem.h @@ -28,7 +28,9 @@ class SongPlaylistItem : public PlaylistItem { bool InitFromQuery(const QSqlQuery &query); void Reload(); - Song Metadata() const { return song_; } + Song Metadata() const; + void SetTemporaryMetadata(const Song &metadata); + void ClearTemporaryMetadata(); QUrl Url() const; @@ -37,6 +39,7 @@ class SongPlaylistItem : public PlaylistItem { private: Song song_; + Song temp_metadata_; }; #endif // SONGPLAYLISTITEM_H