Make sure to always use original metadata when editing tags

This commit is contained in:
Jonas Kvinge 2020-08-10 21:27:56 +02:00
parent 673ded3819
commit 34634d776e
2 changed files with 7 additions and 7 deletions

View File

@ -1948,7 +1948,7 @@ void MainWindow::RenumberTracks() {
if (!source_index.isValid()) continue; if (!source_index.isValid()) continue;
PlaylistItemPtr item = app_->playlist_manager()->current()->item_at(source_index.row()); PlaylistItemPtr item = app_->playlist_manager()->current()->item_at(source_index.row());
if (!item) continue; if (!item) continue;
Song song = item->Metadata(); Song song = item->OriginalMetadata();
if (song.IsEditable()) { if (song.IsEditable()) {
song.set_track(track); song.set_track(track);
TagReaderReply *reply = TagReaderClient::Instance()->SaveFile(song.url().toLocalFile(), song); TagReaderReply *reply = TagReaderClient::Instance()->SaveFile(song.url().toLocalFile(), song);
@ -1978,7 +1978,7 @@ void MainWindow::SelectionSetValue() {
if (!source_index.isValid()) continue; if (!source_index.isValid()) continue;
PlaylistItemPtr item = app_->playlist_manager()->current()->item_at(source_index.row()); PlaylistItemPtr item = app_->playlist_manager()->current()->item_at(source_index.row());
if (!item) continue; if (!item) continue;
Song song = item->Metadata(); Song song = item->OriginalMetadata();
if (!song.is_valid() || !song.url().isLocalFile()) continue; if (!song.is_valid() || !song.url().isLocalFile()) continue;
if (Playlist::set_column_value(song, column, column_value)) { if (Playlist::set_column_value(song, column, column_value)) {
TagReaderReply *reply = TagReaderClient::Instance()->SaveFile(song.url().toLocalFile(), song); TagReaderReply *reply = TagReaderClient::Instance()->SaveFile(song.url().toLocalFile(), song);
@ -2084,7 +2084,7 @@ void MainWindow::ShowInCollection() {
if (!source_index.isValid()) continue; if (!source_index.isValid()) continue;
PlaylistItemPtr item = app_->playlist_manager()->current()->item_at(source_index.row()); PlaylistItemPtr item = app_->playlist_manager()->current()->item_at(source_index.row());
if (item && item->IsLocalCollectionItem()) { if (item && item->IsLocalCollectionItem()) {
songs << item->Metadata(); songs << item->OriginalMetadata();
break; break;
} }
} }
@ -2387,7 +2387,7 @@ void MainWindow::PlaylistOrganizeSelected(const bool copy) {
if (!source_index.isValid()) continue; if (!source_index.isValid()) continue;
PlaylistItemPtr item = app_->playlist_manager()->current()->item_at(source_index.row()); PlaylistItemPtr item = app_->playlist_manager()->current()->item_at(source_index.row());
if (!item) continue; if (!item) continue;
Song song = item->Metadata(); Song song = item->OriginalMetadata();
if (!song.is_valid() || !song.url().isLocalFile()) continue; if (!song.is_valid() || !song.url().isLocalFile()) continue;
songs << song; songs << song;
} }
@ -2477,7 +2477,7 @@ void MainWindow::PlaylistCopyToDevice() {
if (!source_index.isValid()) continue; if (!source_index.isValid()) continue;
PlaylistItemPtr item = app_->playlist_manager()->current()->item_at(source_index.row()); PlaylistItemPtr item = app_->playlist_manager()->current()->item_at(source_index.row());
if (!item) continue; if (!item) continue;
Song song = item->Metadata(); Song song = item->OriginalMetadata();
if (!song.is_valid() || !song.url().isLocalFile()) continue; if (!song.is_valid() || !song.url().isLocalFile()) continue;
songs << song; songs << song;
} }
@ -2667,7 +2667,7 @@ void MainWindow::AutoCompleteTags() {
if (!source_index.isValid()) continue; if (!source_index.isValid()) continue;
PlaylistItemPtr item(app_->playlist_manager()->current()->item_at(source_index.row())); PlaylistItemPtr item(app_->playlist_manager()->current()->item_at(source_index.row()));
if (!item) continue; if (!item) continue;
Song song = item->Metadata(); Song song = item->OriginalMetadata();
if (song.IsEditable()) { if (song.IsEditable()) {
songs << song; songs << song;
autocomplete_tag_items_ << item; autocomplete_tag_items_ << item;

View File

@ -371,7 +371,7 @@ bool Playlist::setData(const QModelIndex &index, const QVariant &value, int role
int row = index.row(); int row = index.row();
PlaylistItemPtr item = item_at(row); PlaylistItemPtr item = item_at(row);
Song song = item->Metadata(); Song song = item->OriginalMetadata();
if (index.data() == value) return false; if (index.data() == value) return false;