From a72e252ec69633f69a750bc7cfb04be6dc46d004 Mon Sep 17 00:00:00 2001 From: Lukas Prediger Date: Mon, 23 Aug 2021 17:18:49 +0300 Subject: [PATCH] RipCDDialog: Added file name preview --- src/ripper/ripcddialog.cpp | 37 +++++++++++++++++++++++++++++++++++-- src/ripper/ripcddialog.h | 1 + src/ripper/ripcddialog.ui | 14 +++++++++++--- 3 files changed, 47 insertions(+), 5 deletions(-) diff --git a/src/ripper/ripcddialog.cpp b/src/ripper/ripcddialog.cpp index 8f21da3d5..b49d1c66b 100644 --- a/src/ripper/ripcddialog.cpp +++ b/src/ripper/ripcddialog.cpp @@ -50,6 +50,7 @@ const int kCheckboxColumn = 0; const int kTrackNumberColumn = 1; const int kTrackTitleColumn = 2; const int kTrackDurationColumn = 3; +const int kTrackFilenamePreviewColumn = 4; } // namespace const char* RipCDDialog::kSettingsGroup = "Transcoder"; @@ -74,7 +75,11 @@ RipCDDialog::RipCDDialog(DeviceManager* device_manager, QWidget* parent) ui_->tableWidget->horizontalHeader()->setSectionResizeMode( kTrackNumberColumn, QHeaderView::ResizeToContents); ui_->tableWidget->horizontalHeader()->setSectionResizeMode( - kTrackTitleColumn, QHeaderView::Stretch); + kTrackDurationColumn, QHeaderView::ResizeToContents); + ui_->tableWidget->horizontalHeader()->setSectionResizeMode( + kTrackTitleColumn, QHeaderView::ResizeToContents); + ui_->tableWidget->horizontalHeader()->setSectionResizeMode( + kTrackFilenamePreviewColumn, QHeaderView::Stretch); // Add a rip button rip_button_ = ui_->button_box->addButton(tr("Start ripping"), @@ -104,6 +109,8 @@ RipCDDialog::RipCDDialog(DeviceManager* device_manager, QWidget* parent) connect(ui_->naming_group, SIGNAL(FormatStringChanged()), SLOT(FormatStringUpdated())); + connect(ui_->naming_group, SIGNAL(OptionChanged()), + SLOT(FormatStringUpdated())); setWindowTitle(tr("Rip CD")); AddDestinationDirectory(QDir::homePath()); @@ -130,6 +137,9 @@ RipCDDialog::RipCDDialog(DeviceManager* device_manager, QWidget* parent) break; } } + + connect(ui_->format, SIGNAL(currentIndexChanged(int)), + SLOT(UpdateFileNamePreviews)); } RipCDDialog::~RipCDDialog() {} @@ -372,6 +382,7 @@ void RipCDDialog::UpdateTrackListTable() { connect(line_edit_track_title, &QLineEdit::textChanged, [this, current_row](const QString& text) { songs_[current_row].set_title(text); + UpdateFileNamePreviews(); }); ui_->tableWidget->setCellWidget(current_row, kTrackTitleColumn, line_edit_track_title); @@ -379,6 +390,25 @@ void RipCDDialog::UpdateTrackListTable() { new QLabel(song.PrettyLength())); current_row++; } + UpdateFileNamePreviews(); +} + +void RipCDDialog::UpdateFileNamePreviews() { + OrganiseFormat format = ui_->naming_group->format(); + TranscoderPreset preset = ui_->format->itemData(ui_->format->currentIndex()) + .value(); + + int current_row = 0; + for (const Song& song : songs_) { + if (format.IsValid()) + ui_->tableWidget->setCellWidget( + current_row, kTrackFilenamePreviewColumn, + new QLabel(format.GetFilenameForSong(song, preset))); + else + ui_->tableWidget->setCellWidget(current_row, kTrackFilenamePreviewColumn, + new QLabel(tr("Invalid format"))); + current_row++; + } } void RipCDDialog::AddAlbumMetadataFromMusicBrainz(const SongList& songs) { @@ -412,7 +442,10 @@ void RipCDDialog::ResetDialog() { ui_->discLineEdit->clear(); } -void RipCDDialog::FormatStringUpdated() { EnableIfPossible(); } +void RipCDDialog::FormatStringUpdated() { + UpdateFileNamePreviews(); + EnableIfPossible(); +} void RipCDDialog::EnableIfPossible() { rip_button_->setEnabled(!songs_.isEmpty() && diff --git a/src/ripper/ripcddialog.h b/src/ripper/ripcddialog.h index df94400ca..d3bff85ff 100644 --- a/src/ripper/ripcddialog.h +++ b/src/ripper/ripcddialog.h @@ -65,6 +65,7 @@ class RipCDDialog : public QDialog { void AddAlbumMetadataFromMusicBrainz(const SongList& songs); void DiscChanged(); void FormatStringUpdated(); + void UpdateFileNamePreviews(); private: static const char* kSettingsGroup; diff --git a/src/ripper/ripcddialog.ui b/src/ripper/ripcddialog.ui index 704401e9a..097259805 100644 --- a/src/ripper/ripcddialog.ui +++ b/src/ripper/ripcddialog.ui @@ -9,7 +9,7 @@ 0 0 - 522 + 600 800 @@ -119,13 +119,16 @@ - 4 + 5 false - 10 + 4 + + + 20 false @@ -153,6 +156,11 @@ Duration + + + Filename Preview + +