@@ -44,6 +44,7 @@ void QuickSettingsDialog::_fetch_setting_values() {
4444#ifndef ANDROID_ENABLED
4545 editor_languages.clear ();
4646#endif
47+ editor_styles.clear ();
4748 editor_themes.clear ();
4849 editor_scales.clear ();
4950 editor_network_modes.clear ();
@@ -59,6 +60,8 @@ void QuickSettingsDialog::_fetch_setting_values() {
5960#ifndef ANDROID_ENABLED
6061 editor_languages = pi.hint_string .split (" ;" , false );
6162#endif
63+ } else if (pi.name == " interface/theme/style" ) {
64+ editor_styles = pi.hint_string .split (" ," );
6265 } else if (pi.name == " interface/theme/color_preset" ) {
6366 editor_themes = pi.hint_string .split (" ," );
6467 } else if (pi.name == " interface/editor/display_scale" ) {
@@ -90,6 +93,19 @@ void QuickSettingsDialog::_update_current_values() {
9093 }
9194 }
9295#endif
96+ // Style options.
97+ {
98+ const String current_style = EDITOR_GET (" interface/theme/style" );
99+
100+ for (int i = 0 ; i < editor_styles.size (); i++) {
101+ const String &style_value = editor_styles[i];
102+ if (current_style == style_value) {
103+ style_option_button->set_text (current_style);
104+ style_option_button->select (i);
105+ style_option_button->set_auto_translate_mode (AUTO_TRANSLATE_MODE_DISABLED);
106+ }
107+ }
108+ }
93109
94110 // Theme options.
95111 {
@@ -183,6 +199,11 @@ void QuickSettingsDialog::_language_selected(int p_id) {
183199}
184200#endif
185201
202+ void QuickSettingsDialog::_style_selected (int p_id) {
203+ const String selected_style = style_option_button->get_item_text (p_id);
204+ _set_setting_value (" interface/theme/style" , selected_style);
205+ }
206+
186207void QuickSettingsDialog::_theme_selected (int p_id) {
187208 const String selected_theme = theme_option_button->get_item_text (p_id);
188209 _set_setting_value (" interface/theme/color_preset" , selected_theme);
@@ -295,6 +316,19 @@ QuickSettingsDialog::QuickSettingsDialog() {
295316 _add_setting_control (TTRC (" Language" ), language_option_button);
296317 }
297318#endif
319+ // Style options.
320+ {
321+ style_option_button = memnew (OptionButton);
322+ style_option_button->set_fit_to_longest_item (false );
323+ style_option_button->connect (SceneStringName (item_selected), callable_mp (this , &QuickSettingsDialog::_style_selected));
324+
325+ for (int i = 0 ; i < editor_styles.size (); i++) {
326+ const String &style_value = editor_styles[i];
327+ style_option_button->add_item (style_value, i);
328+ }
329+
330+ _add_setting_control (TTRC (" Style" ), style_option_button);
331+ }
298332
299333 // Theme options.
300334 {
0 commit comments