Qt: handle invalid entries in config files

and improve error handling in enhancements
This commit is contained in:
Megamouse 2018-06-17 13:34:53 +02:00
parent b0f464d110
commit 525c257c6a
3 changed files with 105 additions and 33 deletions

View file

@ -517,7 +517,7 @@ settings_dialog::settings_dialog(std::shared_ptr<gui_settings> guiSettings, std:
return QLabel(sizer).sizeHint().width();
};
xemu_settings->EnhanceSlider(ui->resolutionScale, emu_settings::ResolutionScale, true);
xemu_settings->EnhanceSlider(ui->resolutionScale, emu_settings::ResolutionScale);
SubscribeTooltip(ui->gb_resolutionScale, json_gpu_slid["resolutionScale"].toString());
ui->gb_resolutionScale->setEnabled(!ui->scrictModeRendering->isChecked());
// rename label texts to fit current state of Resolution Scale
@ -542,7 +542,7 @@ settings_dialog::settings_dialog(std::shared_ptr<gui_settings> guiSettings, std:
ui->resolutionScale->setValue(resolutionScaleDef);
});
xemu_settings->EnhanceSlider(ui->minimumScalableDimension, emu_settings::MinimumScalableDimension, true);
xemu_settings->EnhanceSlider(ui->minimumScalableDimension, emu_settings::MinimumScalableDimension);
SubscribeTooltip(ui->gb_minimumScalableDimension, json_gpu_slid["minimumScalableDimension"].toString());
ui->gb_minimumScalableDimension->setEnabled(!ui->scrictModeRendering->isChecked());
// rename label texts to fit current state of Minimum Scalable Dimension
@ -829,7 +829,7 @@ settings_dialog::settings_dialog(std::shared_ptr<gui_settings> guiSettings, std:
// Sliders
xemu_settings->EnhanceSlider(ui->perfOverlayUpdateInterval, emu_settings::PerfOverlayUpdateInterval, true);
xemu_settings->EnhanceSlider(ui->perfOverlayUpdateInterval, emu_settings::PerfOverlayUpdateInterval);
SubscribeTooltip(ui->perfOverlayUpdateInterval, json_emu_overlay["perfOverlayUpdateInterval"].toString());
ui->label_update_interval->setText(tr("Update Interval: %0 ms").arg(ui->perfOverlayUpdateInterval->value()));
connect(ui->perfOverlayUpdateInterval, &QSlider::valueChanged, [this](int value)
@ -837,7 +837,7 @@ settings_dialog::settings_dialog(std::shared_ptr<gui_settings> guiSettings, std:
ui->label_update_interval->setText(tr("Update Interval: %0 ms").arg(value));
});
xemu_settings->EnhanceSlider(ui->perfOverlayFontSize, emu_settings::PerfOverlayFontSize, true);
xemu_settings->EnhanceSlider(ui->perfOverlayFontSize, emu_settings::PerfOverlayFontSize);
SubscribeTooltip(ui->perfOverlayFontSize, json_emu_overlay["perfOverlayFontSize"].toString());
ui->label_font_size->setText(tr("Font Size: %0 px").arg(ui->perfOverlayFontSize->value()));
connect(ui->perfOverlayFontSize, &QSlider::valueChanged, [this](int value)
@ -1246,6 +1246,10 @@ int settings_dialog::exec()
// Weirdly enough this won't happen if we change the tab order so that anything else is at index 0.
ui->tab_widget_settings->setCurrentIndex(0);
QTimer::singleShot(0, [=]{ ui->tab_widget_settings->setCurrentIndex(m_tab_Index); });
// Open a dialog if your config file contained invalid entries
QTimer::singleShot(10, [this] { xemu_settings->OpenCorrectionDialog(this); });
return QDialog::exec();
}