diff options
Diffstat (limited to 'src/yuzu/configuration')
| -rw-r--r-- | src/yuzu/configuration/config.cpp | 31 | ||||
| -rw-r--r-- | src/yuzu/configuration/config.h | 2 | ||||
| -rw-r--r-- | src/yuzu/configuration/configure_ui.cpp | 22 | ||||
| -rw-r--r-- | src/yuzu/configuration/configure_ui.ui | 45 | 
4 files changed, 96 insertions, 4 deletions
| diff --git a/src/yuzu/configuration/config.cpp b/src/yuzu/configuration/config.cpp index 94b96afb4..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 = @@ -673,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")); @@ -754,6 +769,7 @@ void Config::ReadUIValues() {      ReadUIGamelistValues();      ReadUILayoutValues();      ReadPathValues(); +    ReadScreenshotValues();      ReadShortcutValues();      UISettings::values.single_window_mode = @@ -1083,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); @@ -1159,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")); @@ -1221,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_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> | 
