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.
This commit is contained in:
Jim Broadus 2021-01-31 00:36:47 -08:00 committed by John Maguire
parent b735f5d1c3
commit 281da05325
6 changed files with 21 additions and 12 deletions

View File

@ -187,9 +187,7 @@ void RipCDDialog::Options() {
.value<TranscoderPreset>();
TranscoderOptionsDialog dialog(preset, this);
if (dialog.is_valid()) {
dialog.exec();
}
dialog.exec();
}
// Adds a folder to the destination box.

View File

@ -314,9 +314,7 @@ void TranscodeDialog::Options() {
.value<TranscoderPreset>();
TranscoderOptionsDialog dialog(preset, this);
if (dialog.is_valid()) {
dialog.exec();
}
dialog.exec();
}
// Adds a folder to the destination box.

View File

@ -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());

View File

@ -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);

View File

@ -14,6 +14,19 @@
<string>Transcoding options</string>
</property>
<layout class="QVBoxLayout" name="verticalLayout">
<item>
<widget class="QLabel" name="errorMessage">
<property name="enabled">
<bool>true</bool>
</property>
<property name="text">
<string>Error</string>
</property>
<property name="alignment">
<set>Qt::AlignLeading|Qt::AlignLeft|Qt::AlignTop</set>
</property>
</widget>
</item>
<item>
<widget class="QDialogButtonBox" name="buttonBox">
<property name="orientation">

View File

@ -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();
}