diff --git a/src/core/mainwindow.cpp b/src/core/mainwindow.cpp index bf82b642a..bc840a12a 100644 --- a/src/core/mainwindow.cpp +++ b/src/core/mainwindow.cpp @@ -1728,10 +1728,12 @@ void MainWindow::RenumberTracks() { } void MainWindow::SongSaveComplete(TagReaderReply *reply, const QPersistentModelIndex &index) { + if (reply->is_successful() && index.isValid()) { app_->playlist_manager()->current()->ReloadItems(QList()<< index.row()); } - reply->deleteLater(); + metaObject()->invokeMethod(reply, "deleteLater", Qt::QueuedConnection); + } void MainWindow::SelectionSetValue() { diff --git a/src/dialogs/edittagdialog.cpp b/src/dialogs/edittagdialog.cpp index 6a063c92d..6efa0013f 100644 --- a/src/dialogs/edittagdialog.cpp +++ b/src/dialogs/edittagdialog.cpp @@ -894,8 +894,6 @@ void EditTagDialog::FetchTagSongChosen(const Song &original_song, const Song &ne void EditTagDialog::SongSaveComplete(TagReaderReply *reply, const QString filename, const Song song) { - reply->deleteLater(); - pending_--; if (!reply->message().save_file_response().success()) { @@ -910,4 +908,6 @@ void EditTagDialog::SongSaveComplete(TagReaderReply *reply, const QString filena if (pending_ <= 0) AcceptFinished(); + metaObject()->invokeMethod(reply, "deleteLater", Qt::QueuedConnection); + } diff --git a/src/playlist/playlist.cpp b/src/playlist/playlist.cpp index 9128017a7..4b2888e68 100644 --- a/src/playlist/playlist.cpp +++ b/src/playlist/playlist.cpp @@ -400,7 +400,7 @@ void Playlist::SongSaveComplete(TagReaderReply *reply, const QPersistentModelInd } } - reply->deleteLater(); + metaObject()->invokeMethod(reply, "deleteLater", Qt::QueuedConnection); }