From 281da053250b8c9b7911f9d6f3883ccf3f15cee0 Mon Sep 17 00:00:00 2001 From: Jim Broadus Date: Sun, 31 Jan 2021 00:36:47 -0800 Subject: [PATCH] transcoder: Provide user feedback in options error condition Remove condition that allows no dialog to be displayed when user selects options for transcoding. Display the dialog with an error message instead. This also applies to the transcode options dialog in the ripping and network remote settings. --- src/ripper/ripcddialog.cpp | 4 +--- src/transcoder/transcodedialog.cpp | 4 +--- src/transcoder/transcoderoptionsdialog.cpp | 6 +++++- src/transcoder/transcoderoptionsdialog.h | 2 -- src/transcoder/transcoderoptionsdialog.ui | 13 +++++++++++++ src/ui/networkremotesettingspage.cpp | 4 +--- 6 files changed, 21 insertions(+), 12 deletions(-) diff --git a/src/ripper/ripcddialog.cpp b/src/ripper/ripcddialog.cpp index 56025b5d4..4ee9764d7 100644 --- a/src/ripper/ripcddialog.cpp +++ b/src/ripper/ripcddialog.cpp @@ -187,9 +187,7 @@ void RipCDDialog::Options() { .value(); TranscoderOptionsDialog dialog(preset, this); - if (dialog.is_valid()) { - dialog.exec(); - } + dialog.exec(); } // Adds a folder to the destination box. diff --git a/src/transcoder/transcodedialog.cpp b/src/transcoder/transcodedialog.cpp index 668d18c47..7485fc5fe 100644 --- a/src/transcoder/transcodedialog.cpp +++ b/src/transcoder/transcodedialog.cpp @@ -314,9 +314,7 @@ void TranscodeDialog::Options() { .value(); TranscoderOptionsDialog dialog(preset, this); - if (dialog.is_valid()) { - dialog.exec(); - } + dialog.exec(); } // Adds a folder to the destination box. diff --git a/src/transcoder/transcoderoptionsdialog.cpp b/src/transcoder/transcoderoptionsdialog.cpp index 177a34988..0dc81c68d 100644 --- a/src/transcoder/transcoderoptionsdialog.cpp +++ b/src/transcoder/transcoderoptionsdialog.cpp @@ -56,11 +56,15 @@ TranscoderOptionsDialog::TranscoderOptionsDialog(const TranscoderPreset& preset, options_ = new TranscoderOptionsWma(this); break; default: + ui_->errorMessage->setText( + tr("Unknown encoder type: %1").arg(preset.name_)); break; } if (options_) { - setWindowTitle(windowTitle() + " - " + Song::TextForFiletype(preset.type_)); + ui_->errorMessage->setVisible(false); + setWindowTitle(tr("Transcoding options - %1") + .arg(Song::TextForFiletype(preset.type_))); options_->layout()->setContentsMargins(0, 0, 0, 0); ui_->verticalLayout->insertWidget(0, options_); resize(width(), minimumHeight()); diff --git a/src/transcoder/transcoderoptionsdialog.h b/src/transcoder/transcoderoptionsdialog.h index 0eee25b63..e31a83e7b 100644 --- a/src/transcoder/transcoderoptionsdialog.h +++ b/src/transcoder/transcoderoptionsdialog.h @@ -33,8 +33,6 @@ class TranscoderOptionsDialog : public QDialog { QWidget* parent = nullptr); ~TranscoderOptionsDialog(); - bool is_valid() const { return options_; } - void accept(); void set_settings_postfix(const QString& settings_postfix); diff --git a/src/transcoder/transcoderoptionsdialog.ui b/src/transcoder/transcoderoptionsdialog.ui index 9bc4844a9..a052241a4 100644 --- a/src/transcoder/transcoderoptionsdialog.ui +++ b/src/transcoder/transcoderoptionsdialog.ui @@ -14,6 +14,19 @@ Transcoding options + + + + true + + + Error + + + Qt::AlignLeading|Qt::AlignLeft|Qt::AlignTop + + + diff --git a/src/ui/networkremotesettingspage.cpp b/src/ui/networkremotesettingspage.cpp index 1b26eae25..bfbbe18ec 100644 --- a/src/ui/networkremotesettingspage.cpp +++ b/src/ui/networkremotesettingspage.cpp @@ -206,7 +206,5 @@ void NetworkRemoteSettingsPage::Options() { TranscoderOptionsDialog dialog(preset, this); dialog.set_settings_postfix(NetworkRemote::kTranscoderSettingPostfix); - if (dialog.is_valid()) { - dialog.exec(); - } + dialog.exec(); }