diff --git a/doc/classes/EditorDock.xml b/doc/classes/EditorDock.xml
index 743386f3a3..ed43f42729 100644
--- a/doc/classes/EditorDock.xml
+++ b/doc/classes/EditorDock.xml
@@ -99,7 +99,7 @@
The shortcut used to open the dock.
- If [code]true[/code], the dock will always display an icon, regardless of [member EditorSettings.interface/editor/dock_tab_style] or [member EditorSettings.interface/editor/bottom_dock_tab_style].
+ If [code]true[/code], the dock will always display an icon, regardless of [member EditorSettings.interface/editor/docks/dock_tab_style] or [member EditorSettings.interface/editor/docks/bottom_dock_tab_style].
If [code]true[/code], the dock appears in the [b]Editor > Editor Docks[/b] menu and can be closed. Non-global docks can still be closed using [method close] or when [member closable] is [code]true[/code].
diff --git a/doc/classes/EditorFileDialog.xml b/doc/classes/EditorFileDialog.xml
index 713044e910..4d03c2bfc3 100644
--- a/doc/classes/EditorFileDialog.xml
+++ b/doc/classes/EditorFileDialog.xml
@@ -5,7 +5,7 @@
[EditorFileDialog] is a [FileDialog] tweaked to work in the editor. It automatically handles favorite and recent directory lists, and synchronizes some properties with their corresponding editor settings.
- [EditorFileDialog] will automatically show a native dialog based on the [member EditorSettings.interface/editor/use_native_file_dialogs] editor setting and ignores [member FileDialog.use_native_dialog].
+ [EditorFileDialog] will automatically show a native dialog based on the [member EditorSettings.interface/editor/appearance/use_native_file_dialogs] editor setting and ignores [member FileDialog.use_native_dialog].
[b]Note:[/b] [EditorFileDialog] is invisible by default. To make it visible, call one of the [code]popup_*[/code] methods from [Window] on the node, such as [method Window.popup_centered_clamped].
diff --git a/doc/classes/EditorInterface.xml b/doc/classes/EditorInterface.xml
index 40631d98ac..633f69b2f9 100644
--- a/doc/classes/EditorInterface.xml
+++ b/doc/classes/EditorInterface.xml
@@ -120,7 +120,7 @@
Returns the actual scale of the editor UI ([code]1.0[/code] being 100% scale). This can be used to adjust position and dimensions of the UI added by plugins.
- [b]Note:[/b] This value is set via the [member EditorSettings.interface/editor/display_scale] and [member EditorSettings.interface/editor/custom_display_scale] settings. The editor must be restarted for changes to be properly applied.
+ [b]Note:[/b] This value is set via the [member EditorSettings.interface/editor/appearance/display_scale] and [member EditorSettings.interface/editor/appearance/custom_display_scale] settings. The editor must be restarted for changes to be properly applied.
@@ -262,7 +262,7 @@
Returns [code]true[/code] if multiple window support is enabled in the editor. Multiple window support is enabled if [i]all[/i] of these statements are true:
- [member EditorSettings.interface/multi_window/enable] is [code]true[/code].
- - [member EditorSettings.interface/editor/single_window_mode] is [code]false[/code].
+ - [member EditorSettings.interface/editor/display/single_window_mode] is [code]false[/code].
- [member Viewport.gui_embed_subwindows] is [code]false[/code]. This is forced to [code]true[/code] on platforms that don't support multiple windows such as Web, or when the [code]--single-window[/code] [url=$DOCS_URL/tutorials/editor/command_line_tutorial.html]command line argument[/url] is used.
diff --git a/doc/classes/EditorSettings.xml b/doc/classes/EditorSettings.xml
index dd2aa854ca..b1ee344b24 100644
--- a/doc/classes/EditorSettings.xml
+++ b/doc/classes/EditorSettings.xml
@@ -916,174 +916,174 @@
- [b]Disabled[/b] ([code]2[/code]): Accessibility support is fully disabled.
[b]Note:[/b] Accessibility debugging tools, such as Accessibility Insights for Windows, Accessibility Inspector (macOS), or AT-SPI Browser (Linux/BSD), do not count as assistive apps. To test the editor with these tools, use [b]Always Active[/b].
-
+
How to position the Cancel and OK buttons in the editor's [AcceptDialog] windows. Different platforms have different conventions for this, which can be overridden through this setting to avoid accidental clicks when using Godot on multiple platforms.
- [b]Auto[/b] follows the platform convention: OK first on Windows, KDE, and LXQt; Cancel first on macOS and other Linux desktop environments.
- [b]Cancel First[/b] forces the Cancel/OK ordering.
- [b]OK First[/b] forces the OK/Cancel ordering.
To check if these buttons are swapped at runtime, use [method DisplayServer.get_swap_cancel_ok].
-
- If [code]true[/code], automatically opens screenshots with the default program associated to [code].png[/code] files after a screenshot is taken using the [b]Editor > Take Screenshot[/b] action.
-
-
- Tab style of editor docks located at the bottom.
-
-
- The font to use for the script editor. Must be a resource of a [Font] type such as a [code].ttf[/code] or [code].otf[/code] font file.
-
-
- The font ligatures to enable for the currently configured code font. Not all fonts include support for ligatures.
- [b]Note:[/b] The default editor code font ([url=https://www.jetbrains.com/lp/mono/]JetBrains Mono[/url]) has contextual ligatures in its font file.
-
-
- List of custom OpenType features to use, if supported by the currently configured code font. Not all fonts include support for custom OpenType features. The string should follow the OpenType specification.
- [b]Note:[/b] The default editor code font ([url=https://www.jetbrains.com/lp/mono/]JetBrains Mono[/url]) has custom OpenType features in its font file, but there is no documented list yet.
-
-
- List of alternative characters to use, if supported by the currently configured code font. Not all fonts include support for custom variations. The string should follow the OpenType specification.
- [b]Note:[/b] The default editor code font ([url=https://www.jetbrains.com/lp/mono/]JetBrains Mono[/url]) has alternate characters in its font file, but there is no documented list yet.
-
-
- The size of the font in the script editor. This setting does not impact the font size of the Output panel (see [member run/output/font_size]).
-
-
+
If [code]true[/code], the main menu collapses into a [MenuButton].
- [b]Note:[/b] This setting is only applicable on macOS when [member interface/editor/use_embedded_menu] is [code]true[/code].
+ [b]Note:[/b] This setting is only applicable on macOS when [member interface/editor/appearance/use_embedded_menu] is [code]true[/code].
[b]Note:[/b] Defaults to [code]true[/code] on the Android editor.
-
+
The custom editor scale factor to use. This can be used for displays with very high DPI where a scale factor of 200% is not sufficient.
- [b]Note:[/b] Only effective if [member interface/editor/display_scale] is set to [b]Custom[/b].
+ [b]Note:[/b] Only effective if [member interface/editor/appearance/display_scale] is set to [b]Custom[/b].
-
+
The display scale factor to use for the editor interface. Higher values are more suited to hiDPI/Retina displays.
If set to [b]Auto[/b], the editor scale is automatically determined based on the screen resolution and reported display DPI. This heuristic is not always ideal, which means you can get better results by setting the editor scale manually.
- If set to [b]Custom[/b], the scaling value in [member interface/editor/custom_display_scale] will be used.
+ If set to [b]Custom[/b], the scaling value in [member interface/editor/appearance/custom_display_scale] will be used.
-
- Tab style of editor docks, except bottom docks.
-
-
- During a drag-and-drop, this is how long to wait over a UI element before it triggers a reaction (e.g. a section unfolds to show nested items).
-
-
- The language to use for the editor interface. If set to [b]Auto[/b], the language is automatically determined based on the system locale. See also [method EditorInterface.get_editor_language].
- Translations are provided by the community. If you spot a mistake, [url=https://contributing.godotengine.org/en/latest/documentation/translation/index.html]contribute to editor translations on Weblate![/url]
-
-
+
The preferred monitor to display the editor. If [b]Auto[/b], the editor will remember the last screen it was displayed on across multiple sessions.
-
+
Expanding main editor window content to the title, if supported by [DisplayServer]. See [constant DisplayServer.WINDOW_FLAG_EXTEND_TO_TITLE].
Specific to the macOS platform.
-
+
+ The preferred monitor to display the project manager.
+
+
+ If enabled, displays an icon in the top-right corner of the editor that spins when the editor redraws a frame. This can be used to diagnose situations where the engine is constantly redrawing, which should be avoided as this increases CPU and GPU utilization for no good reason. To further troubleshoot these situations, start the editor with the [code]--debug-canvas-item-redraw[/code] [url=$DOCS_URL/tutorials/editor/command_line_tutorial.html]command line argument[/url].
+ Consider enabling this if you are developing editor plugins to ensure they only make the editor redraw when required.
+ The default [b]Auto[/b] value will only enable this if the editor was compiled with the [code]dev_build=yes[/code] SCons option (the default is [code]dev_build=no[/code]).
+ [b]Note:[/b] If [member interface/editor/display/update_continuously] is [code]true[/code], the spinner icon displays in red.
+ [b]Note:[/b] If the editor was started with the [code]--debug-canvas-item-redraw[/code] [url=$DOCS_URL/tutorials/editor/command_line_tutorial.html]command line argument[/url], the update spinner will [i]never[/i] display regardless of this setting's value. This is to avoid confusion with what would cause redrawing in real world scenarios.
+
+
+ If [code]true[/code], editor main menu is using embedded [MenuBar] instead of system global menu.
+ Specific to the macOS platform.
+
+
+ If [code]true[/code], editor UI uses OS native file/directory selection dialogs.
+
+
+ If [code]true[/code], automatically opens screenshots with the default program associated to [code].png[/code] files after a screenshot is taken using the [b]Editor > Take Screenshot[/b] action.
+
+
+ If [code]true[/code], (re)imports resources even if the editor window is unfocused or minimized. If [code]false[/code], resources are only (re)imported when the editor window is focused. This can be set to [code]true[/code] to speed up iteration by starting the import process earlier when saving files in the project folder. This also allows getting visual feedback on changes without having to click the editor window, which is useful with multi-monitor setups. The downside of setting this to [code]true[/code] is that it increases idle CPU usage and may steal CPU time from other applications when importing resources.
+
+
+ If [code]false[/code], the editor will save all scenes when confirming the [b]Save[/b] action when quitting the editor or quitting to the project list. If [code]true[/code], the editor will ask to save each scene individually.
+
+
+ If [code]true[/code], scenes and scripts are saved when the editor loses focus. Depending on the work flow, this behavior can be less intrusive than [member text_editor/behavior/files/autosave_interval_secs] or remembering to save manually.
+
+
+ If [code]true[/code], the editor's Script tab will have a separate distraction mode setting from the 2D/3D/Game/AssetLib tabs. If [code]false[/code], the distraction-free mode toggle is shared between all tabs.
+
+
+ If enabled, displays internal engine errors in toast notifications (toggleable by clicking the "bell" icon at the bottom of the editor). No matter the value of this setting, non-internal engine errors will always be visible in toast notifications.
+ The default [b]Auto[/b] value will only enable this if the editor was compiled with the [code]dev_build=yes[/code] SCons option (the default is [code]dev_build=no[/code]).
+
+
+ If [code]true[/code], keeps the screen on (even in case of inactivity), so the screensaver does not take over. Works on desktop and mobile platforms.
+
+
+ If [code]true[/code], embed modal windows such as docks inside the main editor window. When single-window mode is enabled, tooltips will also be embedded inside the main editor window, which means they can't be displayed outside of the editor window. Single-window mode can be faster as it does not need to create a separate window for every popup and tooltip, which can be a slow operation depending on the operating system and rendering method in use.
+ This is equivalent to [member ProjectSettings.display/window/subwindows/embed_subwindows] in the running project, except the setting's value is inverted.
+ [b]Note:[/b] To query whether the editor can use multiple windows in an editor plugin, use [method EditorInterface.is_multi_window_enabled] instead of querying the value of this editor setting.
+ [b]Note:[/b] If [code]true[/code], game embedding is disabled.
+
+
+ If [code]true[/code], redraws the editor every frame even if nothing has changed on screen. When this setting is enabled, the update spinner displays in red (see [member interface/editor/appearance/show_update_spinner]).
+ [b]Warning:[/b] This greatly increases CPU and GPU utilization, leading to increased power usage. This should only be enabled for troubleshooting purposes.
+
+
+ Sets the V-Sync mode for the editor. Does not affect the project when run from the editor (this is controlled by [member ProjectSettings.display/window/vsync/vsync_mode]).
+ Depending on the platform and used renderer, the engine will fall back to [b]Enabled[/b] if the desired mode is not supported.
+ [b]Note:[/b] V-Sync modes other than [b]Enabled[/b] are only supported in the Forward+ and Mobile rendering methods, not Compatibility.
+
+
+ Tab style of editor docks located at the bottom.
+
+
+ Tab style of editor docks, except bottom docks.
+
+
+ The font to use for the script editor. Must be a resource of a [Font] type such as a [code].ttf[/code] or [code].otf[/code] font file.
+
+
+ The font ligatures to enable for the currently configured code font. Not all fonts include support for ligatures.
+ [b]Note:[/b] The default editor code font ([url=https://www.jetbrains.com/lp/mono/]JetBrains Mono[/url]) has contextual ligatures in its font file.
+
+
+ List of custom OpenType features to use, if supported by the currently configured code font. Not all fonts include support for custom OpenType features. The string should follow the OpenType specification.
+ [b]Note:[/b] The default editor code font ([url=https://www.jetbrains.com/lp/mono/]JetBrains Mono[/url]) has custom OpenType features in its font file, but there is no documented list yet.
+
+
+ List of alternative characters to use, if supported by the currently configured code font. Not all fonts include support for custom variations. The string should follow the OpenType specification.
+ [b]Note:[/b] The default editor code font ([url=https://www.jetbrains.com/lp/mono/]JetBrains Mono[/url]) has alternate characters in its font file, but there is no documented list yet.
+
+
+ The size of the font in the script editor. This setting does not impact the font size of the Output panel (see [member run/output/font_size]).
+
+
If set to [code]true[/code], MSDF font rendering will be used for the visual shader graph editor. You may need to set this to [code]false[/code] when using a custom main font, as some fonts will look broken due to the use of self-intersecting outlines in their font data. Downloading the font from the font maker's official website as opposed to a service like Google Fonts can help resolve this issue.
-
+
FreeType's font anti-aliasing mode used to render the editor fonts. Most fonts are not designed to look good with anti-aliasing disabled, so it's recommended to leave this enabled unless you're using a pixel art font.
-
+
If set to [code]true[/code], embedded font bitmap loading is disabled (bitmap-only and color fonts ignore this property).
-
+
The font hinting mode to use for the editor fonts. FreeType supports the following font hinting modes:
- [b]None:[/b] Don't use font hinting when rasterizing the font. This results in a smooth font, but it can look blurry.
- [b]Light:[/b] Use hinting on the X axis only. This is a compromise between font sharpness and smoothness.
- [b]Normal:[/b] Use hinting on both X and Y axes. This results in a sharp font, but it doesn't look very smooth.
If set to [b]Auto[/b], the font hinting mode will be set to match the current operating system in use. This means the [b]Light[/b] hinting mode will be used on Windows and Linux, and the [b]None[/b] hinting mode will be used on macOS.
-
+
The subpixel positioning mode to use when rendering editor font glyphs. This affects both the main and code fonts. [b]Disabled[/b] is the fastest to render and uses the least memory. [b]Auto[/b] only uses subpixel positioning for small font sizes (where the benefit is the most noticeable). [b]One Half of a Pixel[/b] and [b]One Quarter of a Pixel[/b] force the same subpixel positioning mode for all editor fonts, regardless of their size (with [b]One Quarter of a Pixel[/b] being the highest-quality option).
-
- If [code]true[/code], (re)imports resources even if the editor window is unfocused or minimized. If [code]false[/code], resources are only (re)imported when the editor window is focused. This can be set to [code]true[/code] to speed up iteration by starting the import process earlier when saving files in the project folder. This also allows getting visual feedback on changes without having to click the editor window, which is useful with multi-monitor setups. The downside of setting this to [code]true[/code] is that it increases idle CPU usage and may steal CPU time from other applications when importing resources.
-
-
- If [code]true[/code], keeps the screen on (even in case of inactivity), so the screensaver does not take over. Works on desktop and mobile platforms.
-
-
- If [code]true[/code], setting names in the editor are localized when possible.
- [b]Note:[/b] This setting affects most [EditorInspector]s in the editor UI, primarily Project Settings and Editor Settings. To control names displayed in the Inspector dock, use [member interface/inspector/default_property_name_style] instead.
-
-
- The amount of sleeping between frames in the editor (in microseconds). Higher values will result in lower CPU/GPU usage, which can improve battery life on laptops. However, higher values will result in a less responsive editor. The default value is set to allow for maximum smoothness on monitors up to 144 Hz. See also [member interface/editor/unfocused_low_processor_mode_sleep_usec].
- [b]Note:[/b] This setting is ignored if [member interface/editor/update_continuously] is [code]true[/code], as enabling that setting disables low-processor mode.
-
-
+
The font to use for the editor interface. Must be a resource of a [Font] type such as a [code].ttf[/code] or [code].otf[/code] font file.
[b]Note:[/b] If the provided font is variable, a weight of 400 (normal) will be used.
-
+
The font to use for bold text in the editor interface. Must be a resource of a [Font] type such as a [code].ttf[/code] or [code].otf[/code] font file.
[b]Note:[/b] If the provided font is variable, a weight of 700 (bold) will be used.
-
+
List of custom OpenType features to use, if supported by the currently configured main font. Check what OpenType features are supported by your font first.
The string should follow the OpenType specification, e.g. [code]ss01,tnum,calt=false[/code]. Microsoft's documentation contains a list of [url=https://learn.microsoft.com/en-us/typography/opentype/spec/featurelist]all registered features[/url].
[b]Note:[/b] The default editor main font ([url=https://rsms.me/inter]Inter[/url]) has custom OpenType features in its font file, with [code]ss04[/code] and [code]tnum[/code] enabled and [code]calt[/code] disabled by default. Supported features can be found at its website.
-
+
The size of the font in the editor interface.
-
+
If [code]true[/code], the mouse's additional side buttons will be usable to navigate in the script editor's file history. Set this to [code]false[/code] if you're using the side buttons for other purposes (such as a push-to-talk button in a VoIP program).
-
- The preferred monitor to display the project manager.
-
-
- If [code]false[/code], the editor will save all scenes when confirming the [b]Save[/b] action when quitting the editor or quitting to the project list. If [code]true[/code], the editor will ask to save each scene individually.
-
-
- If [code]true[/code], scenes and scripts are saved when the editor loses focus. Depending on the work flow, this behavior can be less intrusive than [member text_editor/behavior/files/autosave_interval_secs] or remembering to save manually.
-
-
- If [code]true[/code], the editor's Script tab will have a separate distraction mode setting from the 2D/3D/Game/AssetLib tabs. If [code]false[/code], the distraction-free mode toggle is shared between all tabs.
-
-
- If enabled, displays internal engine errors in toast notifications (toggleable by clicking the "bell" icon at the bottom of the editor). No matter the value of this setting, non-internal engine errors will always be visible in toast notifications.
- The default [b]Auto[/b] value will only enable this if the editor was compiled with the [code]dev_build=yes[/code] SCons option (the default is [code]dev_build=no[/code]).
-
-
- If enabled, displays an icon in the top-right corner of the editor that spins when the editor redraws a frame. This can be used to diagnose situations where the engine is constantly redrawing, which should be avoided as this increases CPU and GPU utilization for no good reason. To further troubleshoot these situations, start the editor with the [code]--debug-canvas-item-redraw[/code] [url=$DOCS_URL/tutorials/editor/command_line_tutorial.html]command line argument[/url].
- Consider enabling this if you are developing editor plugins to ensure they only make the editor redraw when required.
- The default [b]Auto[/b] value will only enable this if the editor was compiled with the [code]dev_build=yes[/code] SCons option (the default is [code]dev_build=no[/code]).
- [b]Note:[/b] If [member interface/editor/update_continuously] is [code]true[/code], the spinner icon displays in red.
- [b]Note:[/b] If the editor was started with the [code]--debug-canvas-item-redraw[/code] [url=$DOCS_URL/tutorials/editor/command_line_tutorial.html]command line argument[/url], the update spinner will [i]never[/i] display regardless of this setting's value. This is to avoid confusion with what would cause redrawing in real world scenarios.
-
-
- If [code]true[/code], embed modal windows such as docks inside the main editor window. When single-window mode is enabled, tooltips will also be embedded inside the main editor window, which means they can't be displayed outside of the editor window. Single-window mode can be faster as it does not need to create a separate window for every popup and tooltip, which can be a slow operation depending on the operating system and rendering method in use.
- This is equivalent to [member ProjectSettings.display/window/subwindows/embed_subwindows] in the running project, except the setting's value is inverted.
- [b]Note:[/b] To query whether the editor can use multiple windows in an editor plugin, use [method EditorInterface.is_multi_window_enabled] instead of querying the value of this editor setting.
- [b]Note:[/b] If [code]true[/code], game embedding is disabled.
-
-
+
Overrides the tablet driver used by the editor.
-
+
+ The language to use for the editor interface. If set to [b]Auto[/b], the language is automatically determined based on the system locale. See also [method EditorInterface.get_editor_language].
+ Translations are provided by the community. If you spot a mistake, [url=https://contributing.godotengine.org/en/latest/documentation/translation/index.html]contribute to editor translations on Weblate![/url]
+
+
+ If [code]true[/code], setting names in the editor are localized when possible.
+ [b]Note:[/b] This setting affects most [EditorInspector]s in the editor UI, primarily Project Settings and Editor Settings. To control names displayed in the Inspector dock, use [member interface/inspector/default_property_name_style] instead.
+
+
Editor UI default layout direction.
-
- When the editor window is unfocused, the amount of sleeping between frames when the low-processor usage mode is enabled (in microseconds). Higher values will result in lower CPU/GPU usage, which can improve battery life on laptops (in addition to improving the running project's performance if the editor has to redraw continuously). However, higher values will result in a less responsive editor. The default value is set to limit the editor to 10 FPS when the editor window is unfocused. See also [member interface/editor/low_processor_mode_sleep_usec].
- [b]Note:[/b] This setting is ignored if [member interface/editor/update_continuously] is [code]true[/code], as enabling that setting disables low-processor mode.
+
+ During a drag-and-drop, this is how long to wait over a UI element before it triggers a reaction (e.g. a section unfolds to show nested items).
-
- If [code]true[/code], redraws the editor every frame even if nothing has changed on screen. When this setting is enabled, the update spinner displays in red (see [member interface/editor/show_update_spinner]).
- [b]Warning:[/b] This greatly increases CPU and GPU utilization, leading to increased power usage. This should only be enabled for troubleshooting purposes.
+
+ The amount of sleeping between frames in the editor (in microseconds). Higher values will result in lower CPU/GPU usage, which can improve battery life on laptops. However, higher values will result in a less responsive editor. The default value is set to allow for maximum smoothness on monitors up to 144 Hz. See also [member interface/editor/timers/unfocused_low_processor_mode_sleep_usec].
+ [b]Note:[/b] This setting is ignored if [member interface/editor/display/update_continuously] is [code]true[/code], as enabling that setting disables low-processor mode.
-
- If [code]true[/code], editor main menu is using embedded [MenuBar] instead of system global menu.
- Specific to the macOS platform.
-
-
- If [code]true[/code], editor UI uses OS native file/directory selection dialogs.
-
-
- Sets the V-Sync mode for the editor. Does not affect the project when run from the editor (this is controlled by [member ProjectSettings.display/window/vsync/vsync_mode]).
- Depending on the platform and used renderer, the engine will fall back to [b]Enabled[/b] if the desired mode is not supported.
- [b]Note:[/b] V-Sync modes other than [b]Enabled[/b] are only supported in the Forward+ and Mobile rendering methods, not Compatibility.
+
+ When the editor window is unfocused, the amount of sleeping between frames when the low-processor usage mode is enabled (in microseconds). Higher values will result in lower CPU/GPU usage, which can improve battery life on laptops (in addition to improving the running project's performance if the editor has to redraw continuously). However, higher values will result in a less responsive editor. The default value is set to limit the editor to 10 FPS when the editor window is unfocused. See also [member interface/editor/timers/low_processor_mode_sleep_usec].
+ [b]Note:[/b] This setting is ignored if [member interface/editor/display/update_continuously] is [code]true[/code], as enabling that setting disables low-processor mode.
If [code]true[/code], when extending a script, the global class name of the script is inserted in the script creation dialog, if it exists. If [code]false[/code], the script's file path is always inserted.
@@ -1112,7 +1112,7 @@
- [b]Raw:[/b] Displays properties in [code]snake_case[/code].
- [b]Capitalized:[/b] Displays properties capitalized.
- [b]Localized:[/b] Displays the localized string for the current editor language if a translation is available for the given property. If no translation is available, falls back to [b]Capitalized[/b].
- [b]Note:[/b] To display translated setting names in Project Settings and Editor Settings, use [member interface/editor/localize_settings] instead.
+ [b]Note:[/b] To display translated setting names in Project Settings and Editor Settings, use [member interface/editor/localization/localize_settings] instead.
If [code]true[/code], add a margin around Array, Dictionary, and Resource Editors that are not already colored.
@@ -1153,7 +1153,7 @@
If [code]true[/code], multiple window support in editor is enabled. The following panels can become dedicated windows (i.e. made floating): Docks, Script editor, Shader editor, and Game Workspace.
- [b]Note:[/b] When [member interface/editor/single_window_mode] is [code]true[/code], the multi window support is always disabled.
+ [b]Note:[/b] When [member interface/editor/display/single_window_mode] is [code]true[/code], the multi window support is always disabled.
[b]Note:[/b] To query whether the editor can use multiple windows in an editor plugin, use [method EditorInterface.is_multi_window_enabled] instead of querying the value of this editor setting.
@@ -1353,7 +1353,7 @@
If [code]true[/code], the editor will clear the Output panel when running the project.
- The size of the font in the [b]Output[/b] panel at the bottom of the editor. This setting does not impact the font size of the script editor (see [member interface/editor/code_font_size]).
+ The size of the font in the [b]Output[/b] panel at the bottom of the editor. This setting does not impact the font size of the script editor (see [member interface/editor/fonts/code_font_size]).
Maximum number of lines to show at any one time in the Output panel.
diff --git a/doc/classes/ProjectSettings.xml b/doc/classes/ProjectSettings.xml
index cd396ad8a0..048fbcc131 100644
--- a/doc/classes/ProjectSettings.xml
+++ b/doc/classes/ProjectSettings.xml
@@ -1091,10 +1091,10 @@
If [code]true[/code], subwindows are embedded in the main window (this is also called single-window mode). Single-window mode can be faster as it does not need to create a separate window for every popup and tooltip, which can be a slow operation depending on the operating system and rendering method in use.
If [code]false[/code], subwindows are created as separate windows (this is also called multi-window mode). This allows them to be moved outside the main window and use native operating system window decorations.
- This is equivalent to [member EditorSettings.interface/editor/single_window_mode] in the editor.
+ This is equivalent to [member EditorSettings.interface/editor/display/single_window_mode] in the editor.
- Sets the V-Sync mode for the main game window. The editor's own V-Sync mode can be set using [member EditorSettings.interface/editor/vsync_mode].
+ Sets the V-Sync mode for the main game window. The editor's own V-Sync mode can be set using [member EditorSettings.interface/editor/display/vsync_mode].
See [enum DisplayServer.VSyncMode] for possible values and how they affect the behavior of your application.
Depending on the platform and rendering method, the engine will fall back to [b]Enabled[/b] if the desired mode is not supported.
V-Sync can be disabled on the command line using the [code]--disable-vsync[/code] [url=$DOCS_URL/tutorials/editor/command_line_tutorial.html]command line argument[/url].
diff --git a/doc/classes/ResourceImporterTexture.xml b/doc/classes/ResourceImporterTexture.xml
index 3a7d3a026c..73e23bbc2b 100644
--- a/doc/classes/ResourceImporterTexture.xml
+++ b/doc/classes/ResourceImporterTexture.xml
@@ -60,7 +60,7 @@
[b]Note:[/b] Only available for SVG images.
- If [code]true[/code], scales the imported image to match [member EditorSettings.interface/editor/custom_display_scale]. This should be enabled for editor plugin icons and custom class icons, but should be left disabled otherwise.
+ If [code]true[/code], scales the imported image to match [member EditorSettings.interface/editor/appearance/custom_display_scale]. This should be enabled for editor plugin icons and custom class icons, but should be left disabled otherwise.
[b]Note:[/b] Only available for SVG images.
diff --git a/editor/debugger/editor_performance_profiler.cpp b/editor/debugger/editor_performance_profiler.cpp
index 17ece0c0f7..9d5da01081 100644
--- a/editor/debugger/editor_performance_profiler.cpp
+++ b/editor/debugger/editor_performance_profiler.cpp
@@ -403,7 +403,7 @@ void EditorPerformanceProfiler::_notification(int p_what) {
} break;
case EditorSettings::NOTIFICATION_EDITOR_SETTINGS_CHANGED: {
- if (EditorSettings::get_singleton()->check_changed_settings_in_group("interface/editor/localize_settings")) {
+ if (EditorSettings::get_singleton()->check_changed_settings_in_group("interface/editor/localization/localize_settings")) {
_build_monitor_tree();
}
} break;
diff --git a/editor/docks/dock_tab_container.cpp b/editor/docks/dock_tab_container.cpp
index faf65d0632..92fd767be8 100644
--- a/editor/docks/dock_tab_container.cpp
+++ b/editor/docks/dock_tab_container.cpp
@@ -177,7 +177,7 @@ void DockTabContainer::update_visibility() {
}
DockTabContainer::TabStyle DockTabContainer::get_tab_style() const {
- return (TabStyle)EDITOR_GET("interface/editor/dock_tab_style").operator int();
+ return (TabStyle)EDITOR_GET("interface/editor/docks/dock_tab_style").operator int();
}
bool DockTabContainer::can_switch_dock() const {
diff --git a/editor/docks/editor_dock_manager.cpp b/editor/docks/editor_dock_manager.cpp
index 9d097af991..7657ea1b9f 100644
--- a/editor/docks/editor_dock_manager.cpp
+++ b/editor/docks/editor_dock_manager.cpp
@@ -185,7 +185,7 @@ void EditorDockManager::update_docks_menu() {
const Ref default_icon = docks_menu->get_editor_theme_icon(SNAME("Window"));
const Color closed_icon_color_mod = Color(1, 1, 1, 0.5);
- bool global_menu = !bool(EDITOR_GET("interface/editor/use_embedded_menu")) && NativeMenu::get_singleton()->has_feature(NativeMenu::FEATURE_GLOBAL_MENU);
+ bool global_menu = !bool(EDITOR_GET("interface/editor/appearance/use_embedded_menu")) && NativeMenu::get_singleton()->has_feature(NativeMenu::FEATURE_GLOBAL_MENU);
bool dark_mode = DisplayServer::get_singleton()->is_dark_mode_supported() && DisplayServer::get_singleton()->is_dark_mode();
int icon_max_width = EditorNode::get_singleton()->get_editor_theme()->get_constant(SNAME("class_icon_size"), EditorStringName(Editor));
diff --git a/editor/docks/scene_tree_dock.cpp b/editor/docks/scene_tree_dock.cpp
index e3a777b27f..be467e96a7 100644
--- a/editor/docks/scene_tree_dock.cpp
+++ b/editor/docks/scene_tree_dock.cpp
@@ -1768,8 +1768,8 @@ void SceneTreeDock::_notification(int p_what) {
scene_tree->set_hide_filtered_out_parents(EDITOR_GET("docks/scene_tree/hide_filtered_out_parents"), false);
scene_tree->set_accessibility_warnings(EDITOR_GET("docks/scene_tree/accessibility_warnings"), false);
}
- if (EditorSettings::get_singleton()->check_changed_settings_in_group("interface/editor")) {
- inspect_hovered_node_delay->set_wait_time(EDITOR_GET("interface/editor/dragging_hover_wait_seconds"));
+ if (EditorSettings::get_singleton()->check_changed_settings_in_group("interface/editor/timers")) {
+ inspect_hovered_node_delay->set_wait_time(EDITOR_GET("interface/editor/timers/dragging_hover_wait_seconds"));
}
} break;
diff --git a/editor/editor_node.cpp b/editor/editor_node.cpp
index 783fd9f3a1..346335a6dc 100644
--- a/editor/editor_node.cpp
+++ b/editor/editor_node.cpp
@@ -457,7 +457,7 @@ void EditorNode::shortcut_input(const Ref &p_event) {
}
void EditorNode::_update_vsync_mode() {
- const DisplayServer::VSyncMode window_vsync_mode = DisplayServer::VSyncMode(int(EDITOR_GET("interface/editor/vsync_mode")));
+ const DisplayServer::VSyncMode window_vsync_mode = DisplayServer::VSyncMode(int(EDITOR_GET("interface/editor/display/vsync_mode")));
DisplayServer::get_singleton()->window_set_vsync_mode(window_vsync_mode);
}
@@ -929,7 +929,7 @@ void EditorNode::_notification(int p_what) {
// Theme has already been created in the constructor, so we can skip that step.
_update_theme(true);
- OS::get_singleton()->set_low_processor_usage_mode_sleep_usec(int(EDITOR_GET("interface/editor/low_processor_mode_sleep_usec")));
+ OS::get_singleton()->set_low_processor_usage_mode_sleep_usec(int(EDITOR_GET("interface/editor/timers/low_processor_mode_sleep_usec")));
get_tree()->get_root()->set_as_audio_listener_3d(false);
get_tree()->get_root()->set_as_audio_listener_2d(false);
get_tree()->get_root()->set_snap_2d_transforms_to_pixel(false);
@@ -1000,7 +1000,7 @@ void EditorNode::_notification(int p_what) {
RenderingServer::get_singleton()->viewport_set_disable_2d(get_scene_root()->get_viewport_rid(), true);
RenderingServer::get_singleton()->viewport_set_environment_mode(get_viewport()->get_viewport_rid(), RSE::VIEWPORT_ENVIRONMENT_DISABLED);
- DisplayServer::get_singleton()->screen_set_keep_on(EDITOR_GET("interface/editor/keep_screen_on"));
+ DisplayServer::get_singleton()->screen_set_keep_on(EDITOR_GET("interface/editor/display/keep_screen_on"));
feature_profile_manager->notify_changed();
@@ -1040,7 +1040,7 @@ void EditorNode::_notification(int p_what) {
case NOTIFICATION_APPLICATION_FOCUS_IN: {
// Restore the original FPS cap after focusing back on the editor.
- OS::get_singleton()->set_low_processor_usage_mode_sleep_usec(int(EDITOR_GET("interface/editor/low_processor_mode_sleep_usec")));
+ OS::get_singleton()->set_low_processor_usage_mode_sleep_usec(int(EDITOR_GET("interface/editor/timers/low_processor_mode_sleep_usec")));
if (_is_project_data_missing()) {
project_data_missing->popup_centered();
@@ -1055,13 +1055,13 @@ void EditorNode::_notification(int p_what) {
case NOTIFICATION_APPLICATION_FOCUS_OUT: {
// Save on focus loss before applying the FPS limit to avoid slowing down the saving process.
- if (EDITOR_GET("interface/editor/save_on_focus_loss")) {
+ if (EDITOR_GET("interface/editor/behavior/save_on_focus_loss")) {
_save_scene_silently();
}
// Set a low FPS cap to decrease CPU/GPU usage while the editor is unfocused.
if (unfocused_low_processor_usage_mode_enabled) {
- OS::get_singleton()->set_low_processor_usage_mode_sleep_usec(int(EDITOR_GET("interface/editor/unfocused_low_processor_mode_sleep_usec")));
+ OS::get_singleton()->set_low_processor_usage_mode_sleep_usec(int(EDITOR_GET("interface/editor/timers/unfocused_low_processor_mode_sleep_usec")));
}
} break;
@@ -1079,9 +1079,9 @@ void EditorNode::_notification(int p_what) {
FileDialog::set_default_display_mode(EDITOR_GET("filesystem/file_dialog/display_mode"));
}
- if (EditorSettings::get_singleton()->check_changed_settings_in_group("interface/editor/tablet_driver")) {
+ if (EditorSettings::get_singleton()->check_changed_settings_in_group("interface/editor/input/tablet_driver")) {
String tablet_driver = GLOBAL_GET("input_devices/pen_tablet/driver");
- int tablet_driver_idx = EDITOR_GET("interface/editor/tablet_driver");
+ int tablet_driver_idx = EDITOR_GET("interface/editor/input/tablet_driver");
if (tablet_driver_idx != -1) {
tablet_driver = DisplayServer::get_singleton()->tablet_get_driver_name(tablet_driver_idx);
}
@@ -1092,7 +1092,7 @@ void EditorNode::_notification(int p_what) {
print_verbose("Using \"" + DisplayServer::get_singleton()->tablet_get_current_driver() + "\" pen tablet driver...");
}
- if (EDITOR_GET("interface/editor/import_resources_when_unfocused")) {
+ if (EDITOR_GET("interface/editor/behavior/import_resources_when_unfocused")) {
scan_changes_timer->start();
} else {
scan_changes_timer->stop();
@@ -1108,12 +1108,12 @@ void EditorNode::_notification(int p_what) {
recent_scenes->reset_size();
}
- if (EditorSettings::get_singleton()->check_changed_settings_in_group("interface/editor/dragging_")) {
- theme->set_constant("dragging_unfold_wait_msec", "Tree", (float)EDITOR_GET("interface/editor/dragging_hover_wait_seconds") * 1000);
- theme->set_constant("hover_switch_wait_msec", "TabBar", (float)EDITOR_GET("interface/editor/dragging_hover_wait_seconds") * 1000);
+ if (EditorSettings::get_singleton()->check_changed_settings_in_group("interface/editor/timers/dragging_")) {
+ theme->set_constant("dragging_unfold_wait_msec", "Tree", (float)EDITOR_GET("interface/editor/timers/dragging_hover_wait_seconds") * 1000);
+ theme->set_constant("hover_switch_wait_msec", "TabBar", (float)EDITOR_GET("interface/editor/timers/dragging_hover_wait_seconds") * 1000);
}
- if (EditorSettings::get_singleton()->check_changed_settings_in_group("interface/editor")) {
+ if (EditorSettings::get_singleton()->check_changed_settings_in_group("interface/editor/docks")) {
editor_dock_manager->update_tab_styles();
}
@@ -1147,11 +1147,13 @@ void EditorNode::_notification(int p_what) {
}
}
- if (EditorSettings::get_singleton()->check_changed_settings_in_group("interface/editor")) {
+ if (EditorSettings::get_singleton()->check_changed_settings_in_group("interface/editor/appearance")) {
_update_update_spinner();
- _update_vsync_mode();
_update_main_menu_type();
- DisplayServer::get_singleton()->screen_set_keep_on(EDITOR_GET("interface/editor/keep_screen_on"));
+ }
+ if (EditorSettings::get_singleton()->check_changed_settings_in_group("interface/editor/display")) {
+ _update_vsync_mode();
+ DisplayServer::get_singleton()->screen_set_keep_on(EDITOR_GET("interface/editor/display/keep_screen_on"));
}
#if defined(MODULE_GDSCRIPT_ENABLED) || defined(MODULE_MONO_ENABLED)
@@ -1176,12 +1178,12 @@ void EditorNode::_update_update_spinner() {
#else
const bool in_dev = false;
#endif
- const int show_update_spinner_setting = EDITOR_GET("interface/editor/show_update_spinner");
+ const int show_update_spinner_setting = EDITOR_GET("interface/editor/appearance/show_update_spinner");
should_display_spinner = (show_update_spinner_setting == 0 && in_dev) || show_update_spinner_setting == 1;
}
update_spinner->set_visible(should_display_spinner);
- const bool update_continuously = EDITOR_GET("interface/editor/update_continuously");
+ const bool update_continuously = EDITOR_GET("interface/editor/display/update_continuously");
OS::get_singleton()->set_low_processor_usage_mode(!update_continuously);
if (!update_spinner->is_visible()) {
@@ -3709,7 +3711,7 @@ void EditorNode::_menu_option_confirm(int p_option, bool p_confirmed) {
break;
}
- bool save_each = EDITOR_GET("interface/editor/save_each_scene_on_quit");
+ bool save_each = EDITOR_GET("interface/editor/behavior/save_each_scene_on_quit");
if (_next_unsaved_scene(!save_each) == -1) {
if (EditorUndoRedoManager::get_singleton()->is_history_unsaved(EditorUndoRedoManager::GLOBAL_HISTORY)) {
if (p_option == PROJECT_RELOAD_CURRENT_PROJECT) {
@@ -3781,16 +3783,16 @@ void EditorNode::_menu_option_confirm(int p_option, bool p_confirmed) {
_discard_changes();
} break;
case SPINNER_UPDATE_CONTINUOUSLY: {
- EditorSettings::get_singleton()->set("interface/editor/update_continuously", true);
+ EditorSettings::get_singleton()->set("interface/editor/display/update_continuously", true);
_update_update_spinner();
show_accept(TTR("This option is deprecated. Situations where refresh must be forced are now considered a bug. Please report."), TTR("OK"));
} break;
case SPINNER_UPDATE_WHEN_CHANGED: {
- EditorSettings::get_singleton()->set("interface/editor/update_continuously", false);
+ EditorSettings::get_singleton()->set("interface/editor/display/update_continuously", false);
_update_update_spinner();
} break;
case SPINNER_UPDATE_SPINNER_HIDE: {
- EditorSettings::get_singleton()->set("interface/editor/show_update_spinner", 2); // Disabled
+ EditorSettings::get_singleton()->set("interface/editor/appearance/show_update_spinner", 2); // Disabled
_update_update_spinner();
} break;
case EDITOR_OPEN_SETTINGS: {
@@ -3960,7 +3962,7 @@ void EditorNode::_save_screenshot_with_embedded_process(int64_t p_w, int64_t p_h
Error error = img->save_png(p_path);
ERR_FAIL_COND_MSG(error != OK, "Cannot save screenshot to file '" + p_path + "'.");
- if (EDITOR_GET("interface/editor/automatically_open_screenshots")) {
+ if (EDITOR_GET("interface/editor/behavior/automatically_open_screenshots")) {
OS::get_singleton()->shell_show_in_file_manager(ProjectSettings::get_singleton()->globalize_path(p_path), true);
}
}
@@ -3977,7 +3979,7 @@ void EditorNode::_save_screenshot(const String &p_path) {
Error error = img->save_png(p_path);
ERR_FAIL_COND_MSG(error != OK, "Cannot save screenshot to file '" + p_path + "'.");
- if (EDITOR_GET("interface/editor/automatically_open_screenshots")) {
+ if (EDITOR_GET("interface/editor/behavior/automatically_open_screenshots")) {
OS::get_singleton()->shell_show_in_file_manager(ProjectSettings::get_singleton()->globalize_path(p_path), true);
}
}
@@ -4738,7 +4740,7 @@ bool EditorNode::is_scene_open(const String &p_path) {
}
bool EditorNode::is_multi_window_enabled() const {
- return !SceneTree::get_singleton()->get_root()->is_embedding_subwindows() && !EDITOR_GET("interface/editor/single_window_mode") && EDITOR_GET("interface/multi_window/enable");
+ return !SceneTree::get_singleton()->get_root()->is_embedding_subwindows() && !EDITOR_GET("interface/editor/display/single_window_mode") && EDITOR_GET("interface/multi_window/enable");
}
int EditorNode::new_scene() {
@@ -5336,7 +5338,7 @@ String EditorNode::get_multiwindow_support_tooltip_text() const {
} else {
return TTR("Multi-window support is not available because the current platform doesn't support multiple windows.");
}
- } else if (EDITOR_GET("interface/editor/single_window_mode")) {
+ } else if (EDITOR_GET("interface/editor/display/single_window_mode")) {
return TTR("Multi-window support is not available because Interface > Editor > Single Window Mode is enabled in the editor settings.");
}
@@ -6737,7 +6739,7 @@ void EditorNode::_prepare_save_confirmation_popup() {
}
void EditorNode::_toggle_distraction_free_mode() {
- if (EDITOR_GET("interface/editor/separate_distraction_mode")) {
+ if (EDITOR_GET("interface/editor/behavior/separate_distraction_mode")) {
int screen = editor_main_screen->get_selected_index();
if (screen == EditorMainScreen::EDITOR_SCRIPT) {
@@ -6753,7 +6755,7 @@ void EditorNode::_toggle_distraction_free_mode() {
}
void EditorNode::update_distraction_free_mode() {
- if (!EDITOR_GET("interface/editor/separate_distraction_mode")) {
+ if (!EDITOR_GET("interface/editor/behavior/separate_distraction_mode")) {
return;
}
int screen = editor_main_screen->get_selected_index();
@@ -8078,9 +8080,9 @@ void EditorNode::_add_to_main_menu(const String &p_name, PopupMenu *p_menu) {
}
void EditorNode::_update_main_menu_type() {
- bool can_expand = bool(EDITOR_GET("interface/editor/expand_to_title")) && DisplayServer::get_singleton()->has_feature(DisplayServer::FEATURE_EXTEND_TO_TITLE);
- bool use_menu_button = EDITOR_GET("interface/editor/collapse_main_menu");
- bool global_menu = !bool(EDITOR_GET("interface/editor/use_embedded_menu")) && NativeMenu::get_singleton()->has_feature(NativeMenu::FEATURE_GLOBAL_MENU);
+ bool can_expand = bool(EDITOR_GET("interface/editor/appearance/expand_to_title")) && DisplayServer::get_singleton()->has_feature(DisplayServer::FEATURE_EXTEND_TO_TITLE);
+ bool use_menu_button = EDITOR_GET("interface/editor/appearance/collapse_main_menu");
+ bool global_menu = !bool(EDITOR_GET("interface/editor/appearance/use_embedded_menu")) && NativeMenu::get_singleton()->has_feature(NativeMenu::FEATURE_GLOBAL_MENU);
MenuType new_menu_type;
if (global_menu) {
new_menu_type = MENU_TYPE_GLOBAL;
@@ -8334,7 +8336,7 @@ EditorNode::EditorNode() {
}
{
- int display_scale = EDITOR_GET("interface/editor/display_scale");
+ int display_scale = EDITOR_GET("interface/editor/appearance/display_scale");
switch (display_scale) {
case 0:
@@ -8360,7 +8362,7 @@ EditorNode::EditorNode() {
EditorScale::set_scale(2.0);
break;
default:
- EditorScale::set_scale(EDITOR_GET("interface/editor/custom_display_scale"));
+ EditorScale::set_scale(EDITOR_GET("interface/editor/appearance/custom_display_scale"));
break;
}
}
@@ -8376,13 +8378,13 @@ EditorNode::EditorNode() {
FileDialog::set_default_show_hidden_files(EDITOR_GET("filesystem/file_dialog/show_hidden_files"));
FileDialog::set_default_display_mode(EDITOR_GET("filesystem/file_dialog/display_mode"));
- int swap_cancel_ok = EDITOR_GET("interface/editor/accept_dialog_cancel_ok_buttons");
+ int swap_cancel_ok = EDITOR_GET("interface/editor/appearance/accept_dialog_cancel_ok_buttons");
if (swap_cancel_ok != 0) { // 0 is auto, set in register_scene based on DisplayServer.
// Swap on means OK first.
AcceptDialog::set_swap_cancel_ok(swap_cancel_ok == 2);
}
- int ed_root_dir = EDITOR_GET("interface/editor/ui_layout_direction");
+ int ed_root_dir = EDITOR_GET("interface/editor/localization/ui_layout_direction");
Control::set_root_layout_direction(ed_root_dir);
Window::set_root_layout_direction(ed_root_dir);
@@ -8713,7 +8715,7 @@ EditorNode::EditorNode() {
scan_changes_timer = memnew(Timer);
scan_changes_timer->set_wait_time(0.5);
- scan_changes_timer->set_autostart(EDITOR_GET("interface/editor/import_resources_when_unfocused"));
+ scan_changes_timer->set_autostart(EDITOR_GET("interface/editor/behavior/import_resources_when_unfocused"));
scan_changes_timer->connect("timeout", callable_mp(EditorFileSystem::get_singleton(), &EditorFileSystem::scan_changes));
add_child(scan_changes_timer);
@@ -8897,7 +8899,7 @@ EditorNode::EditorNode() {
ED_SHORTCUT_AND_COMMAND("editor/editor_prev", TTRC("Open the previous Editor"));
// Editor menu and toolbar.
- bool can_expand = bool(EDITOR_GET("interface/editor/expand_to_title")) && DisplayServer::get_singleton()->has_feature(DisplayServer::FEATURE_EXTEND_TO_TITLE);
+ bool can_expand = bool(EDITOR_GET("interface/editor/appearance/expand_to_title")) && DisplayServer::get_singleton()->has_feature(DisplayServer::FEATURE_EXTEND_TO_TITLE);
#ifdef MACOS_ENABLED
if (NativeMenu::get_singleton()->has_system_menu(NativeMenu::APPLICATION_MENU_ID)) {
diff --git a/editor/gui/code_editor.cpp b/editor/gui/code_editor.cpp
index 4310633204..3b99d3b436 100644
--- a/editor/gui/code_editor.cpp
+++ b/editor/gui/code_editor.cpp
@@ -1611,7 +1611,7 @@ void CodeTextEditor::_update_text_editor_theme() {
}
void CodeTextEditor::_update_font_ligatures() {
- int ot_mode = EDITOR_GET("interface/editor/code_font_contextual_ligatures");
+ int ot_mode = EDITOR_GET("interface/editor/fonts/code_font_contextual_ligatures");
Ref fc = text_editor->get_theme_font(SceneStringName(font));
if (fc.is_valid()) {
@@ -1622,7 +1622,7 @@ void CodeTextEditor::_update_font_ligatures() {
fc->set_opentype_features(ftrs);
} break;
case 2: { // Custom.
- Vector subtag = String(EDITOR_GET("interface/editor/code_font_custom_opentype_features")).split(",");
+ Vector subtag = String(EDITOR_GET("interface/editor/fonts/code_font_custom_opentype_features")).split(",");
Dictionary ftrs;
for (int i = 0; i < subtag.size(); i++) {
Vector subtag_a = subtag[i].split("=");
@@ -1640,7 +1640,7 @@ void CodeTextEditor::_update_font_ligatures() {
fc->set_opentype_features(ftrs);
} break;
}
- Vector variation_tags = String(EDITOR_GET("interface/editor/code_font_custom_variations")).split(",");
+ Vector variation_tags = String(EDITOR_GET("interface/editor/fonts/code_font_custom_variations")).split(",");
Dictionary variations_mono;
for (int i = 0; i < variation_tags.size(); i++) {
Vector subtag_a = variation_tags[i].split("=");
@@ -1861,7 +1861,7 @@ void CodeTextEditor::_zoom_to(float p_zoom_factor) {
void CodeTextEditor::set_zoom_factor(float p_zoom_factor) {
zoom_factor = CLAMP(p_zoom_factor, 0.25f, 3.0f);
- int neutral_font_size = int(EDITOR_GET("interface/editor/code_font_size")) * EDSCALE;
+ int neutral_font_size = int(EDITOR_GET("interface/editor/fonts/code_font_size")) * EDSCALE;
int new_font_size = Math::round(zoom_factor * neutral_font_size);
zoom_button->set_text(itos(Math::round(zoom_factor * 100)) + " %");
diff --git a/editor/gui/editor_bottom_panel.cpp b/editor/gui/editor_bottom_panel.cpp
index 32720f012a..7c1ed2d372 100644
--- a/editor/gui/editor_bottom_panel.cpp
+++ b/editor/gui/editor_bottom_panel.cpp
@@ -130,7 +130,7 @@ void EditorBottomPanel::dock_focused(EditorDock *p_dock, bool p_was_visible) {
}
DockTabContainer::TabStyle EditorBottomPanel::get_tab_style() const {
- return (TabStyle)EDITOR_GET("interface/editor/bottom_dock_tab_style").operator int();
+ return (TabStyle)EDITOR_GET("interface/editor/docks/bottom_dock_tab_style").operator int();
}
bool EditorBottomPanel::can_switch_dock() const {
diff --git a/editor/gui/editor_file_dialog.cpp b/editor/gui/editor_file_dialog.cpp
index cab4e95b43..a6703b3e20 100644
--- a/editor/gui/editor_file_dialog.cpp
+++ b/editor/gui/editor_file_dialog.cpp
@@ -69,7 +69,7 @@ bool EditorFileDialog::_should_use_native_popup() const {
// Native file dialog on Android, returns a file URI instead of a path and does not support res://, user://, or options. This requires editor-side changes to handle properly, so disabling it for now.
return false;
#else
- return _can_use_native_popup() && (OS::get_singleton()->is_sandboxed() || EDITOR_GET("interface/editor/use_native_file_dialogs").operator bool());
+ return _can_use_native_popup() && (OS::get_singleton()->is_sandboxed() || EDITOR_GET("interface/editor/appearance/use_native_file_dialogs").operator bool());
#endif
}
diff --git a/editor/gui/editor_toaster.cpp b/editor/gui/editor_toaster.cpp
index 0cfdee5866..d531a4cc0c 100644
--- a/editor/gui/editor_toaster.cpp
+++ b/editor/gui/editor_toaster.cpp
@@ -165,7 +165,7 @@ void EditorToaster::_error_handler_impl(const String &p_file, int p_line, const
bool in_dev = false;
#endif
- int show_all_setting = EDITOR_GET("interface/editor/show_internal_errors_in_toast_notifications");
+ int show_all_setting = EDITOR_GET("interface/editor/behavior/show_internal_errors_in_toast_notifications");
if (p_editor_notify || (show_all_setting == 0 && in_dev) || show_all_setting == 1) {
String err_str = !p_errorexp.is_empty() ? p_errorexp : p_error;
diff --git a/editor/inspector/editor_inspector.cpp b/editor/inspector/editor_inspector.cpp
index cd4a155b3a..792ea18ea3 100644
--- a/editor/inspector/editor_inspector.cpp
+++ b/editor/inspector/editor_inspector.cpp
@@ -2381,8 +2381,8 @@ void EditorInspectorSection::_notification(int p_what) {
} break;
case EditorSettings::NOTIFICATION_EDITOR_SETTINGS_CHANGED: {
- if (EditorSettings::get_singleton()->check_changed_settings_in_group("interface/editor")) {
- dropping_unfold_timer->set_wait_time(EDITOR_GET("interface/editor/dragging_hover_wait_seconds"));
+ if (EditorSettings::get_singleton()->check_changed_settings_in_group("interface/editor/timers")) {
+ dropping_unfold_timer->set_wait_time(EDITOR_GET("interface/editor/timers/dragging_hover_wait_seconds"));
}
} break;
}
@@ -2837,7 +2837,7 @@ EditorInspectorSection::EditorInspectorSection() {
vbox->set_theme_type_variation(SNAME("EditorPropertyContainer"));
dropping_unfold_timer = memnew(Timer);
- dropping_unfold_timer->set_wait_time(EDITOR_GET("interface/editor/dragging_hover_wait_seconds"));
+ dropping_unfold_timer->set_wait_time(EDITOR_GET("interface/editor/timers/dragging_hover_wait_seconds"));
dropping_unfold_timer->set_one_shot(true);
add_child(dropping_unfold_timer);
dropping_unfold_timer->connect("timeout", callable_mp(this, &EditorInspectorSection::unfold));
@@ -6043,7 +6043,7 @@ void EditorInspector::_notification(int p_what) {
} break;
case EditorSettings::NOTIFICATION_EDITOR_SETTINGS_CHANGED: {
- if (use_settings_name_style && EditorSettings::get_singleton()->check_changed_settings_in_group("interface/editor/localize_settings")) {
+ if (use_settings_name_style && EditorSettings::get_singleton()->check_changed_settings_in_group("interface/editor/localization/localize_settings")) {
EditorPropertyNameProcessor::Style style = EditorPropertyNameProcessor::get_settings_style();
if (property_name_style != style) {
property_name_style = style;
diff --git a/editor/inspector/editor_properties.cpp b/editor/inspector/editor_properties.cpp
index 27edf0e84a..71d1577f89 100644
--- a/editor/inspector/editor_properties.cpp
+++ b/editor/inspector/editor_properties.cpp
@@ -3973,7 +3973,7 @@ EditorProperty *EditorInspectorDefaultPlugin::get_editor_for_property(Object *p_
Vector options;
Vector option_names;
if (p_hint_text.begins_with(";")) {
- // This is not supported officially. Only for `interface/editor/editor_language`.
+ // This is not supported officially. Only for `interface/editor/localization/editor_language`.
for (const String &option : p_hint_text.split(";", false)) {
options.append(option.get_slicec('/', 0));
option_names.append(option.get_slicec('/', 1));
diff --git a/editor/inspector/editor_property_name_processor.cpp b/editor/inspector/editor_property_name_processor.cpp
index be040b7b8c..8c0d6b0624 100644
--- a/editor/inspector/editor_property_name_processor.cpp
+++ b/editor/inspector/editor_property_name_processor.cpp
@@ -50,7 +50,7 @@ EditorPropertyNameProcessor::Style EditorPropertyNameProcessor::get_settings_sty
if (!EditorSettings::get_singleton()) {
return STYLE_LOCALIZED;
}
- const bool translate = EDITOR_GET("interface/editor/localize_settings");
+ const bool translate = EDITOR_GET("interface/editor/localization/localize_settings");
return translate ? STYLE_LOCALIZED : STYLE_CAPITALIZED;
}
diff --git a/editor/project_manager/project_manager.cpp b/editor/project_manager/project_manager.cpp
index db03d57890..da85e1dcae 100644
--- a/editor/project_manager/project_manager.cpp
+++ b/editor/project_manager/project_manager.cpp
@@ -101,7 +101,7 @@ void ProjectManager::_notification(int p_what) {
} break;
case NOTIFICATION_READY: {
- DisplayServer::get_singleton()->screen_set_keep_on(EDITOR_GET("interface/editor/keep_screen_on"));
+ DisplayServer::get_singleton()->screen_set_keep_on(EDITOR_GET("interface/editor/display/keep_screen_on"));
const int default_sorting = (int)EDITOR_GET("project_manager/sorting_order");
filter_option->select(default_sorting);
project_list->set_order_option(default_sorting, false);
@@ -1343,7 +1343,7 @@ ProjectManager::ProjectManager() {
Input::get_singleton()->set_use_accumulated_input(use_accumulated_input);
}
- int display_scale = EDITOR_GET("interface/editor/display_scale");
+ int display_scale = EDITOR_GET("interface/editor/appearance/display_scale");
switch (display_scale) {
case 0:
@@ -1369,7 +1369,7 @@ ProjectManager::ProjectManager() {
EditorScale::set_scale(2.0);
break;
default:
- EditorScale::set_scale(EDITOR_GET("interface/editor/custom_display_scale"));
+ EditorScale::set_scale(EDITOR_GET("interface/editor/appearance/custom_display_scale"));
break;
}
FileDialog::set_get_icon_callback(callable_mp_static(ProjectManager::_file_dialog_get_icon));
@@ -1378,7 +1378,7 @@ ProjectManager::ProjectManager() {
FileDialog::set_default_show_hidden_files(EDITOR_GET("filesystem/file_dialog/show_hidden_files"));
FileDialog::set_default_display_mode((FileDialog::DisplayMode)EDITOR_GET("filesystem/file_dialog/display_mode").operator int());
- int swap_cancel_ok = EDITOR_GET("interface/editor/accept_dialog_cancel_ok_buttons");
+ int swap_cancel_ok = EDITOR_GET("interface/editor/appearance/accept_dialog_cancel_ok_buttons");
if (swap_cancel_ok != 0) { // 0 is auto, set in register_scene based on DisplayServer.
// Swap on means OK first.
AcceptDialog::set_swap_cancel_ok(swap_cancel_ok == 2);
@@ -1395,7 +1395,7 @@ ProjectManager::ProjectManager() {
// Initialize UI.
{
- int pm_root_dir = EDITOR_GET("interface/editor/ui_layout_direction");
+ int pm_root_dir = EDITOR_GET("interface/editor/localization/ui_layout_direction");
Control::set_root_layout_direction(pm_root_dir);
Window::set_root_layout_direction(pm_root_dir);
@@ -1422,7 +1422,7 @@ ProjectManager::ProjectManager() {
root_container->add_child(main_vbox);
// Title bar.
- bool can_expand = bool(EDITOR_GET("interface/editor/expand_to_title")) && DisplayServer::get_singleton()->has_feature(DisplayServer::FEATURE_EXTEND_TO_TITLE);
+ bool can_expand = bool(EDITOR_GET("interface/editor/appearance/expand_to_title")) && DisplayServer::get_singleton()->has_feature(DisplayServer::FEATURE_EXTEND_TO_TITLE);
{
title_bar = memnew(EditorTitleBar);
@@ -1447,7 +1447,7 @@ ProjectManager::ProjectManager() {
left_hbox->add_child(title_bar_logo);
title_bar_logo->connect(SceneStringName(pressed), callable_mp(this, &ProjectManager::_show_about));
- bool global_menu = !bool(EDITOR_GET("interface/editor/use_embedded_menu")) && NativeMenu::get_singleton()->has_feature(NativeMenu::FEATURE_GLOBAL_MENU);
+ bool global_menu = !bool(EDITOR_GET("interface/editor/appearance/use_embedded_menu")) && NativeMenu::get_singleton()->has_feature(NativeMenu::FEATURE_GLOBAL_MENU);
if (global_menu) {
MenuBar *main_menu_bar = memnew(MenuBar);
main_menu_bar->set_start_index(0); // Main menu, add to the start of global menu.
@@ -1831,7 +1831,7 @@ ProjectManager::ProjectManager() {
ask_update_backup->set_h_size_flags(SIZE_SHRINK_CENTER);
ask_update_vb->add_child(ask_update_backup);
ask_update_settings->get_ok_button()->connect(SceneStringName(pressed), callable_mp(this, &ProjectManager::_open_selected_projects_with_migration));
- int ed_swap_cancel_ok = EDITOR_GET("interface/editor/accept_dialog_cancel_ok_buttons");
+ int ed_swap_cancel_ok = EDITOR_GET("interface/editor/appearance/accept_dialog_cancel_ok_buttons");
if (ed_swap_cancel_ok == 0) {
ed_swap_cancel_ok = DisplayServer::get_singleton()->get_swap_cancel_ok() ? 2 : 1;
}
diff --git a/editor/project_manager/quick_settings_dialog.cpp b/editor/project_manager/quick_settings_dialog.cpp
index 84cedb51b3..3b08aa5053 100644
--- a/editor/project_manager/quick_settings_dialog.cpp
+++ b/editor/project_manager/quick_settings_dialog.cpp
@@ -60,7 +60,7 @@ void QuickSettingsDialog::_fetch_setting_values() {
EditorSettings::get_singleton()->get_property_list(&editor_settings_properties);
for (const PropertyInfo &pi : editor_settings_properties) {
- if (pi.name == "interface/editor/editor_language") {
+ if (pi.name == "interface/editor/localization/editor_language") {
#ifndef ANDROID_ENABLED
editor_languages = pi.hint_string.split(";", false);
#endif
@@ -68,7 +68,7 @@ void QuickSettingsDialog::_fetch_setting_values() {
editor_styles = pi.hint_string.split(",");
} else if (pi.name == "interface/theme/color_preset") {
editor_themes = pi.hint_string.split(",");
- } else if (pi.name == "interface/editor/display_scale") {
+ } else if (pi.name == "interface/editor/appearance/display_scale") {
editor_scales = pi.hint_string.split(",");
} else if (pi.name == "network/connection/network_mode") {
editor_network_modes = pi.hint_string.split(",");
@@ -85,7 +85,7 @@ void QuickSettingsDialog::_update_current_values() {
#ifndef ANDROID_ENABLED
// Language options.
{
- const String current_lang = EDITOR_GET("interface/editor/editor_language");
+ const String current_lang = EDITOR_GET("interface/editor/localization/editor_language");
for (int i = 0; i < editor_languages.size(); i++) {
const String &lang_value = editor_languages[i].get_slicec('/', 0);
@@ -127,7 +127,7 @@ void QuickSettingsDialog::_update_current_values() {
// Scale options.
{
- const int current_scale = EDITOR_GET("interface/editor/display_scale");
+ const int current_scale = EDITOR_GET("interface/editor/appearance/display_scale");
for (int i = 0; i < editor_scales.size(); i++) {
const String &scale_value = editor_scales[i];
@@ -196,7 +196,7 @@ void QuickSettingsDialog::_add_setting_control(const String &p_text, Control *p_
#ifndef ANDROID_ENABLED
void QuickSettingsDialog::_language_selected(int p_id) {
const String selected_language = language_option_button->get_item_metadata(p_id);
- _set_setting_value("interface/editor/editor_language", selected_language);
+ _set_setting_value("interface/editor/localization/editor_language", selected_language);
}
#endif
@@ -213,7 +213,7 @@ void QuickSettingsDialog::_theme_selected(int p_id) {
}
void QuickSettingsDialog::_scale_selected(int p_id) {
- _set_setting_value("interface/editor/display_scale", p_id, true);
+ _set_setting_value("interface/editor/appearance/display_scale", p_id, true);
}
void QuickSettingsDialog::_network_mode_selected(int p_id) {
@@ -240,7 +240,7 @@ void QuickSettingsDialog::_set_setting_value(const String &p_setting, const Vari
restart_required_label->show();
if (!restart_required_button) {
- int ed_swap_cancel_ok = EDITOR_GET("interface/editor/accept_dialog_cancel_ok_buttons");
+ int ed_swap_cancel_ok = EDITOR_GET("interface/editor/appearance/accept_dialog_cancel_ok_buttons");
if (ed_swap_cancel_ok == 0) {
ed_swap_cancel_ok = DisplayServer::get_singleton()->get_swap_cancel_ok() ? 2 : 1;
}
diff --git a/editor/scene/scene_tree_editor.cpp b/editor/scene/scene_tree_editor.cpp
index ce8589251d..c47164bde5 100644
--- a/editor/scene/scene_tree_editor.cpp
+++ b/editor/scene/scene_tree_editor.cpp
@@ -1390,7 +1390,7 @@ void SceneTreeEditor::_notification(int p_what) {
case NOTIFICATION_THEME_CHANGED: {
// Wait for the node to be inspected before triggering the unfolding.
- tree->add_theme_constant_override("dragging_unfold_wait_msec", (float)EDITOR_GET("interface/editor/dragging_hover_wait_seconds") * 1000 * 2);
+ tree->add_theme_constant_override("dragging_unfold_wait_msec", (float)EDITOR_GET("interface/editor/timers/dragging_hover_wait_seconds") * 1000 * 2);
tree->add_theme_constant_override("icon_max_width", get_theme_constant(SNAME("class_icon_size"), EditorStringName(Editor)));
[[fallthrough]];
}
diff --git a/editor/script/script_editor_plugin.cpp b/editor/script/script_editor_plugin.cpp
index b19eb77fce..5838169c46 100644
--- a/editor/script/script_editor_plugin.cpp
+++ b/editor/script/script_editor_plugin.cpp
@@ -1481,7 +1481,7 @@ void ScriptEditor::_notification(int p_what) {
case EditorSettings::NOTIFICATION_EDITOR_SETTINGS_CHANGED: {
if (EditorThemeManager::is_generated_theme_outdated() ||
- EditorSettings::get_singleton()->check_changed_settings_in_group("interface/editor") ||
+ EditorSettings::get_singleton()->check_changed_settings_in_group("interface/editor/fonts") ||
EditorSettings::get_singleton()->check_changed_settings_in_group("text_editor") ||
EditorSettings::get_singleton()->check_changed_settings_in_group("docks/filesystem")) {
_apply_editor_settings();
@@ -3004,7 +3004,7 @@ void ScriptEditor::input(const Ref &p_event) {
// the shortcut to be used regardless of the click location.
// This feature can be disabled to avoid interfering with other uses of the additional
// mouse buttons, such as push-to-talk in a VoIP program.
- if (EDITOR_GET("interface/editor/mouse_extra_buttons_navigate_history")) {
+ if (EDITOR_GET("interface/editor/input/mouse_extra_buttons_navigate_history")) {
const Ref mb = p_event;
// Navigate the script history using additional mouse buttons present on some mice.
diff --git a/editor/settings/editor_settings.cpp b/editor/settings/editor_settings.cpp
index 9177b1b008..f9d94c834e 100644
--- a/editor/settings/editor_settings.cpp
+++ b/editor/settings/editor_settings.cpp
@@ -70,6 +70,13 @@ Ref EditorSettings::singleton = nullptr;
bool EditorSettings::_set(const StringName &p_name, const Variant &p_value) {
_THREAD_SAFE_METHOD_
+#ifndef DISABLE_DEPRECATED
+ const String *renamed = compat_map.getptr(p_name);
+ if (renamed) {
+ return _set(*renamed, p_value);
+ }
+#endif
+
bool changed = _set_only(p_name, p_value);
if (changed && initialized) {
changed_settings.insert(p_name);
@@ -82,7 +89,7 @@ bool EditorSettings::_set(const StringName &p_name, const Variant &p_value) {
}
emit_signal(SNAME("settings_changed"));
- if (p_name == SNAME("interface/editor/editor_language")) {
+ if (p_name == SNAME("interface/editor/localization/editor_language")) {
setup_language(false);
}
}
@@ -159,6 +166,13 @@ bool EditorSettings::_set_only(const StringName &p_name, const Variant &p_value)
bool EditorSettings::_get(const StringName &p_name, Variant &r_ret) const {
_THREAD_SAFE_METHOD_
+#ifndef DISABLE_DEPRECATED
+ const String *renamed = compat_map.getptr(p_name);
+ if (renamed) {
+ return _get(*renamed, r_ret);
+ }
+#endif
+
if (p_name == "shortcuts") {
Array save_array;
const HashMap>> &builtin_list = InputMap::get_singleton()->get_builtins();
@@ -435,7 +449,7 @@ void EditorSettings::_load_defaults(Ref p_extra_config) {
}
lang_hint = vformat(";auto/Auto (%s);en/[en] English", TranslationServer::get_singleton()->get_locale_name(best)) + lang_hint;
- EDITOR_SETTING_USAGE(Variant::STRING, PROPERTY_HINT_ENUM, "interface/editor/editor_language", "auto", lang_hint, PROPERTY_USAGE_DEFAULT | PROPERTY_USAGE_RESTART_IF_CHANGED | PROPERTY_USAGE_EDITOR_BASIC_SETTING);
+ EDITOR_SETTING_USAGE(Variant::STRING, PROPERTY_HINT_ENUM, "interface/editor/localization/editor_language", "auto", lang_hint, PROPERTY_USAGE_DEFAULT | PROPERTY_USAGE_RESTART_IF_CHANGED | PROPERTY_USAGE_EDITOR_BASIC_SETTING);
}
// Asset library
@@ -444,21 +458,21 @@ void EditorSettings::_load_defaults(Ref p_extra_config) {
/* Interface */
// Editor
- EDITOR_SETTING(Variant::BOOL, PROPERTY_HINT_NONE, "interface/editor/localize_settings", true, "")
- EDITOR_SETTING_BASIC(Variant::INT, PROPERTY_HINT_ENUM, "interface/editor/dock_tab_style", 0, "Text Only,Icon Only,Text and Icon")
- EDITOR_SETTING_BASIC(Variant::INT, PROPERTY_HINT_ENUM, "interface/editor/bottom_dock_tab_style", 0, "Text Only,Icon Only,Text and Icon")
- EDITOR_SETTING_USAGE(Variant::INT, PROPERTY_HINT_ENUM, "interface/editor/ui_layout_direction", 0, "Based on Application Locale,Left-to-Right,Right-to-Left,Based on System Locale", PROPERTY_USAGE_DEFAULT | PROPERTY_USAGE_RESTART_IF_CHANGED)
+ EDITOR_SETTING(Variant::BOOL, PROPERTY_HINT_NONE, "interface/editor/localization/localize_settings", true, "")
+ EDITOR_SETTING_BASIC(Variant::INT, PROPERTY_HINT_ENUM, "interface/editor/docks/dock_tab_style", 0, "Text Only,Icon Only,Text and Icon")
+ EDITOR_SETTING_BASIC(Variant::INT, PROPERTY_HINT_ENUM, "interface/editor/docks/bottom_dock_tab_style", 0, "Text Only,Icon Only,Text and Icon")
+ EDITOR_SETTING_USAGE(Variant::INT, PROPERTY_HINT_ENUM, "interface/editor/localization/ui_layout_direction", 0, "Based on Application Locale,Left-to-Right,Right-to-Left,Based on System Locale", PROPERTY_USAGE_DEFAULT | PROPERTY_USAGE_RESTART_IF_CHANGED)
// Display what the Auto display scale setting effectively corresponds to.
const String display_scale_hint_string = vformat("Auto (%d%%),75%%,100%%,125%%,150%%,175%%,200%%,Custom", Math::round(get_auto_display_scale() * 100));
- EDITOR_SETTING_USAGE(Variant::INT, PROPERTY_HINT_ENUM, "interface/editor/display_scale", 0, display_scale_hint_string, PROPERTY_USAGE_DEFAULT | PROPERTY_USAGE_RESTART_IF_CHANGED | PROPERTY_USAGE_EDITOR_BASIC_SETTING)
- EDITOR_SETTING_USAGE(Variant::FLOAT, PROPERTY_HINT_RANGE, "interface/editor/custom_display_scale", 1.0, "0.5,3,0.01", PROPERTY_USAGE_DEFAULT | PROPERTY_USAGE_RESTART_IF_CHANGED | PROPERTY_USAGE_EDITOR_BASIC_SETTING)
+ EDITOR_SETTING_USAGE(Variant::INT, PROPERTY_HINT_ENUM, "interface/editor/appearance/display_scale", 0, display_scale_hint_string, PROPERTY_USAGE_DEFAULT | PROPERTY_USAGE_RESTART_IF_CHANGED | PROPERTY_USAGE_EDITOR_BASIC_SETTING)
+ EDITOR_SETTING_USAGE(Variant::FLOAT, PROPERTY_HINT_RANGE, "interface/editor/appearance/custom_display_scale", 1.0, "0.5,3,0.01", PROPERTY_USAGE_DEFAULT | PROPERTY_USAGE_RESTART_IF_CHANGED | PROPERTY_USAGE_EDITOR_BASIC_SETTING)
String ed_screen_hints = "Auto (Remembers last position):-5,Screen With Mouse Pointer:-4,Screen With Keyboard Focus:-3,Primary Screen:-2";
for (int i = 0; i < DisplayServer::get_singleton()->get_screen_count(); i++) {
ed_screen_hints += ",Screen " + itos(i + 1) + ":" + itos(i);
}
- EDITOR_SETTING(Variant::INT, PROPERTY_HINT_ENUM, "interface/editor/editor_screen", EditorSettings::InitialScreen::INITIAL_SCREEN_AUTO, ed_screen_hints)
+ EDITOR_SETTING(Variant::INT, PROPERTY_HINT_ENUM, "interface/editor/appearance/editor_screen", EditorSettings::InitialScreen::INITIAL_SCREEN_AUTO, ed_screen_hints)
#ifdef WINDOWS_ENABLED
String tablet_hints = "Use Project Settings:-1";
@@ -469,76 +483,76 @@ void EditorSettings::_load_defaults(Ref p_extra_config) {
}
tablet_hints += vformat(",%s:%d", drv_name, i);
}
- EDITOR_SETTING(Variant::INT, PROPERTY_HINT_ENUM, "interface/editor/tablet_driver", -1, tablet_hints);
+ EDITOR_SETTING(Variant::INT, PROPERTY_HINT_ENUM, "interface/editor/input/tablet_driver", -1, tablet_hints);
#else
- EDITOR_SETTING(Variant::INT, PROPERTY_HINT_ENUM, "interface/editor/tablet_driver", -1, "Default:-1");
+ EDITOR_SETTING(Variant::INT, PROPERTY_HINT_ENUM, "interface/editor/input/tablet_driver", -1, "Default:-1");
#endif
String project_manager_screen_hints = "Screen With Mouse Pointer:-4,Screen With Keyboard Focus:-3,Primary Screen:-2";
for (int i = 0; i < DisplayServer::get_singleton()->get_screen_count(); i++) {
project_manager_screen_hints += ",Screen " + itos(i + 1) + ":" + itos(i);
}
- EDITOR_SETTING(Variant::INT, PROPERTY_HINT_ENUM, "interface/editor/project_manager_screen", EditorSettings::InitialScreen::INITIAL_SCREEN_PRIMARY, project_manager_screen_hints)
+ EDITOR_SETTING(Variant::INT, PROPERTY_HINT_ENUM, "interface/editor/appearance/project_manager_screen", EditorSettings::InitialScreen::INITIAL_SCREEN_PRIMARY, project_manager_screen_hints)
{
const String update_hint = vformat("Disable Update Checks,Auto (%s),Check Newest Preview,Check Newest Stable,Check Newest Patch", (str_compare(GODOT_VERSION_STATUS, "stable") == 0) ? "Stable" : "Preview");
EDITOR_SETTING_BASIC(Variant::INT, PROPERTY_HINT_ENUM, "network/connection/check_for_updates", EngineUpdateLabel::UpdateMode::AUTO, update_hint);
}
- EDITOR_SETTING_USAGE(Variant::BOOL, PROPERTY_HINT_NONE, "interface/editor/use_embedded_menu", false, "", PROPERTY_USAGE_DEFAULT | PROPERTY_USAGE_EDITOR_BASIC_SETTING)
- EDITOR_SETTING_USAGE(Variant::BOOL, PROPERTY_HINT_NONE, "interface/editor/use_native_file_dialogs", false, "", PROPERTY_USAGE_DEFAULT)
- EDITOR_SETTING_USAGE(Variant::BOOL, PROPERTY_HINT_NONE, "interface/editor/expand_to_title", true, "", PROPERTY_USAGE_DEFAULT | PROPERTY_USAGE_RESTART_IF_CHANGED | PROPERTY_USAGE_EDITOR_BASIC_SETTING)
+ EDITOR_SETTING_USAGE(Variant::BOOL, PROPERTY_HINT_NONE, "interface/editor/appearance/use_embedded_menu", false, "", PROPERTY_USAGE_DEFAULT | PROPERTY_USAGE_EDITOR_BASIC_SETTING)
+ EDITOR_SETTING_USAGE(Variant::BOOL, PROPERTY_HINT_NONE, "interface/editor/appearance/use_native_file_dialogs", false, "", PROPERTY_USAGE_DEFAULT)
+ EDITOR_SETTING_USAGE(Variant::BOOL, PROPERTY_HINT_NONE, "interface/editor/appearance/expand_to_title", true, "", PROPERTY_USAGE_DEFAULT | PROPERTY_USAGE_RESTART_IF_CHANGED | PROPERTY_USAGE_EDITOR_BASIC_SETTING)
- EDITOR_SETTING_BASIC(Variant::INT, PROPERTY_HINT_RANGE, "interface/editor/main_font_size", 14, "8,48,1")
- EDITOR_SETTING_BASIC(Variant::INT, PROPERTY_HINT_RANGE, "interface/editor/code_font_size", 14, "8,48,1")
- _initial_set("interface/editor/main_font_custom_opentype_features", "");
- EDITOR_SETTING(Variant::INT, PROPERTY_HINT_ENUM, "interface/editor/code_font_contextual_ligatures", 1, "Enabled,Disable Contextual Alternates (Coding Ligatures),Use Custom OpenType Feature Set")
- _initial_set("interface/editor/code_font_custom_opentype_features", "");
- _initial_set("interface/editor/code_font_custom_variations", "");
- EDITOR_SETTING_BASIC(Variant::INT, PROPERTY_HINT_ENUM, "interface/editor/font_antialiasing", 1, "None,Grayscale,LCD Subpixel")
+ EDITOR_SETTING_BASIC(Variant::INT, PROPERTY_HINT_RANGE, "interface/editor/fonts/main_font_size", 14, "8,48,1")
+ EDITOR_SETTING_BASIC(Variant::INT, PROPERTY_HINT_RANGE, "interface/editor/fonts/code_font_size", 14, "8,48,1")
+ _initial_set("interface/editor/fonts/main_font_custom_opentype_features", "");
+ EDITOR_SETTING(Variant::INT, PROPERTY_HINT_ENUM, "interface/editor/fonts/code_font_contextual_ligatures", 1, "Enabled,Disable Contextual Alternates (Coding Ligatures),Use Custom OpenType Feature Set")
+ _initial_set("interface/editor/fonts/code_font_custom_opentype_features", "");
+ _initial_set("interface/editor/fonts/code_font_custom_variations", "");
+ EDITOR_SETTING_BASIC(Variant::INT, PROPERTY_HINT_ENUM, "interface/editor/fonts/font_antialiasing", 1, "None,Grayscale,LCD Subpixel")
#ifdef MACOS_ENABLED
- EDITOR_SETTING_BASIC(Variant::INT, PROPERTY_HINT_ENUM, "interface/editor/font_hinting", 0, "Auto (None),None,Light,Normal")
+ EDITOR_SETTING_BASIC(Variant::INT, PROPERTY_HINT_ENUM, "interface/editor/fonts/font_hinting", 0, "Auto (None),None,Light,Normal")
#else
- EDITOR_SETTING_BASIC(Variant::INT, PROPERTY_HINT_ENUM, "interface/editor/font_hinting", 0, "Auto (Light),None,Light,Normal")
+ EDITOR_SETTING_BASIC(Variant::INT, PROPERTY_HINT_ENUM, "interface/editor/fonts/font_hinting", 0, "Auto (Light),None,Light,Normal")
#endif
- EDITOR_SETTING(Variant::INT, PROPERTY_HINT_ENUM, "interface/editor/font_subpixel_positioning", 1, "Disabled,Auto,One Half of a Pixel,One Quarter of a Pixel")
- EDITOR_SETTING(Variant::BOOL, PROPERTY_HINT_NONE, "interface/editor/font_disable_embedded_bitmaps", true, "");
- EDITOR_SETTING(Variant::BOOL, PROPERTY_HINT_NONE, "interface/editor/font_allow_msdf", true, "")
+ EDITOR_SETTING(Variant::INT, PROPERTY_HINT_ENUM, "interface/editor/fonts/font_subpixel_positioning", 1, "Disabled,Auto,One Half of a Pixel,One Quarter of a Pixel")
+ EDITOR_SETTING(Variant::BOOL, PROPERTY_HINT_NONE, "interface/editor/fonts/font_disable_embedded_bitmaps", true, "");
+ EDITOR_SETTING(Variant::BOOL, PROPERTY_HINT_NONE, "interface/editor/fonts/font_allow_msdf", true, "")
- EDITOR_SETTING(Variant::STRING, PROPERTY_HINT_GLOBAL_FILE, "interface/editor/main_font", "", "*.ttf,*.otf,*.woff,*.woff2,*.pfb,*.pfm")
- EDITOR_SETTING(Variant::STRING, PROPERTY_HINT_GLOBAL_FILE, "interface/editor/main_font_bold", "", "*.ttf,*.otf,*.woff,*.woff2,*.pfb,*.pfm")
- EDITOR_SETTING(Variant::STRING, PROPERTY_HINT_GLOBAL_FILE, "interface/editor/code_font", "", "*.ttf,*.otf,*.woff,*.woff2,*.pfb,*.pfm")
- EDITOR_SETTING(Variant::FLOAT, PROPERTY_HINT_RANGE, "interface/editor/dragging_hover_wait_seconds", 0.5, "0.01,10,0.01,or_greater,suffix:s");
- _initial_set("interface/editor/separate_distraction_mode", false, true);
- _initial_set("interface/editor/automatically_open_screenshots", true, true);
- EDITOR_SETTING_USAGE(Variant::BOOL, PROPERTY_HINT_NONE, "interface/editor/single_window_mode", false, "", PROPERTY_USAGE_DEFAULT | PROPERTY_USAGE_RESTART_IF_CHANGED | PROPERTY_USAGE_EDITOR_BASIC_SETTING)
- _initial_set("interface/editor/mouse_extra_buttons_navigate_history", true);
- _initial_set("interface/editor/save_each_scene_on_quit", true, true); // Regression
- EDITOR_SETTING_BASIC(Variant::BOOL, PROPERTY_HINT_NONE, "interface/editor/save_on_focus_loss", false, "")
- EDITOR_SETTING_USAGE(Variant::INT, PROPERTY_HINT_ENUM, "interface/editor/accept_dialog_cancel_ok_buttons", 0,
+ EDITOR_SETTING(Variant::STRING, PROPERTY_HINT_GLOBAL_FILE, "interface/editor/fonts/main_font", "", "*.ttf,*.otf,*.woff,*.woff2,*.pfb,*.pfm")
+ EDITOR_SETTING(Variant::STRING, PROPERTY_HINT_GLOBAL_FILE, "interface/editor/fonts/main_font_bold", "", "*.ttf,*.otf,*.woff,*.woff2,*.pfb,*.pfm")
+ EDITOR_SETTING(Variant::STRING, PROPERTY_HINT_GLOBAL_FILE, "interface/editor/fonts/code_font", "", "*.ttf,*.otf,*.woff,*.woff2,*.pfb,*.pfm")
+ EDITOR_SETTING(Variant::FLOAT, PROPERTY_HINT_RANGE, "interface/editor/timers/dragging_hover_wait_seconds", 0.5, "0.01,10,0.01,or_greater,suffix:s");
+ _initial_set("interface/editor/behavior/separate_distraction_mode", false, true);
+ _initial_set("interface/editor/behavior/automatically_open_screenshots", true, true);
+ EDITOR_SETTING_USAGE(Variant::BOOL, PROPERTY_HINT_NONE, "interface/editor/display/single_window_mode", false, "", PROPERTY_USAGE_DEFAULT | PROPERTY_USAGE_RESTART_IF_CHANGED | PROPERTY_USAGE_EDITOR_BASIC_SETTING)
+ _initial_set("interface/editor/input/mouse_extra_buttons_navigate_history", true);
+ _initial_set("interface/editor/behavior/save_each_scene_on_quit", true, true); // Regression
+ EDITOR_SETTING_BASIC(Variant::BOOL, PROPERTY_HINT_NONE, "interface/editor/behavior/save_on_focus_loss", false, "")
+ EDITOR_SETTING_USAGE(Variant::INT, PROPERTY_HINT_ENUM, "interface/editor/appearance/accept_dialog_cancel_ok_buttons", 0,
vformat("Auto (%s),Cancel First,OK First", DisplayServer::get_singleton()->get_swap_cancel_ok() ? "OK First" : "Cancel First"),
PROPERTY_USAGE_DEFAULT | PROPERTY_USAGE_RESTART_IF_CHANGED);
#ifdef DEV_ENABLED
- EDITOR_SETTING(Variant::INT, PROPERTY_HINT_ENUM, "interface/editor/show_internal_errors_in_toast_notifications", 0, "Auto (Enabled),Enabled,Disabled")
- EDITOR_SETTING(Variant::INT, PROPERTY_HINT_ENUM, "interface/editor/show_update_spinner", 0, "Auto (Enabled),Enabled,Disabled")
+ EDITOR_SETTING(Variant::INT, PROPERTY_HINT_ENUM, "interface/editor/behavior/show_internal_errors_in_toast_notifications", 0, "Auto (Enabled),Enabled,Disabled")
+ EDITOR_SETTING(Variant::INT, PROPERTY_HINT_ENUM, "interface/editor/appearance/show_update_spinner", 0, "Auto (Enabled),Enabled,Disabled")
#else
- EDITOR_SETTING(Variant::INT, PROPERTY_HINT_ENUM, "interface/editor/show_internal_errors_in_toast_notifications", 0, "Auto (Disabled),Enabled,Disabled")
- EDITOR_SETTING(Variant::INT, PROPERTY_HINT_ENUM, "interface/editor/show_update_spinner", 0, "Auto (Disabled),Enabled,Disabled")
+ EDITOR_SETTING(Variant::INT, PROPERTY_HINT_ENUM, "interface/editor/behavior/show_internal_errors_in_toast_notifications", 0, "Auto (Disabled),Enabled,Disabled")
+ EDITOR_SETTING(Variant::INT, PROPERTY_HINT_ENUM, "interface/editor/appearance/show_update_spinner", 0, "Auto (Disabled),Enabled,Disabled")
#endif
- _initial_set("interface/editor/keep_screen_on", false, true);
- EDITOR_SETTING_USAGE(Variant::INT, PROPERTY_HINT_RANGE, "interface/editor/low_processor_mode_sleep_usec", 6900, "1,100000,1", PROPERTY_USAGE_DEFAULT | PROPERTY_USAGE_RESTART_IF_CHANGED)
+ _initial_set("interface/editor/display/keep_screen_on", false, true);
+ EDITOR_SETTING_USAGE(Variant::INT, PROPERTY_HINT_RANGE, "interface/editor/timers/low_processor_mode_sleep_usec", 6900, "1,100000,1", PROPERTY_USAGE_DEFAULT | PROPERTY_USAGE_RESTART_IF_CHANGED)
// Default unfocused usec sleep is for 10 FPS. Allow an unfocused FPS limit
// as low as 1 FPS for those who really need low power usage (but don't need
// to preview particles or shaders while the editor is unfocused). With very
// low FPS limits, the editor can take a small while to become usable after
// being focused again, so this should be used at the user's discretion.
- EDITOR_SETTING_USAGE(Variant::INT, PROPERTY_HINT_RANGE, "interface/editor/unfocused_low_processor_mode_sleep_usec", 100000, "1,1000000,1", PROPERTY_USAGE_DEFAULT | PROPERTY_USAGE_RESTART_IF_CHANGED)
+ EDITOR_SETTING_USAGE(Variant::INT, PROPERTY_HINT_RANGE, "interface/editor/timers/unfocused_low_processor_mode_sleep_usec", 100000, "1,1000000,1", PROPERTY_USAGE_DEFAULT | PROPERTY_USAGE_RESTART_IF_CHANGED)
- EDITOR_SETTING_BASIC(Variant::BOOL, PROPERTY_HINT_NONE, "interface/editor/import_resources_when_unfocused", false, "")
+ EDITOR_SETTING_BASIC(Variant::BOOL, PROPERTY_HINT_NONE, "interface/editor/behavior/import_resources_when_unfocused", false, "")
- EDITOR_SETTING_BASIC(Variant::INT, PROPERTY_HINT_ENUM, "interface/editor/vsync_mode", 1, "Disabled,Enabled,Adaptive,Mailbox")
- EDITOR_SETTING(Variant::BOOL, PROPERTY_HINT_NONE, "interface/editor/update_continuously", false, "")
+ EDITOR_SETTING_BASIC(Variant::INT, PROPERTY_HINT_ENUM, "interface/editor/display/vsync_mode", 1, "Disabled,Enabled,Adaptive,Mailbox")
+ EDITOR_SETTING(Variant::BOOL, PROPERTY_HINT_NONE, "interface/editor/display/update_continuously", false, "")
bool is_android_editor = false;
#ifdef ANDROID_ENABLED
@@ -546,7 +560,7 @@ void EditorSettings::_load_defaults(Ref p_extra_config) {
is_android_editor = true;
}
#endif
- EDITOR_SETTING(Variant::BOOL, PROPERTY_HINT_NONE, "interface/editor/collapse_main_menu", is_android_editor, "")
+ EDITOR_SETTING(Variant::BOOL, PROPERTY_HINT_NONE, "interface/editor/appearance/collapse_main_menu", is_android_editor, "")
_initial_set("interface/editors/show_scene_tree_root_selection", true);
_initial_set("interface/editors/derive_script_globals_by_name", true);
@@ -1234,12 +1248,71 @@ const String EditorSettings::_get_project_metadata_path() const {
}
#ifndef DISABLE_DEPRECATED
-void EditorSettings::_remove_deprecated_settings() {
+void EditorSettings::_handle_setting_compatibility() {
+ // Remove deprecated settings.
erase("interface/theme/preset");
erase("network/connection/engine_version_update_mode");
erase("run/output/always_open_output_on_play");
erase("run/output/always_close_output_on_stop");
erase("text_editor/theme/line_spacing"); // See GH-106137.
+
+ // Handle renamed settings.
+ _rename_setting("interface/editor/editor_language", "interface/editor/localization/editor_language");
+ _rename_setting("interface/editor/localize_settings", "interface/editor/localization/localize_settings");
+ _rename_setting("interface/editor/dock_tab_style", "interface/editor/docks/dock_tab_style");
+ _rename_setting("interface/editor/bottom_dock_tab_style", "interface/editor/docks/bottom_dock_tab_style");
+ _rename_setting("interface/editor/ui_layout_direction", "interface/editor/localization/ui_layout_direction");
+ _rename_setting("interface/editor/display_scale", "interface/editor/appearance/display_scale");
+ _rename_setting("interface/editor/custom_display_scale", "interface/editor/appearance/custom_display_scale");
+ _rename_setting("interface/editor/editor_screen", "interface/editor/appearance/editor_screen");
+ _rename_setting("interface/editor/tablet_driver", "interface/editor/input/tablet_driver");
+ _rename_setting("interface/editor/project_manager_screen", "interface/editor/appearance/project_manager_screen");
+ _rename_setting("interface/editor/use_embedded_menu", "interface/editor/appearance/use_embedded_menu");
+ _rename_setting("interface/editor/use_native_file_dialogs", "interface/editor/appearance/use_native_file_dialogs");
+ _rename_setting("interface/editor/expand_to_title", "interface/editor/appearance/expand_to_title");
+ _rename_setting("interface/editor/main_font_size", "interface/editor/fonts/main_font_size");
+ _rename_setting("interface/editor/code_font_size", "interface/editor/fonts/code_font_size");
+ _rename_setting("interface/editor/main_font_custom_opentype_features", "interface/editor/fonts/main_font_custom_opentype_features");
+ _rename_setting("interface/editor/code_font_contextual_ligatures", "interface/editor/fonts/code_font_contextual_ligatures");
+ _rename_setting("interface/editor/code_font_custom_opentype_features", "interface/editor/fonts/code_font_custom_opentype_features");
+ _rename_setting("interface/editor/code_font_custom_variations", "interface/editor/fonts/code_font_custom_variations");
+ _rename_setting("interface/editor/font_antialiasing", "interface/editor/fonts/font_antialiasing");
+ _rename_setting("interface/editor/font_hinting", "interface/editor/fonts/font_hinting");
+ _rename_setting("interface/editor/font_subpixel_positioning", "interface/editor/fonts/font_subpixel_positioning");
+ _rename_setting("interface/editor/font_disable_embedded_bitmaps", "interface/editor/fonts/font_disable_embedded_bitmaps");
+ _rename_setting("interface/editor/font_allow_msdf", "interface/editor/fonts/font_allow_msdf");
+ _rename_setting("interface/editor/main_font", "interface/editor/fonts/main_font");
+ _rename_setting("interface/editor/main_font_bold", "interface/editor/fonts/main_font_bold");
+ _rename_setting("interface/editor/code_font", "interface/editor/fonts/code_font");
+ _rename_setting("interface/editor/dragging_hover_wait_seconds", "interface/editor/timers/dragging_hover_wait_seconds");
+ _rename_setting("interface/editor/separate_distraction_mode", "interface/editor/behavior/separate_distraction_mode");
+ _rename_setting("interface/editor/automatically_open_screenshots", "interface/editor/behavior/automatically_open_screenshots");
+ _rename_setting("interface/editor/single_window_mode", "interface/editor/display/single_window_mode");
+ _rename_setting("interface/editor/mouse_extra_buttons_navigate_history", "interface/editor/input/mouse_extra_buttons_navigate_history");
+ _rename_setting("interface/editor/save_each_scene_on_quit", "interface/editor/behavior/save_each_scene_on_quit");
+ _rename_setting("interface/editor/save_on_focus_loss", "interface/editor/behavior/save_on_focus_loss");
+ _rename_setting("interface/editor/accept_dialog_cancel_ok_buttons", "interface/editor/appearance/accept_dialog_cancel_ok_buttons");
+ _rename_setting("interface/editor/show_internal_errors_in_toast_notifications", "interface/editor/behavior/show_internal_errors_in_toast_notifications");
+ _rename_setting("interface/editor/show_update_spinner", "interface/editor/appearance/show_update_spinner");
+ _rename_setting("interface/editor/keep_screen_on", "interface/editor/display/keep_screen_on");
+ _rename_setting("interface/editor/low_processor_mode_sleep_usec", "interface/editor/timers/low_processor_mode_sleep_usec");
+ _rename_setting("interface/editor/unfocused_low_processor_mode_sleep_usec", "interface/editor/timers/unfocused_low_processor_mode_sleep_usec");
+ _rename_setting("interface/editor/import_resources_when_unfocused", "interface/editor/behavior/import_resources_when_unfocused");
+ _rename_setting("interface/editor/vsync_mode", "interface/editor/display/vsync_mode");
+ _rename_setting("interface/editor/update_continuously", "interface/editor/display/update_continuously");
+ _rename_setting("interface/editor/collapse_main_menu", "interface/editor/appearance/collapse_main_menu");
+}
+
+void EditorSettings::_rename_setting(const String &p_old_name, const String &p_new_name) {
+ if (has_setting(p_old_name)) {
+ set_setting(p_new_name, get_setting(p_old_name));
+ erase(p_old_name);
+ }
+ if (ProjectSettings::get_singleton()->has_editor_setting_override(p_old_name)) {
+ ProjectSettings::get_singleton()->set_editor_setting_override(p_new_name, ProjectSettings::get_singleton()->get_editor_setting_override(p_old_name));
+ ProjectSettings::get_singleton()->set_editor_setting_override(p_old_name, Variant());
+ }
+ compat_map[p_old_name] = p_new_name;
}
#endif
@@ -1324,7 +1397,7 @@ void EditorSettings::create() {
singleton->load_favorites_and_recent_dirs();
singleton->update_text_editor_themes_list();
#ifndef DISABLE_DEPRECATED
- singleton->_remove_deprecated_settings();
+ singleton->_handle_setting_compatibility();
#endif
return;
@@ -1478,7 +1551,11 @@ Variant EditorSettings::get_setting(const String &p_setting) const {
bool EditorSettings::has_setting(const String &p_setting) const {
_THREAD_SAFE_METHOD_
+#ifndef DISABLE_DEPRECATED
+ return props.has(p_setting) || compat_map.has(p_setting);
+#else
return props.has(p_setting);
+#endif
}
void EditorSettings::erase(const String &p_setting) {
@@ -1921,7 +1998,7 @@ float EditorSettings::get_auto_display_scale() {
}
String EditorSettings::get_language() const {
- const String language = has_setting("interface/editor/editor_language") ? get("interface/editor/editor_language") : "auto";
+ const String language = has_setting("interface/editor/localization/editor_language") ? get("interface/editor/localization/editor_language") : "auto";
if (language != "auto") {
return language;
}
diff --git a/editor/settings/editor_settings.h b/editor/settings/editor_settings.h
index dcb6046304..220d865c38 100644
--- a/editor/settings/editor_settings.h
+++ b/editor/settings/editor_settings.h
@@ -124,7 +124,9 @@ private:
static String _guess_exec_args_for_extenal_editor(const String &p_value);
const String _get_project_metadata_path() const;
#ifndef DISABLE_DEPRECATED
- void _remove_deprecated_settings();
+ HashMap compat_map;
+ void _handle_setting_compatibility();
+ void _rename_setting(const String &p_old_name, const String &p_new_name);
#endif
// Bind helpers.
diff --git a/editor/settings/editor_settings_dialog.cpp b/editor/settings/editor_settings_dialog.cpp
index 0f9624b5f8..0858e40706 100644
--- a/editor/settings/editor_settings_dialog.cpp
+++ b/editor/settings/editor_settings_dialog.cpp
@@ -298,7 +298,7 @@ void EditorSettingsDialog::_notification(int p_what) {
inspector->get_inspector()->update_tree();
}
- if (EditorSettings::get_singleton()->check_changed_settings_in_group("interface/editor/localize_settings")) {
+ if (EditorSettings::get_singleton()->check_changed_settings_in_group("interface/editor/localization/localize_settings")) {
inspector->update_category_list();
}
} break;
diff --git a/editor/shader/text_shader_editor.cpp b/editor/shader/text_shader_editor.cpp
index 0d371877b0..ac55753488 100644
--- a/editor/shader/text_shader_editor.cpp
+++ b/editor/shader/text_shader_editor.cpp
@@ -801,7 +801,7 @@ void TextShaderEditor::_notification(int p_what) {
switch (p_what) {
case EditorSettings::NOTIFICATION_EDITOR_SETTINGS_CHANGED: {
if (EditorThemeManager::is_generated_theme_outdated() ||
- EditorSettings::get_singleton()->check_changed_settings_in_group("interface/editor") ||
+ EditorSettings::get_singleton()->check_changed_settings_in_group("interface/editor/fonts") ||
EditorSettings::get_singleton()->check_changed_settings_in_group("text_editor")) {
_apply_editor_settings();
}
diff --git a/editor/themes/editor_fonts.cpp b/editor/themes/editor_fonts.cpp
index 5dfdb2893d..eb4f7bd081 100644
--- a/editor/themes/editor_fonts.cpp
+++ b/editor/themes/editor_fonts.cpp
@@ -115,11 +115,11 @@ Ref make_bold_font(const Ref &p_font, double p_embolden, Ty
void editor_register_fonts(const Ref &p_theme) {
Ref dir = DirAccess::create(DirAccess::ACCESS_FILESYSTEM);
- TextServer::FontAntialiasing font_antialiasing = (TextServer::FontAntialiasing)(int)EDITOR_GET("interface/editor/font_antialiasing");
- int font_hinting_setting = (int)EDITOR_GET("interface/editor/font_hinting");
- TextServer::SubpixelPositioning font_subpixel_positioning = (TextServer::SubpixelPositioning)(int)EDITOR_GET("interface/editor/font_subpixel_positioning");
- bool font_disable_embedded_bitmaps = (bool)EDITOR_GET("interface/editor/font_disable_embedded_bitmaps");
- bool font_allow_msdf = (bool)EDITOR_GET("interface/editor/font_allow_msdf");
+ TextServer::FontAntialiasing font_antialiasing = (TextServer::FontAntialiasing)(int)EDITOR_GET("interface/editor/fonts/font_antialiasing");
+ int font_hinting_setting = (int)EDITOR_GET("interface/editor/fonts/font_hinting");
+ TextServer::SubpixelPositioning font_subpixel_positioning = (TextServer::SubpixelPositioning)(int)EDITOR_GET("interface/editor/fonts/font_subpixel_positioning");
+ bool font_disable_embedded_bitmaps = (bool)EDITOR_GET("interface/editor/fonts/font_disable_embedded_bitmaps");
+ bool font_allow_msdf = (bool)EDITOR_GET("interface/editor/fonts/font_allow_msdf");
TextServer::Hinting font_hinting;
TextServer::Hinting font_mono_hinting;
@@ -152,7 +152,7 @@ void editor_register_fonts(const Ref &p_theme) {
}
// Load built-in fonts.
- const int default_font_size = int(EDITOR_GET("interface/editor/main_font_size")) * EDSCALE;
+ const int default_font_size = int(EDITOR_GET("interface/editor/fonts/main_font_size")) * EDSCALE;
const float embolden_strength = 0.6;
Ref default_font = load_internal_font(_font_Inter_Regular, _font_Inter_Regular_size, font_hinting, font_antialiasing, true, font_subpixel_positioning, font_disable_embedded_bitmaps, false);
@@ -266,9 +266,9 @@ void editor_register_fonts(const Ref &p_theme) {
default_font_mono->set_fallbacks(fallbacks);
// Init base font configs and load custom fonts.
- String custom_font_path = EDITOR_GET("interface/editor/main_font");
- String custom_font_path_bold = EDITOR_GET("interface/editor/main_font_bold");
- String custom_font_path_source = EDITOR_GET("interface/editor/code_font");
+ String custom_font_path = EDITOR_GET("interface/editor/fonts/main_font");
+ String custom_font_path_bold = EDITOR_GET("interface/editor/fonts/main_font_bold");
+ String custom_font_path_source = EDITOR_GET("interface/editor/fonts/code_font");
Ref default_fc;
default_fc.instantiate();
@@ -280,7 +280,7 @@ void editor_register_fonts(const Ref &p_theme) {
}
default_fc->set_base_font(custom_font);
} else {
- EditorSettings::get_singleton()->set_manually("interface/editor/main_font", "");
+ EditorSettings::get_singleton()->set_manually("interface/editor/fonts/main_font", "");
default_fc->set_opentype_features(default_features);
default_fc->set_base_font(default_font);
}
@@ -300,7 +300,7 @@ void editor_register_fonts(const Ref &p_theme) {
}
default_fc_msdf->set_base_font(custom_font);
} else {
- EditorSettings::get_singleton()->set_manually("interface/editor/main_font", "");
+ EditorSettings::get_singleton()->set_manually("interface/editor/fonts/main_font", "");
default_fc_msdf->set_opentype_features(default_features);
default_fc_msdf->set_base_font(default_font_msdf);
}
@@ -328,7 +328,7 @@ void editor_register_fonts(const Ref &p_theme) {
bold_fc->set_variation_embolden(embolden_strength);
}
} else {
- EditorSettings::get_singleton()->set_manually("interface/editor/main_font_bold", "");
+ EditorSettings::get_singleton()->set_manually("interface/editor/fonts/main_font_bold", "");
bold_fc->set_opentype_features(default_features);
bold_fc->set_base_font(default_font_bold);
}
@@ -358,7 +358,7 @@ void editor_register_fonts(const Ref &p_theme) {
bold_fc_msdf->set_variation_embolden(embolden_strength);
}
} else {
- EditorSettings::get_singleton()->set_manually("interface/editor/main_font_bold", "");
+ EditorSettings::get_singleton()->set_manually("interface/editor/fonts/main_font_bold", "");
bold_fc_msdf->set_opentype_features(default_features);
bold_fc_msdf->set_base_font(default_font_bold_msdf);
}
@@ -366,8 +366,8 @@ void editor_register_fonts(const Ref &p_theme) {
bold_fc_msdf->set_spacing(TextServer::SPACING_BOTTOM, -EDSCALE);
bold_fc_msdf->set_variation_opentype(bold_fc_opentype);
- if (!String(EDITOR_GET("interface/editor/main_font_custom_opentype_features")).is_empty()) {
- Vector subtag = String(EDITOR_GET("interface/editor/main_font_custom_opentype_features")).split(",");
+ if (!String(EDITOR_GET("interface/editor/fonts/main_font_custom_opentype_features")).is_empty()) {
+ Vector subtag = String(EDITOR_GET("interface/editor/fonts/main_font_custom_opentype_features")).split(",");
if (!subtag.is_empty()) {
Dictionary ftrs;
for (int i = 0; i < subtag.size(); i++) {
@@ -395,7 +395,7 @@ void editor_register_fonts(const Ref &p_theme) {
}
mono_fc->set_base_font(custom_font);
} else {
- EditorSettings::get_singleton()->set_manually("interface/editor/code_font", "");
+ EditorSettings::get_singleton()->set_manually("interface/editor/fonts/code_font", "");
mono_fc->set_base_font(default_font_mono);
}
mono_fc->set_spacing(TextServer::SPACING_TOP, -EDSCALE);
@@ -404,7 +404,7 @@ void editor_register_fonts(const Ref &p_theme) {
Ref mono_other_fc = mono_fc->duplicate();
// Enable contextual alternates (coding ligatures) and custom features for the source editor font.
- int ot_mode = EDITOR_GET("interface/editor/code_font_contextual_ligatures");
+ int ot_mode = EDITOR_GET("interface/editor/fonts/code_font_contextual_ligatures");
switch (ot_mode) {
case 1: { // Disable ligatures.
Dictionary ftrs;
@@ -412,7 +412,7 @@ void editor_register_fonts(const Ref &p_theme) {
mono_fc->set_opentype_features(ftrs);
} break;
case 2: { // Custom.
- Vector subtag = String(EDITOR_GET("interface/editor/code_font_custom_opentype_features")).split(",");
+ Vector subtag = String(EDITOR_GET("interface/editor/fonts/code_font_custom_opentype_features")).split(",");
Dictionary ftrs;
for (int i = 0; i < subtag.size(); i++) {
Vector subtag_a = subtag[i].split("=");
@@ -431,7 +431,7 @@ void editor_register_fonts(const Ref &p_theme) {
} break;
}
- Vector variation_tags = String(EDITOR_GET("interface/editor/code_font_custom_variations")).split(",");
+ Vector variation_tags = String(EDITOR_GET("interface/editor/fonts/code_font_custom_variations")).split(",");
Dictionary variations_mono;
for (int i = 0; i < variation_tags.size(); i++) {
Vector subtag_a = variation_tags[i].split("=");
@@ -545,10 +545,10 @@ void editor_register_fonts(const Ref &p_theme) {
p_theme->set_font("rotation_control", EditorStringName(EditorFonts), default_fc);
// Code font
- p_theme->set_font_size("source_size", EditorStringName(EditorFonts), int(EDITOR_GET("interface/editor/code_font_size")) * EDSCALE);
+ p_theme->set_font_size("source_size", EditorStringName(EditorFonts), int(EDITOR_GET("interface/editor/fonts/code_font_size")) * EDSCALE);
p_theme->set_font("source", EditorStringName(EditorFonts), mono_fc);
- p_theme->set_font_size("expression_size", EditorStringName(EditorFonts), (int(EDITOR_GET("interface/editor/code_font_size")) - 1) * EDSCALE);
+ p_theme->set_font_size("expression_size", EditorStringName(EditorFonts), (int(EDITOR_GET("interface/editor/fonts/code_font_size")) - 1) * EDSCALE);
p_theme->set_font("expression", EditorStringName(EditorFonts), mono_other_fc);
p_theme->set_font_size("output_source_size", EditorStringName(EditorFonts), int(EDITOR_GET("run/output/font_size")) * EDSCALE);
diff --git a/editor/themes/editor_theme_manager.cpp b/editor/themes/editor_theme_manager.cpp
index 2f035d6b1a..6ee231770c 100644
--- a/editor/themes/editor_theme_manager.cpp
+++ b/editor/themes/editor_theme_manager.cpp
@@ -265,7 +265,7 @@ EditorThemeManager::ThemeConfiguration EditorThemeManager::_create_theme_config(
config.enable_touch_optimizations = EDITOR_GET("interface/touchscreen/enable_touch_optimizations");
config.gizmo_handle_scale = EDITOR_GET("interface/touchscreen/scale_gizmo_handles");
config.subresource_hue_tint = EDITOR_GET("docks/property_editor/subresource_hue_tint");
- config.dragging_hover_wait_msec = (float)EDITOR_GET("interface/editor/dragging_hover_wait_seconds") * 1000;
+ config.dragging_hover_wait_msec = (float)EDITOR_GET("interface/editor/timers/dragging_hover_wait_seconds") * 1000;
// Handle theme style.
if (config.preset != "Custom") {
@@ -715,9 +715,7 @@ bool EditorThemeManager::is_generated_theme_outdated() {
if (outdated_cache_dirty) {
// TODO: We can use this information more intelligently to do partial theme updates and speed things up.
outdated_cache = EditorSettings::get_singleton()->check_changed_settings_in_group("interface/theme") ||
- EditorSettings::get_singleton()->check_changed_settings_in_group("interface/editor/font") ||
- EditorSettings::get_singleton()->check_changed_settings_in_group("interface/editor/main_font") ||
- EditorSettings::get_singleton()->check_changed_settings_in_group("interface/editor/code_font") ||
+ EditorSettings::get_singleton()->check_changed_settings_in_group("interface/editor/fonts") ||
EditorSettings::get_singleton()->check_changed_settings_in_group("editors/visual_editors") ||
EditorSettings::get_singleton()->check_changed_settings_in_group("text_editor/theme") ||
EditorSettings::get_singleton()->check_changed_settings_in_group("text_editor/help/help") ||
diff --git a/main/main.cpp b/main/main.cpp
index de0c0ee2d8..9c1c677c6d 100644
--- a/main/main.cpp
+++ b/main/main.cpp
@@ -3012,9 +3012,9 @@ Error Main::setup2(bool p_show_boot_logo) {
bool ac_found = false;
if (editor) {
- screen_property = "interface/editor/editor_screen";
+ screen_property = "interface/editor/appearance/editor_screen";
} else if (project_manager) {
- screen_property = "interface/editor/project_manager_screen";
+ screen_property = "interface/editor/appearance/project_manager_screen";
} else {
// Skip.
screen_found = true;
@@ -3047,13 +3047,13 @@ Error Main::setup2(bool p_show_boot_logo) {
if (!ac_found && assign == "interface/accessibility/accessibility_support") {
accessibility_mode_editor = value;
ac_found = true;
- } else if (!init_expand_to_title_found && assign == "interface/editor/expand_to_title") {
+ } else if (!init_expand_to_title_found && assign == "interface/editor/appearance/expand_to_title") {
init_expand_to_title = value;
init_expand_to_title_found = true;
- } else if (!init_display_scale_found && assign == "interface/editor/display_scale") {
+ } else if (!init_display_scale_found && assign == "interface/editor/appearance/display_scale") {
init_display_scale = value;
init_display_scale_found = true;
- } else if (!init_custom_scale_found && assign == "interface/editor/custom_display_scale") {
+ } else if (!init_custom_scale_found && assign == "interface/editor/appearance/custom_display_scale") {
init_custom_scale = value;
init_custom_scale_found = true;
} else if (!prefer_wayland_found && assign == "run/platforms/linuxbsd/prefer_wayland") {
@@ -3064,7 +3064,7 @@ Error Main::setup2(bool p_show_boot_logo) {
prefer_wayland = value;
}
prefer_wayland_found = true;
- } else if (!tablet_found && assign == "interface/editor/tablet_driver") {
+ } else if (!tablet_found && assign == "interface/editor/input/tablet_driver") {
tablet_driver_editor = value;
tablet_found = true;
}
@@ -4575,12 +4575,12 @@ int Main::start() {
#ifdef TOOLS_ENABLED
if (editor) {
- bool editor_embed_subwindows = EDITOR_GET("interface/editor/single_window_mode");
+ bool editor_embed_subwindows = EDITOR_GET("interface/editor/display/single_window_mode");
if (editor_embed_subwindows) {
sml->get_root()->set_embedding_subwindows(true);
}
- restore_editor_window_layout = EDITOR_GET("interface/editor/editor_screen").operator int() == EditorSettings::InitialScreen::INITIAL_SCREEN_AUTO;
+ restore_editor_window_layout = EDITOR_GET("interface/editor/appearance/editor_screen").operator int() == EditorSettings::InitialScreen::INITIAL_SCREEN_AUTO;
}
#endif