Qt: properly handle strict rendering mode switch

This commit is contained in:
Megamouse 2020-05-18 14:38:55 +02:00
parent 72fedccaba
commit 1fffffad7a

View File

@ -408,12 +408,13 @@ settings_dialog::settings_dialog(std::shared_ptr<gui_settings> gui_settings, std
m_emu_settings->EnhanceCheckBox(ui->scrictModeRendering, emu_settings_type::StrictRenderingMode); m_emu_settings->EnhanceCheckBox(ui->scrictModeRendering, emu_settings_type::StrictRenderingMode);
SubscribeTooltip(ui->scrictModeRendering, tooltips.settings.strict_rendering_mode); SubscribeTooltip(ui->scrictModeRendering, tooltips.settings.strict_rendering_mode);
connect(ui->scrictModeRendering, &QCheckBox::clicked, [this](bool checked) const auto onStrictRenderingMode = [this](bool checked)
{ {
ui->gb_resolutionScale->setEnabled(!checked); ui->gb_resolutionScale->setEnabled(!checked);
ui->gb_minimumScalableDimension->setEnabled(!checked); ui->gb_minimumScalableDimension->setEnabled(!checked);
ui->gb_anisotropicFilter->setEnabled(!checked); ui->gb_anisotropicFilter->setEnabled(!checked);
}); };
connect(ui->scrictModeRendering, &QCheckBox::clicked, this, onStrictRenderingMode);
// Radio buttons // Radio buttons
@ -434,7 +435,6 @@ settings_dialog::settings_dialog(std::shared_ptr<gui_settings> gui_settings, std
m_emu_settings->EnhanceSlider(ui->resolutionScale, emu_settings_type::ResolutionScale); m_emu_settings->EnhanceSlider(ui->resolutionScale, emu_settings_type::ResolutionScale);
SubscribeTooltip(ui->gb_resolutionScale, tooltips.settings.resolution_scale); SubscribeTooltip(ui->gb_resolutionScale, tooltips.settings.resolution_scale);
ui->gb_resolutionScale->setEnabled(!ui->scrictModeRendering->isChecked());
// rename label texts to fit current state of Resolution Scale // rename label texts to fit current state of Resolution Scale
const int resolution_scale_def = stoi(m_emu_settings->GetSettingDefault(emu_settings_type::ResolutionScale)); const int resolution_scale_def = stoi(m_emu_settings->GetSettingDefault(emu_settings_type::ResolutionScale));
auto scaled_resolution = [resolution_scale_def](int percentage) auto scaled_resolution = [resolution_scale_def](int percentage)
@ -463,7 +463,6 @@ settings_dialog::settings_dialog(std::shared_ptr<gui_settings> gui_settings, std
m_emu_settings->EnhanceSlider(ui->minimumScalableDimension, emu_settings_type::MinimumScalableDimension); m_emu_settings->EnhanceSlider(ui->minimumScalableDimension, emu_settings_type::MinimumScalableDimension);
SubscribeTooltip(ui->gb_minimumScalableDimension, tooltips.settings.minimum_scalable_dimension); SubscribeTooltip(ui->gb_minimumScalableDimension, tooltips.settings.minimum_scalable_dimension);
ui->gb_minimumScalableDimension->setEnabled(!ui->scrictModeRendering->isChecked());
// rename label texts to fit current state of Minimum Scalable Dimension // rename label texts to fit current state of Minimum Scalable Dimension
const int minimum_scalable_dimension_def = stoi(m_emu_settings->GetSettingDefault(emu_settings_type::MinimumScalableDimension)); const int minimum_scalable_dimension_def = stoi(m_emu_settings->GetSettingDefault(emu_settings_type::MinimumScalableDimension));
auto min_scalable_dimension = [minimum_scalable_dimension_def](int dim) auto min_scalable_dimension = [minimum_scalable_dimension_def](int dim)
@ -616,6 +615,7 @@ settings_dialog::settings_dialog(std::shared_ptr<gui_settings> gui_settings, std
}; };
// Handle connects to disable specific checkboxes that depend on GUI state. // Handle connects to disable specific checkboxes that depend on GUI state.
onStrictRenderingMode(ui->scrictModeRendering->isChecked());
fix_gl_legacy(ui->renderBox->currentText()); // Init fix_gl_legacy(ui->renderBox->currentText()); // Init
connect(ui->renderBox, &QComboBox::currentTextChanged, fix_gl_legacy); connect(ui->renderBox, &QComboBox::currentTextChanged, fix_gl_legacy);