diff --git a/src/lime_qt/configuration/config.cpp b/src/lime_qt/configuration/config.cpp index 9342ce436..4fb5f494d 100644 --- a/src/lime_qt/configuration/config.cpp +++ b/src/lime_qt/configuration/config.cpp @@ -798,6 +798,7 @@ void Config::ReadUIValues() { ReadBasicSetting(UISettings::values.display_titlebar); ReadBasicSetting(UISettings::values.show_filter_bar); ReadBasicSetting(UISettings::values.show_status_bar); + ReadBasicSetting(UISettings::values.turbo_speed_slider); ReadBasicSetting(UISettings::values.confirm_before_closing); ReadBasicSetting(UISettings::values.save_state_warning); ReadBasicSetting(UISettings::values.first_start); @@ -1308,6 +1309,7 @@ void Config::SaveUIValues() { WriteBasicSetting(UISettings::values.show_filter_bar); WriteBasicSetting(UISettings::values.show_status_bar); WriteBasicSetting(UISettings::values.confirm_before_closing); + WriteBasicSetting(UISettings::values.turbo_speed_slider); WriteBasicSetting(UISettings::values.save_state_warning); WriteBasicSetting(UISettings::values.first_start); WriteBasicSetting(UISettings::values.callout_flags); diff --git a/src/lime_qt/configuration/configure_general.cpp b/src/lime_qt/configuration/configure_general.cpp index 967250833..1ea055185 100644 --- a/src/lime_qt/configuration/configure_general.cpp +++ b/src/lime_qt/configuration/configure_general.cpp @@ -29,6 +29,11 @@ ConfigureGeneral::ConfigureGeneral(QWidget* parent) ui->setupUi(this); + connect(ui->turbo_speed_slider, &QSlider::valueChanged, this, [&](int value) { + UISettings::values.turbo_speed_slider.SetValue(SliderToSettings(value)); + ui->turbo_speed_display_label->setText(QStringLiteral("%1%").arg(UISettings::values.turbo_speed_slider.GetValue())); + }); + // Set a minimum width for the label to prevent the slider from changing size. // This scales across DPIs, and is acceptable for uncapitalized strings. const auto width = static_cast(tr("unthrottled").size() * 6); @@ -71,6 +76,8 @@ ConfigureGeneral::~ConfigureGeneral() = default; void ConfigureGeneral::SetConfiguration() { if (Settings::IsConfiguringGlobal()) { + ui->turbo_speed_slider->setValue(SettingsToSlider(UISettings::values.turbo_speed_slider.GetValue())); + ui->toggle_check_exit->setChecked(UISettings::values.confirm_before_closing.GetValue()); ui->toggle_background_pause->setChecked( UISettings::values.pause_when_in_background.GetValue()); @@ -210,6 +217,7 @@ void ConfigureGeneral::SetupPerGameUI() { ConfigurationShared::SetHighlight(ui->widget_screenshot, index == 1); }); + ui->turbo_speed_slider->setVisible(false); ui->general_group->setVisible(false); ui->updateBox->setVisible(false); ui->button_reset_defaults->setVisible(false); diff --git a/src/lime_qt/configuration/configure_general.ui b/src/lime_qt/configuration/configure_general.ui index deb6c4282..f6531af6c 100644 --- a/src/lime_qt/configuration/configure_general.ui +++ b/src/lime_qt/configuration/configure_general.ui @@ -232,6 +232,66 @@ + + + + + 0 + + + 0 + + + 0 + + + 0 + + + + + Turbo Speed: + + + + + + + 0 + + + 198 + + + 5 + + + 15 + + + 19 + + + Qt::Horizontal + + + QSlider::TicksBelow + + + + + + + + + + Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter + + + + + + diff --git a/src/lime_qt/uisettings.h b/src/lime_qt/uisettings.h index d10c14ce8..1c5fb9657 100644 --- a/src/lime_qt/uisettings.h +++ b/src/lime_qt/uisettings.h @@ -76,6 +76,7 @@ struct Values { Settings::Setting show_filter_bar{true, "showFilterBar"}; Settings::Setting show_status_bar{true, "showStatusBar"}; + Settings::Setting turbo_speed_slider{69, "turboSpeedSlider"}; Settings::Setting confirm_before_closing{true, "confirmClose"}; Settings::Setting save_state_warning{true, "saveStateWarning"}; Settings::Setting first_start{true, "firstStart"};