From 810b1535fa8ee7bd45cb181f91dd5c11fa6ca5fb Mon Sep 17 00:00:00 2001 From: Caio Oliveira Date: Sat, 6 Dec 2025 19:43:54 -0300 Subject: [PATCH] [docs] BooleanToggles: Add an Index to it Signed-off-by: Caio Oliveira --- docs/user/AddingBooleanToggles.md | 94 ++++++++++++++++++++++++------- 1 file changed, 73 insertions(+), 21 deletions(-) diff --git a/docs/user/AddingBooleanToggles.md b/docs/user/AddingBooleanToggles.md index 29dc661b77..7b8a1c19eb 100644 --- a/docs/user/AddingBooleanToggles.md +++ b/docs/user/AddingBooleanToggles.md @@ -5,25 +5,54 @@ This guide will walk you through adding a new boolean toggle setting to Eden's configuration across both Qt's (PC) and Kotlin's (Android) UIs. +## Index + +1. [Step 1 - src/common/settings](#step-1-src-common-settings) +2. [Qt's (PC) Steps](#qt-pc-steps) + + * [Step 2 - src/qt_common/config/shared_translation.cpp](#step-2-src-qt_common-config-shared_translation-cpp) +3. [ Kotlin's (Android) Steps](#android-steps) + + * [Step 3 - BooleanSetting.kt](#step-3-src-android-app-src-main-java-org-yuzu-yuzu_emu-features-settings-model-booleansetting-kt) + * [Step 4 - SettingsItem.kt](#step-4-src-android-app-src-main-java-org-yuzu-yuzu_emu-features-settings-model-view-settingsitem-kt) + * [Step 5 - SettingsFragmentPresenter.kt](#step-5-src-android-app-src-main-java-org-yuzu-yuzu_emu-features-settings-ui-settingsfragmentpresenter-kt) + * [Step 6 - strings.xml](#step-6-src-android-app-src-main-res-values-strings-xml) +4. [Step 7 - Use Your Toggle](#step-7-use-your-toggle) +5. [Best Practices](#best-practices) + +--- + ## Step 1 - src/common/settings. + Firstly add your desired toggle inside `setting.h`, Example: + ``` SwitchableSetting your_setting_name{linkage, false, "your_setting_name", Category::RendererExtensions}; ``` + NOTE - If you wish for your toggle to be on by default then change `false` to `true` after `linkage,`. + ### Remember to add your toggle to the appropriate category, for example: + Common Categories: -- Category::Renderer -- Category::RendererAdvanced -- Category::RendererExtensions -- Category::System -- Category::Core -## Step 2 - src/qt_common/config/shared_translation.cpp +* Category::Renderer +* Category::RendererAdvanced +* Category::RendererExtensions +* Category::System +* Category::Core + +--- + +## Qt (PC) Steps + +### Step 2 - src/qt_common/config/shared_translation.cpp + Now you can add the toggle to the QT (PC) UI inside `shared_translation.cpp`, Find where you wish for it to appear and place it there. Example: + ``` INSERT(Settings, your_setting_name, @@ -32,22 +61,33 @@ INSERT(Settings, "You can use multiple lines.\n" "Explain any caveats or requirements.")); ``` + ### Make sure to: -- Keep display naming consistant -- Put detailed info in the description -- Use `\n` for line breaks in descriptions -## Step 3 - src/android/app/src/main/java/org/yuzu/yuzu_emu/features/settings/model/BooleanSetting.kt +* Keep display naming consistant +* Put detailed info in the description +* Use `\n` for line breaks in descriptions + +--- + +## Android Steps + +### Step 3 - src/android/app/src/main/java/org/yuzu/yuzu_emu/features/settings/model/BooleanSetting.kt + Now add it inside `BooleanSetting.kt` where it should be in the settings. Example: + ``` RENDERER_YOUR_SETTING_NAME("your_setting_name"), ``` + Remember to make sure the naming of the prefix matches the desired category. -## Step 4 - src/android/app/src/main/java/org/yuzu/yuzu_emu/features/settings/model/view/SettingsItem.kt +### Step 4 - src/android/app/src/main/java/org/yuzu/yuzu_emu/features/settings/model/view/SettingsItem.kt + Now you may add the toggle to the Kotlin (Android) UI inside `SettingsItem.kt`. Example: + ``` put( SwitchSetting( @@ -58,26 +98,35 @@ put( ) ``` -## Step 5 - src/android/app/src/main/java/org/yuzu/yuzu_emu/features/settings/ui/SettingsFragmentPresenter.kt +### Step 5 - src/android/app/src/main/java/org/yuzu/yuzu_emu/features/settings/ui/SettingsFragmentPresenter.kt + Now add your setting to the correct location inside `SettingsFragmentPresenter.kt` within the right category. Example: + ``` add(BooleanSetting.RENDERER_YOUR_SETTING_NAME.key) ``` + Remember, placing matters! Settings appear in the order of where you add them. -## Step 6 - src/android/app/src/main/res/values/strings.xml +### Step 6 - src/android/app/src/main/res/values/strings.xml + Now add your setting and description to `strings.xml` in the appropriate place. Example: + ``` Your Setting Display Name Detailed description of what this setting does. Explain any caveats, requirements, or warnings here. ``` +--- + ## Step 7 - Use Your Toggle! + Now the UI part is done find a place in the code for the toggle, And use it to your heart's desire! Example: + ``` const bool your_value = Settings::values.your_setting_name.GetValue(); @@ -85,16 +134,19 @@ if (your_value) { // Do something when enabled } ``` + If you wish to do something only when the toggle is disabled, Use `if (!your_value) {` instead of `if (your_value) {`. +--- ## Best Practices -- Naming - Use clear, descriptive names. Something for both the devs and the users. -- Defaults - Choose safe default values (usually false for new features). -- Documentation - Write clear descriptions explaining when and why to use the setting. -- Categories - Put settings in the appropriate category. -- Order - Place related settings near each other. -- Testing - Always test on both PC and Android before committing when possible. - -### Thank you for reading, I hope this guide helped you making your toggle! \ No newline at end of file + +* Naming - Use clear, descriptive names. Something for both the devs and the users. +* Defaults - Choose safe default values (usually false for new features). +* Documentation - Write clear descriptions explaining when and why to use the setting. +* Categories - Put settings in the appropriate category. +* Order - Place related settings near each other. +* Testing - Always test on both PC and Android before committing when possible. + +### Thank you for reading, I hope this guide helped you making your toggle!