Add the turbo slider

This commit is contained in:
kleidis 2024-09-21 16:16:38 +02:00 committed by OpenSauce04
parent 43dbe42b29
commit 4e27eb5488
4 changed files with 71 additions and 0 deletions

View File

@ -806,6 +806,7 @@ void QtConfig::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);
@ -1322,6 +1323,7 @@ void QtConfig::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);

View File

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

View File

@ -232,6 +232,66 @@
</layout>
</widget>
</item>
<item>
<widget class="QWidget" name="turbo_speed_layout" native="true">
<layout class="QHBoxLayout" name="turbo_speed_layout_inner">
<property name="leftMargin">
<number>0</number>
</property>
<property name="topMargin">
<number>0</number>
</property>
<property name="rightMargin">
<number>0</number>
</property>
<property name="bottomMargin">
<number>0</number>
</property>
<item>
<widget class="QLabel" name="turbo_speed_label">
<property name="text">
<string>Turbo Speed:</string>
</property>
</widget>
</item>
<item>
<widget class="QSlider" name="turbo_speed_slider">
<property name="minimum">
<number>0</number>
</property>
<property name="maximum">
<number>198</number>
</property>
<property name="singleStep">
<number>5</number>
</property>
<property name="pageStep">
<number>15</number>
</property>
<property name="value">
<number>19</number>
</property>
<property name="orientation">
<enum>Qt::Horizontal</enum>
</property>
<property name="tickPosition">
<enum>QSlider::TicksBelow</enum>
</property>
</widget>
</item>
<item>
<widget class="QLabel" name="turbo_speed_display_label">
<property name="text">
<string/>
</property>
<property name="alignment">
<set>Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter</set>
</property>
</widget>
</item>
</layout>
</widget>
</item>
</layout>
</widget>
</item>

View File

@ -76,6 +76,7 @@ struct Values {
Settings::Setting<bool> show_filter_bar{true, "showFilterBar"};
Settings::Setting<bool> show_status_bar{true, "showStatusBar"};
Settings::Setting<int> turbo_speed_slider{69, "turboSpeedSlider"};
Settings::Setting<bool> confirm_before_closing{true, "confirmClose"};
Settings::Setting<bool> save_state_warning{true, "saveStateWarning"};
Settings::Setting<bool> first_start{true, "firstStart"};