diff options
Diffstat (limited to 'src/yuzu/configuration')
| -rw-r--r-- | src/yuzu/configuration/config.cpp | 36 | ||||
| -rw-r--r-- | src/yuzu/configuration/config.h | 2 | ||||
| -rw-r--r-- | src/yuzu/configuration/configure_graphics_advanced.cpp | 10 | ||||
| -rw-r--r-- | src/yuzu/configuration/configure_graphics_advanced.h | 1 | ||||
| -rw-r--r-- | src/yuzu/configuration/configure_graphics_advanced.ui | 7 | ||||
| -rw-r--r-- | src/yuzu/configuration/configure_ui.cpp | 22 | ||||
| -rw-r--r-- | src/yuzu/configuration/configure_ui.ui | 45 | 
7 files changed, 96 insertions, 27 deletions
diff --git a/src/yuzu/configuration/config.cpp b/src/yuzu/configuration/config.cpp index 59a193edd..cb71b8d11 100644 --- a/src/yuzu/configuration/config.cpp +++ b/src/yuzu/configuration/config.cpp @@ -578,7 +578,6 @@ void Config::ReadPathValues() {      UISettings::values.roms_path = ReadSetting(QStringLiteral("romsPath")).toString();      UISettings::values.symbols_path = ReadSetting(QStringLiteral("symbolsPath")).toString(); -    UISettings::values.screenshot_path = ReadSetting(QStringLiteral("screenshotPath")).toString();      UISettings::values.game_dir_deprecated =          ReadSetting(QStringLiteral("gameListRootDir"), QStringLiteral(".")).toString();      UISettings::values.game_dir_deprecated_deepscan = @@ -666,8 +665,6 @@ void Config::ReadRendererValues() {                        QStringLiteral("use_asynchronous_shaders"), false);      ReadSettingGlobal(Settings::values.use_fast_gpu_time, QStringLiteral("use_fast_gpu_time"),                        true); -    ReadSettingGlobal(Settings::values.force_30fps_mode, QStringLiteral("force_30fps_mode"), false); -      ReadSettingGlobal(Settings::values.bg_red, QStringLiteral("bg_red"), 0.0);      ReadSettingGlobal(Settings::values.bg_green, QStringLiteral("bg_green"), 0.0);      ReadSettingGlobal(Settings::values.bg_blue, QStringLiteral("bg_blue"), 0.0); @@ -675,6 +672,22 @@ void Config::ReadRendererValues() {      qt_config->endGroup();  } +void Config::ReadScreenshotValues() { +    qt_config->beginGroup(QStringLiteral("Screenshots")); + +    UISettings::values.enable_screenshot_save_as = +        ReadSetting(QStringLiteral("enable_screenshot_save_as"), true).toBool(); +    FileUtil::GetUserPath( +        FileUtil::UserPath::ScreenshotsDir, +        qt_config +            ->value(QStringLiteral("screenshot_path"), QString::fromStdString(FileUtil::GetUserPath( +                                                           FileUtil::UserPath::ScreenshotsDir))) +            .toString() +            .toStdString()); + +    qt_config->endGroup(); +} +  void Config::ReadShortcutValues() {      qt_config->beginGroup(QStringLiteral("Shortcuts")); @@ -756,6 +769,7 @@ void Config::ReadUIValues() {      ReadUIGamelistValues();      ReadUILayoutValues();      ReadPathValues(); +    ReadScreenshotValues();      ReadShortcutValues();      UISettings::values.single_window_mode = @@ -1085,7 +1099,6 @@ void Config::SavePathValues() {      WriteSetting(QStringLiteral("romsPath"), UISettings::values.roms_path);      WriteSetting(QStringLiteral("symbolsPath"), UISettings::values.symbols_path); -    WriteSetting(QStringLiteral("screenshotPath"), UISettings::values.screenshot_path);      qt_config->beginWriteArray(QStringLiteral("gamedirs"));      for (int i = 0; i < UISettings::values.game_dirs.size(); ++i) {          qt_config->setArrayIndex(i); @@ -1153,9 +1166,6 @@ void Config::SaveRendererValues() {                         Settings::values.use_asynchronous_shaders, false);      WriteSettingGlobal(QStringLiteral("use_fast_gpu_time"), Settings::values.use_fast_gpu_time,                         true); -    WriteSettingGlobal(QStringLiteral("force_30fps_mode"), Settings::values.force_30fps_mode, -                       false); -      // Cast to double because Qt's written float values are not human-readable      WriteSettingGlobal(QStringLiteral("bg_red"), Settings::values.bg_red, 0.0);      WriteSettingGlobal(QStringLiteral("bg_green"), Settings::values.bg_green, 0.0); @@ -1164,6 +1174,17 @@ void Config::SaveRendererValues() {      qt_config->endGroup();  } +void Config::SaveScreenshotValues() { +    qt_config->beginGroup(QStringLiteral("Screenshots")); + +    WriteSetting(QStringLiteral("enable_screenshot_save_as"), +                 UISettings::values.enable_screenshot_save_as); +    WriteSetting(QStringLiteral("screenshot_path"), +                 QString::fromStdString(FileUtil::GetUserPath(FileUtil::UserPath::ScreenshotsDir))); + +    qt_config->endGroup(); +} +  void Config::SaveShortcutValues() {      qt_config->beginGroup(QStringLiteral("Shortcuts")); @@ -1226,6 +1247,7 @@ void Config::SaveUIValues() {      SaveUIGamelistValues();      SaveUILayoutValues();      SavePathValues(); +    SaveScreenshotValues();      SaveShortcutValues();      WriteSetting(QStringLiteral("singleWindowMode"), UISettings::values.single_window_mode, true); diff --git a/src/yuzu/configuration/config.h b/src/yuzu/configuration/config.h index 8e815f829..e5f39b040 100644 --- a/src/yuzu/configuration/config.h +++ b/src/yuzu/configuration/config.h @@ -51,6 +51,7 @@ private:      void ReadPathValues();      void ReadCpuValues();      void ReadRendererValues(); +    void ReadScreenshotValues();      void ReadShortcutValues();      void ReadSystemValues();      void ReadUIValues(); @@ -76,6 +77,7 @@ private:      void SavePathValues();      void SaveCpuValues();      void SaveRendererValues(); +    void SaveScreenshotValues();      void SaveShortcutValues();      void SaveSystemValues();      void SaveUIValues(); diff --git a/src/yuzu/configuration/configure_graphics_advanced.cpp b/src/yuzu/configuration/configure_graphics_advanced.cpp index 8b9180811..c5d1a778c 100644 --- a/src/yuzu/configuration/configure_graphics_advanced.cpp +++ b/src/yuzu/configuration/configure_graphics_advanced.cpp @@ -25,14 +25,12 @@ void ConfigureGraphicsAdvanced::SetConfiguration() {      ui->use_vsync->setEnabled(runtime_lock);      ui->use_assembly_shaders->setEnabled(runtime_lock);      ui->use_asynchronous_shaders->setEnabled(runtime_lock); -    ui->force_30fps_mode->setEnabled(runtime_lock);      ui->anisotropic_filtering_combobox->setEnabled(runtime_lock);      ui->use_vsync->setChecked(Settings::values.use_vsync.GetValue());      ui->use_assembly_shaders->setChecked(Settings::values.use_assembly_shaders.GetValue());      ui->use_asynchronous_shaders->setChecked(Settings::values.use_asynchronous_shaders.GetValue());      ui->use_fast_gpu_time->setChecked(Settings::values.use_fast_gpu_time.GetValue()); -    ui->force_30fps_mode->setChecked(Settings::values.force_30fps_mode.GetValue());      if (Settings::configuring_global) {          ui->gpu_accuracy->setCurrentIndex( @@ -78,9 +76,6 @@ void ConfigureGraphicsAdvanced::ApplyConfiguration() {          if (Settings::values.use_fast_gpu_time.UsingGlobal()) {              Settings::values.use_fast_gpu_time.SetValue(ui->use_fast_gpu_time->isChecked());          } -        if (Settings::values.force_30fps_mode.UsingGlobal()) { -            Settings::values.force_30fps_mode.SetValue(ui->force_30fps_mode->isChecked()); -        }          if (Settings::values.max_anisotropy.UsingGlobal()) {              Settings::values.max_anisotropy.SetValue(                  ui->anisotropic_filtering_combobox->currentIndex()); @@ -97,8 +92,6 @@ void ConfigureGraphicsAdvanced::ApplyConfiguration() {                                                   use_asynchronous_shaders);          ConfigurationShared::ApplyPerGameSetting(&Settings::values.use_fast_gpu_time,                                                   ui->use_fast_gpu_time, use_fast_gpu_time); -        ConfigurationShared::ApplyPerGameSetting(&Settings::values.force_30fps_mode, -                                                 ui->force_30fps_mode, force_30fps_mode);          ConfigurationShared::ApplyPerGameSetting(&Settings::values.max_anisotropy,                                                   ui->anisotropic_filtering_combobox); @@ -132,7 +125,6 @@ void ConfigureGraphicsAdvanced::SetupPerGameUI() {          ui->use_asynchronous_shaders->setEnabled(              Settings::values.use_asynchronous_shaders.UsingGlobal());          ui->use_fast_gpu_time->setEnabled(Settings::values.use_fast_gpu_time.UsingGlobal()); -        ui->force_30fps_mode->setEnabled(Settings::values.force_30fps_mode.UsingGlobal());          ui->anisotropic_filtering_combobox->setEnabled(              Settings::values.max_anisotropy.UsingGlobal()); @@ -149,8 +141,6 @@ void ConfigureGraphicsAdvanced::SetupPerGameUI() {          Settings::values.use_asynchronous_shaders, use_asynchronous_shaders);      ConfigurationShared::SetColoredTristate(ui->use_fast_gpu_time, "use_fast_gpu_time",                                              Settings::values.use_fast_gpu_time, use_fast_gpu_time); -    ConfigurationShared::SetColoredTristate(ui->force_30fps_mode, "force_30fps_mode", -                                            Settings::values.force_30fps_mode, force_30fps_mode);      ConfigurationShared::SetColoredComboBox(          ui->gpu_accuracy, ui->label_gpu_accuracy, "label_gpu_accuracy",          static_cast<int>(Settings::values.gpu_accuracy.GetValue(true))); diff --git a/src/yuzu/configuration/configure_graphics_advanced.h b/src/yuzu/configuration/configure_graphics_advanced.h index 3c4f6f7bb..e61b571c7 100644 --- a/src/yuzu/configuration/configure_graphics_advanced.h +++ b/src/yuzu/configuration/configure_graphics_advanced.h @@ -38,5 +38,4 @@ private:      ConfigurationShared::CheckState use_assembly_shaders;      ConfigurationShared::CheckState use_asynchronous_shaders;      ConfigurationShared::CheckState use_fast_gpu_time; -    ConfigurationShared::CheckState force_30fps_mode;  }; diff --git a/src/yuzu/configuration/configure_graphics_advanced.ui b/src/yuzu/configuration/configure_graphics_advanced.ui index 6a0d29c27..a793c803d 100644 --- a/src/yuzu/configuration/configure_graphics_advanced.ui +++ b/src/yuzu/configuration/configure_graphics_advanced.ui @@ -97,13 +97,6 @@           </widget>          </item>          <item> -         <widget class="QCheckBox" name="force_30fps_mode"> -          <property name="text"> -           <string>Force 30 FPS mode</string> -          </property> -         </widget> -        </item> -        <item>           <widget class="QCheckBox" name="use_fast_gpu_time">            <property name="text">             <string>Use Fast GPU Time</string> diff --git a/src/yuzu/configuration/configure_ui.cpp b/src/yuzu/configuration/configure_ui.cpp index 24b6c5b72..91c21c572 100644 --- a/src/yuzu/configuration/configure_ui.cpp +++ b/src/yuzu/configuration/configure_ui.cpp @@ -4,9 +4,11 @@  #include <array>  #include <utility> +#include <QFileDialog>  #include <QDirIterator>  #include "common/common_types.h" +#include "common/file_util.h"  #include "core/settings.h"  #include "ui_configure_ui.h"  #include "yuzu/configuration/configure_ui.h" @@ -55,6 +57,18 @@ ConfigureUi::ConfigureUi(QWidget* parent) : QWidget(parent), ui(new Ui::Configur              [=]() { ConfigureUi::UpdateSecondRowComboBox(); });      connect(ui->row_2_text_combobox, QOverload<int>::of(&QComboBox::activated),              [=]() { ConfigureUi::UpdateFirstRowComboBox(); }); + +    // Set screenshot path to user specification. +    connect(ui->screenshot_path_button, &QToolButton::pressed, this, [this] { +        const QString& filename = +            QFileDialog::getExistingDirectory( +                this, tr("Select Screenshots Path..."), +                QString::fromStdString(FileUtil::GetUserPath(FileUtil::UserPath::ScreenshotsDir))) + +            QDir::separator(); +        if (!filename.isEmpty()) { +            ui->screenshot_path_edit->setText(filename); +        } +    });  }  ConfigureUi::~ConfigureUi() = default; @@ -66,6 +80,10 @@ void ConfigureUi::ApplyConfiguration() {      UISettings::values.icon_size = ui->icon_size_combobox->currentData().toUInt();      UISettings::values.row_1_text_id = ui->row_1_text_combobox->currentData().toUInt();      UISettings::values.row_2_text_id = ui->row_2_text_combobox->currentData().toUInt(); + +    UISettings::values.enable_screenshot_save_as = ui->enable_screenshot_save_as->isChecked(); +    FileUtil::GetUserPath(FileUtil::UserPath::ScreenshotsDir, +                          ui->screenshot_path_edit->text().toStdString());      Settings::Apply();  } @@ -80,6 +98,10 @@ void ConfigureUi::SetConfiguration() {      ui->show_add_ons->setChecked(UISettings::values.show_add_ons);      ui->icon_size_combobox->setCurrentIndex(          ui->icon_size_combobox->findData(UISettings::values.icon_size)); + +    ui->enable_screenshot_save_as->setChecked(UISettings::values.enable_screenshot_save_as); +    ui->screenshot_path_edit->setText( +        QString::fromStdString(FileUtil::GetUserPath(FileUtil::UserPath::ScreenshotsDir)));  }  void ConfigureUi::changeEvent(QEvent* event) { diff --git a/src/yuzu/configuration/configure_ui.ui b/src/yuzu/configuration/configure_ui.ui index 0b81747d7..d895b799f 100644 --- a/src/yuzu/configuration/configure_ui.ui +++ b/src/yuzu/configuration/configure_ui.ui @@ -6,8 +6,8 @@     <rect>      <x>0</x>      <y>0</y> -    <width>300</width> -    <height>377</height> +    <width>363</width> +    <height>391</height>     </rect>    </property>    <property name="windowTitle"> @@ -128,6 +128,47 @@      </widget>     </item>     <item> +    <widget class="QGroupBox" name="screenshots_GroupBox"> +     <property name="title"> +      <string>Screenshots</string> +     </property> +     <layout class="QVBoxLayout" name="verticalLayout_4"> +      <item> +       <layout class="QVBoxLayout" name="verticalLayout_3"> +        <item> +         <widget class="QCheckBox" name="enable_screenshot_save_as"> +          <property name="text"> +           <string>Ask Where To Save Screenshots (Windows Only)</string> +          </property> +         </widget> +        </item> +        <item> +         <layout class="QHBoxLayout" name="horizontalLayout_4"> +          <item> +           <widget class="QLabel" name="label"> +            <property name="text"> +             <string>Screenshots Path: </string> +            </property> +           </widget> +          </item> +          <item> +           <widget class="QLineEdit" name="screenshot_path_edit"/> +          </item> +          <item> +           <widget class="QToolButton" name="screenshot_path_button"> +            <property name="text"> +             <string>...</string> +            </property> +           </widget> +          </item> +         </layout> +        </item> +       </layout> +      </item> +     </layout> +    </widget> +   </item> +   <item>      <spacer name="verticalSpacer">       <property name="orientation">        <enum>Qt::Vertical</enum>  | 
