mirror of
				https://git.suyu.dev/suyu/suyu
				synced 2025-10-30 15:39:02 -05:00 
			
		
		
		
	configuration: Setup UI to config screenshot path and saving
This adds two options to the General -> UI tab. The first disables picking a place to save the file. The second chooses a default directory for saving screenshots.
This commit is contained in:
		| @@ -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 = | ||||
| @@ -675,6 +674,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 +771,7 @@ void Config::ReadUIValues() { | ||||
|     ReadUIGamelistValues(); | ||||
|     ReadUILayoutValues(); | ||||
|     ReadPathValues(); | ||||
|     ReadScreenshotValues(); | ||||
|     ReadShortcutValues(); | ||||
|  | ||||
|     UISettings::values.single_window_mode = | ||||
| @@ -1085,7 +1101,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); | ||||
| @@ -1164,6 +1179,17 @@ void Config::SaveRendererValues() { | ||||
|     qt_config->endGroup(); | ||||
| } | ||||
|  | ||||
| void Config::SaveScreenshotValues() { | ||||
|     qt_config->beginGroup(QStringLiteral("Screenshots")); | ||||
|  | ||||
|     WriteSetting(QStringLiteral("enableScreenshotSaveAs"), | ||||
|                  UISettings::values.enable_screenshot_save_as); | ||||
|     WriteSetting(QStringLiteral("screenshotPath"), | ||||
|                  QString::fromStdString(FileUtil::GetUserPath(FileUtil::UserPath::ScreenshotsDir))); | ||||
|  | ||||
|     qt_config->endGroup(); | ||||
| } | ||||
|  | ||||
| void Config::SaveShortcutValues() { | ||||
|     qt_config->beginGroup(QStringLiteral("Shortcuts")); | ||||
|  | ||||
| @@ -1226,6 +1252,7 @@ void Config::SaveUIValues() { | ||||
|     SaveUIGamelistValues(); | ||||
|     SaveUILayoutValues(); | ||||
|     SavePathValues(); | ||||
|     SaveScreenshotValues(); | ||||
|     SaveShortcutValues(); | ||||
|  | ||||
|     WriteSetting(QStringLiteral("singleWindowMode"), UISettings::values.single_window_mode, true); | ||||
|   | ||||
| @@ -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(); | ||||
|   | ||||
| @@ -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,14 @@ 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))); | ||||
|         ui->screenshot_path_edit->setText(filename); | ||||
|     }); | ||||
| } | ||||
|  | ||||
| ConfigureUi::~ConfigureUi() = default; | ||||
| @@ -66,6 +76,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 +94,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) { | ||||
|   | ||||
| @@ -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"> | ||||
| @@ -127,6 +127,47 @@ | ||||
|      </layout> | ||||
|     </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"> | ||||
|   | ||||
| @@ -66,11 +66,11 @@ struct Values { | ||||
|     // Discord RPC | ||||
|     bool enable_discord_presence; | ||||
|  | ||||
|     bool enable_screenshot_save_as; | ||||
|     u16 screenshot_resolution_factor; | ||||
|  | ||||
|     QString roms_path; | ||||
|     QString symbols_path; | ||||
|     QString screenshot_path; | ||||
|     QString game_dir_deprecated; | ||||
|     bool game_dir_deprecated_deepscan; | ||||
|     QVector<UISettings::GameDir> game_dirs; | ||||
|   | ||||
		Reference in New Issue
	
	Block a user
	 lat9nq
					lat9nq