Skip to content

Rearrange the "Configuration"-menu#1994

Open
72374 wants to merge 4 commits intogrumpycoders:mainfrom
72374:sort-menus-better
Open

Rearrange the "Configuration"-menu#1994
72374 wants to merge 4 commits intogrumpycoders:mainfrom
72374:sort-menus-better

Conversation

@72374
Copy link
Copy Markdown

@72374 72374 commented Mar 28, 2026

When i looked around the emulator to learn what it can do and where to find the relevant settings, i found the "Configuration"-menu to be quite cluttered, and could not find the fullscreen-setting for quite a while.

This is an attempt to improve the placement and sorting of some of those settings.
I tried to sort these in a pattern that relates to how often those are changed, and under which circumstances.

Fullscreen can be toggled spontaneously during gameplay; for example, when one wants to read/watch a guide about a game while playing it, and then going back into fullscreen-mode once one does not need it anymore.
So, it should be quick to toggle.
The related "Full window render"-option, is necessary, for the game to actually be displayed in fullscreen.

Shader-settings are likely to be changed and tweaked depending on who is playing, and what game one is playing.

Changing controller-settings is usually necessary, but usually only done once per controller; so it should be easy to find, but can be after the more spontaneously used settings.
Save-data management can sometimes be necessary, if one wants to start a game from the beginning without any prior progress. Usually not often, but, the settings for that, should still be quick to find and use, without more technical things above of those.

The settings after that, relate to how the game is emulated; these are technical settings, and ideally would not need to be changed often when using the emulator to play games. If one uses it to develop, it is probably more convenient to place the relevant window next to the game-view.

In the last group, are the settings, that relate to the emulator itself. These are mostly settings, which probably will not be changed for a long time, once set; like: language, theme, disc-preloading, and automatic updates… except for the widescreen-setting, which should probably be moved to a more appropriate place sometime.

Comparison

main-branch

before 1 before 2

This PR

after 1 after 2

I hope this is useful. :)

72374 added 4 commits March 28, 2026 23:39
from "Debug" > "Rendering".

These settings are not specific to debugging, and quite useful when playing
games.
This makes it easier to understand that these settings are related.
These settings are about the hardware that one would normally interact with,
when playing with the actual console-game-system:
Controllers for playing games, and Memory Cards for managing save-states.
These mostly relate to the emulator itself.
@coderabbitai
Copy link
Copy Markdown
Contributor

coderabbitai bot commented Mar 28, 2026

📝 Walkthrough

Walkthrough

The GUI's "Configuration" menu is reorganized by moving and regrouping entries ("Emulation", "GPU", "SPU", "UI", "System", "Controls") with separators. The "Fullscreen" and "Full window render" toggles are relocated from "Rendering" to "Configuration", with updated callbacks managing screen setup and dockspace clearing. A trailing newline is added to the file.

Changes

Cohort / File(s) Summary
GUI Menu Reorganization
src/gui/gui.cc
Restructured "Configuration" menu by relocating menu entries ("Emulation", "GPU", "SPU", "UI", "System", "Controls") with added separators for logical grouping. Moved "Fullscreen" toggle from "Rendering" into "Configuration" with setFullscreen() and screen setup logic. Relocated "Full window render" toggle to "Configuration" with dockspace node clearing on toggle. Fixed file's trailing newline.

Estimated code review effort

🎯 2 (Simple) | ⏱️ ~10 minutes

Poem

🐰 The menus dance and find their place,
Configuration glows with newfound grace,
Separators make the sections clear,
Fullscreen greets with gentle cheer,
Order restored, the UI's refined! ✨

🚥 Pre-merge checks | ✅ 2 | ❌ 1

❌ Failed checks (1 warning)

Check name Status Explanation Resolution
Docstring Coverage ⚠️ Warning Docstring coverage is 0.00% which is insufficient. The required threshold is 80.00%. Write docstrings for the functions missing them to satisfy the coverage threshold.
✅ Passed checks (2 passed)
Check name Status Explanation
Title check ✅ Passed The title clearly summarizes the main change: reorganizing the Configuration menu to improve usability and discoverability.
Description check ✅ Passed The PR description clearly explains the motivation for reorganizing the Configuration menu, detailing the rationale for grouping and ordering settings based on usage frequency and context, with visual comparisons before and after.

✏️ Tip: You can configure your own custom pre-merge checks in the settings.

✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands and usage tips.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant