diff options
Diffstat (limited to 'src/yuzu/configuration')
| -rw-r--r-- | src/yuzu/configuration/config.cpp | 4 | ||||
| -rw-r--r-- | src/yuzu/configuration/configure_general.cpp | 20 | ||||
| -rw-r--r-- | src/yuzu/configuration/configure_general.ui | 99 | 
3 files changed, 97 insertions, 26 deletions
| diff --git a/src/yuzu/configuration/config.cpp b/src/yuzu/configuration/config.cpp index 8227d06bc..2b670ddfd 100644 --- a/src/yuzu/configuration/config.cpp +++ b/src/yuzu/configuration/config.cpp @@ -830,6 +830,7 @@ void Config::ReadRendererValues() {      ReadGlobalSetting(Settings::values.max_anisotropy);      ReadGlobalSetting(Settings::values.use_speed_limit);      ReadGlobalSetting(Settings::values.speed_limit); +    ReadGlobalSetting(Settings::values.fps_cap);      ReadGlobalSetting(Settings::values.use_disk_shader_cache);      ReadGlobalSetting(Settings::values.gpu_accuracy);      ReadGlobalSetting(Settings::values.use_asynchronous_gpu_emulation); @@ -844,7 +845,6 @@ void Config::ReadRendererValues() {      ReadGlobalSetting(Settings::values.bg_blue);      if (global) { -        ReadBasicSetting(Settings::values.fps_cap);          ReadBasicSetting(Settings::values.renderer_debug);          ReadBasicSetting(Settings::values.renderer_shader_feedback);          ReadBasicSetting(Settings::values.enable_nsight_aftermath); @@ -1382,6 +1382,7 @@ void Config::SaveRendererValues() {      WriteGlobalSetting(Settings::values.max_anisotropy);      WriteGlobalSetting(Settings::values.use_speed_limit);      WriteGlobalSetting(Settings::values.speed_limit); +    WriteGlobalSetting(Settings::values.fps_cap);      WriteGlobalSetting(Settings::values.use_disk_shader_cache);      WriteSetting(QString::fromStdString(Settings::values.gpu_accuracy.GetLabel()),                   static_cast<u32>(Settings::values.gpu_accuracy.GetValue(global)), @@ -1405,7 +1406,6 @@ void Config::SaveRendererValues() {      WriteGlobalSetting(Settings::values.bg_blue);      if (global) { -        WriteBasicSetting(Settings::values.fps_cap);          WriteBasicSetting(Settings::values.renderer_debug);          WriteBasicSetting(Settings::values.renderer_shader_feedback);          WriteBasicSetting(Settings::values.enable_nsight_aftermath); diff --git a/src/yuzu/configuration/configure_general.cpp b/src/yuzu/configuration/configure_general.cpp index 7af3ea97e..566879317 100644 --- a/src/yuzu/configuration/configure_general.cpp +++ b/src/yuzu/configuration/configure_general.cpp @@ -30,6 +30,9 @@ ConfigureGeneral::ConfigureGeneral(const Core::System& system_, QWidget* parent)      connect(ui->button_reset_defaults, &QPushButton::clicked, this,              &ConfigureGeneral::ResetDefaults); + +    ui->fps_cap_label->setVisible(Settings::IsConfiguringGlobal()); +    ui->fps_cap_combobox->setVisible(!Settings::IsConfiguringGlobal());  }  ConfigureGeneral::~ConfigureGeneral() = default; @@ -57,6 +60,11 @@ void ConfigureGeneral::SetConfiguration() {      } else {          ui->speed_limit->setEnabled(Settings::values.use_speed_limit.GetValue() &&                                      use_speed_limit != ConfigurationShared::CheckState::Global); + +        ui->fps_cap_combobox->setCurrentIndex(Settings::values.fps_cap.UsingGlobal() ? 0 : 1); +        ui->fps_cap->setEnabled(!Settings::values.fps_cap.UsingGlobal()); +        ConfigurationShared::SetHighlight(ui->fps_cap_layout, +                                          !Settings::values.fps_cap.UsingGlobal());      }  } @@ -106,6 +114,13 @@ void ConfigureGeneral::ApplyConfiguration() {                                                        Qt::Checked);              Settings::values.speed_limit.SetValue(ui->speed_limit->value());          } + +        if (ui->fps_cap_combobox->currentIndex() == ConfigurationShared::USE_GLOBAL_INDEX) { +            Settings::values.fps_cap.SetGlobal(true); +        } else { +            Settings::values.fps_cap.SetGlobal(false); +            Settings::values.fps_cap.SetValue(ui->fps_cap->value()); +        }      }  } @@ -148,4 +163,9 @@ void ConfigureGeneral::SetupPerGameUI() {          ui->speed_limit->setEnabled(ui->toggle_speed_limit->isChecked() &&                                      (use_speed_limit != ConfigurationShared::CheckState::Global));      }); + +    connect(ui->fps_cap_combobox, qOverload<int>(&QComboBox::activated), this, [this](int index) { +        ui->fps_cap->setEnabled(index == 1); +        ConfigurationShared::SetHighlight(ui->fps_cap_layout, index == 1); +    });  } diff --git a/src/yuzu/configuration/configure_general.ui b/src/yuzu/configuration/configure_general.ui index f9f0e3ebf..112dc72b3 100644 --- a/src/yuzu/configuration/configure_general.ui +++ b/src/yuzu/configuration/configure_general.ui @@ -6,8 +6,8 @@     <rect>      <x>0</x>      <y>0</y> -    <width>329</width> -    <height>407</height> +    <width>744</width> +    <height>568</height>     </rect>    </property>    <property name="windowTitle"> @@ -28,34 +28,85 @@          <item>           <layout class="QVBoxLayout" name="GeneralVerticalLayout">            <item> -            <layout class="QHBoxLayout" name="horizontalLayout_2"> -              <item> -                <widget class="QLabel" name="fps_cap_label"> +           <widget class="QWidget" name="fps_cap_layout" native="true"> +            <layout class="QHBoxLayout" name="horizontalLayout" stretch="1,1"> +             <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> +              <layout class="QHBoxLayout" name="horizontalLayout_4"> +               <item> +                <widget class="QComboBox" name="fps_cap_combobox"> +                 <property name="currentText"> +                  <string>Use global framerate cap</string> +                 </property> +                 <property name="currentIndex"> +                  <number>0</number> +                 </property> +                 <item>                    <property name="text"> -                    <string>Framerate Cap</string> +                   <string>Use global framerate cap</string>                    </property> -                  <property name="toolTip"> -                    <string>Requires the use of the FPS Limiter Toggle hotkey to take effect.</string> +                 </item> +                 <item> +                  <property name="text"> +                   <string>Set framerate cap:</string>                    </property> +                 </item>                  </widget> -              </item> -              <item> -                <widget class="QSpinBox" name="fps_cap"> -                  <property name="suffix"> -                    <string>x</string> -                  </property> -                  <property name="minimum"> -                    <number>1</number> -                  </property> -                  <property name="maximum"> -                    <number>1000</number> -                  </property> -                  <property name="value"> -                    <number>500</number> -                  </property> +               </item> +               <item> +                <widget class="QLabel" name="fps_cap_label"> +                 <property name="toolTip"> +                  <string>Requires the use of the FPS Limiter Toggle hotkey to take effect.</string> +                 </property> +                 <property name="text"> +                  <string>Framerate Cap</string> +                 </property>                  </widget> -              </item> +               </item> +               <item> +                <spacer name="horizontalSpacer"> +                 <property name="orientation"> +                  <enum>Qt::Horizontal</enum> +                 </property> +                 <property name="sizeHint" stdset="0"> +                  <size> +                   <width>40</width> +                   <height>20</height> +                  </size> +                 </property> +                </spacer> +               </item> +              </layout> +             </item> +             <item> +              <widget class="QSpinBox" name="fps_cap"> +               <property name="suffix"> +                <string>x</string> +               </property> +               <property name="minimum"> +                <number>1</number> +               </property> +               <property name="maximum"> +                <number>1000</number> +               </property> +               <property name="value"> +                <number>500</number> +               </property> +              </widget> +             </item>              </layout> +           </widget>            </item>            <item>             <layout class="QHBoxLayout" name="horizontalLayout_2"> | 
