Fixed bad settings state handling in UI
This commit is contained in:
@@ -225,6 +225,12 @@ class SettingsModel : public Wt::WFormModel
|
|||||||
if (transcodeBitrateRow)
|
if (transcodeBitrateRow)
|
||||||
setValue(TranscodeBitrateField, _transcodeBitrateModel->getString(*transcodeBitrateRow));
|
setValue(TranscodeBitrateField, _transcodeBitrateModel->getString(*transcodeBitrateRow));
|
||||||
|
|
||||||
|
{
|
||||||
|
const bool usesTranscode {settings.transcode.mode != MediaPlayer::Settings::Transcode::Mode::Never};
|
||||||
|
setReadOnly(SettingsModel::TranscodeFormatField, !usesTranscode);
|
||||||
|
setReadOnly(SettingsModel::TranscodeBitrateField, !usesTranscode);
|
||||||
|
}
|
||||||
|
|
||||||
auto replayGainModeRow {_replayGainModeModel->getRowFromValue(settings.replayGain.mode)};
|
auto replayGainModeRow {_replayGainModeModel->getRowFromValue(settings.replayGain.mode)};
|
||||||
if (replayGainModeRow)
|
if (replayGainModeRow)
|
||||||
setValue(ReplayGainModeField, _replayGainModeModel->getString(*replayGainModeRow));
|
setValue(ReplayGainModeField, _replayGainModeModel->getString(*replayGainModeRow));
|
||||||
@@ -234,10 +240,10 @@ class SettingsModel : public Wt::WFormModel
|
|||||||
}
|
}
|
||||||
|
|
||||||
setValue(SubsonicTranscodeEnableField, LmsApp->getUser()->getSubsonicTranscodeEnable());
|
setValue(SubsonicTranscodeEnableField, LmsApp->getUser()->getSubsonicTranscodeEnable());
|
||||||
if (!LmsApp->getUser()->getSubsonicTranscodeEnable())
|
|
||||||
{
|
{
|
||||||
setReadOnly(SubsonicTranscodeFormatField, true);
|
const bool usesTranscode {LmsApp->getUser()->getSubsonicTranscodeEnable()};
|
||||||
setReadOnly(SubsonicTranscodeBitrateField, true);
|
setReadOnly(SubsonicTranscodeFormatField, !usesTranscode);
|
||||||
|
setReadOnly(SubsonicTranscodeBitrateField, !usesTranscode);
|
||||||
}
|
}
|
||||||
|
|
||||||
{
|
{
|
||||||
@@ -263,11 +269,16 @@ class SettingsModel : public Wt::WFormModel
|
|||||||
LMS_LOG(UI, DEBUG) << "Read listenBrainzToken! value = " << listenBrainzToken->getAsString();
|
LMS_LOG(UI, DEBUG) << "Read listenBrainzToken! value = " << listenBrainzToken->getAsString();
|
||||||
setValue(ListenBrainzTokenField, Wt::WString::fromUTF8( std::string {listenBrainzToken->getAsString()}));
|
setValue(ListenBrainzTokenField, Wt::WString::fromUTF8( std::string {listenBrainzToken->getAsString()}));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
{
|
||||||
|
const bool usesListenBrainz {user->getScrobbler() == Scrobbler::ListenBrainz};
|
||||||
|
setReadOnly(SettingsModel::ListenBrainzTokenField, !usesListenBrainz);
|
||||||
|
validator(SettingsModel::ListenBrainzTokenField)->setMandatory(usesListenBrainz);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
private:
|
private:
|
||||||
|
|
||||||
bool validateField(Field field)
|
bool validateField(Field field)
|
||||||
{
|
{
|
||||||
Wt::WString error;
|
Wt::WString error;
|
||||||
@@ -448,11 +459,6 @@ SettingsView::refreshView()
|
|||||||
t->updateModel(model.get());
|
t->updateModel(model.get());
|
||||||
t->updateView(model.get());
|
t->updateView(model.get());
|
||||||
});
|
});
|
||||||
if (LmsApp->getMediaPlayer().getSettings()->transcode.mode == MediaPlayer::Settings::Transcode::Mode::Never)
|
|
||||||
{
|
|
||||||
model->setReadOnly(SettingsModel::TranscodeFormatField, true);
|
|
||||||
model->setReadOnly(SettingsModel::TranscodeBitrateField, true);
|
|
||||||
}
|
|
||||||
|
|
||||||
// Replay gain mode
|
// Replay gain mode
|
||||||
auto replayGainMode {std::make_unique<Wt::WComboBox>()};
|
auto replayGainMode {std::make_unique<Wt::WComboBox>()};
|
||||||
@@ -532,6 +538,7 @@ SettingsView::refreshView()
|
|||||||
{
|
{
|
||||||
const bool enable {model->getScrobblerModel()->getValue(row) == Scrobbler::ListenBrainz};
|
const bool enable {model->getScrobblerModel()->getValue(row) == Scrobbler::ListenBrainz};
|
||||||
model->setReadOnly(SettingsModel::ListenBrainzTokenField, !enable);
|
model->setReadOnly(SettingsModel::ListenBrainzTokenField, !enable);
|
||||||
|
model->validator(SettingsModel::ListenBrainzTokenField)->setMandatory(enable);
|
||||||
t->updateModel(model.get());
|
t->updateModel(model.get());
|
||||||
t->updateView(model.get());
|
t->updateView(model.get());
|
||||||
});
|
});
|
||||||
|
|||||||
Reference in New Issue
Block a user