RipCDDialog rejects metadata lists if number of tracks does not match disc.
First step for addressing #7020.
This commit is contained in:
parent
436c53870a
commit
54a497b302
|
@ -93,7 +93,7 @@ RipCDDialog::RipCDDialog(QWidget* parent)
|
|||
connect(loader_, SIGNAL(SongsDurationLoaded(SongList)),
|
||||
SLOT(BuildTrackListTable(SongList)));
|
||||
connect(loader_, SIGNAL(SongsMetadataLoaded(SongList)),
|
||||
SLOT(BuildTrackListTable(SongList)));
|
||||
SLOT(UpdateTrackListTable(SongList)));
|
||||
connect(loader_, SIGNAL(SongsMetadataLoaded(SongList)),
|
||||
SLOT(AddAlbumMetadataFromMusicBrainz(SongList)));
|
||||
|
||||
|
@ -280,6 +280,14 @@ void RipCDDialog::BuildTrackListTable(const SongList& songs) {
|
|||
}
|
||||
}
|
||||
|
||||
void RipCDDialog::UpdateTrackListTable(const SongList& songs) {
|
||||
if (track_names_.length() == songs.length()) {
|
||||
BuildTrackListTable(songs);
|
||||
} else {
|
||||
qLog(Error) << "Number of tracks in metadata does not match number of songs on disc!";
|
||||
}
|
||||
}
|
||||
|
||||
void RipCDDialog::AddAlbumMetadataFromMusicBrainz(const SongList& songs) {
|
||||
Q_ASSERT(songs.length() > 0);
|
||||
|
||||
|
|
|
@ -57,7 +57,11 @@ class RipCDDialog : public QDialog {
|
|||
void Cancelled();
|
||||
void SetupProgressBarLimits(int min, int max);
|
||||
void UpdateProgressBar(int progress);
|
||||
// Initializes track list table based on preliminary song list with durations but without metadata.
|
||||
void BuildTrackListTable(const SongList& songs);
|
||||
// Update track list based on metadata.
|
||||
void UpdateTrackListTable(const SongList& songs);
|
||||
// Update album information with metadata.
|
||||
void AddAlbumMetadataFromMusicBrainz(const SongList& songs);
|
||||
|
||||
private:
|
||||
|
|
Loading…
Reference in New Issue