From a133907c9273ab3f41a0b91c0e4955f800bee820 Mon Sep 17 00:00:00 2001 From: William Reynish Date: Thu, 17 Sep 2009 17:42:08 +0000 Subject: [PATCH] -Shuffled some user prefs around to make better use of the available space in Preferences. -Temporarily disabled the Themes tab until we figure out how to manage themes properly. --- release/ui/space_userpref.py | 133 ++++++++----------- source/blender/makesrna/intern/rna_userdef.c | 107 +++++++++++---- 2 files changed, 141 insertions(+), 99 deletions(-) diff --git a/release/ui/space_userpref.py b/release/ui/space_userpref.py index 267a0b4a78b..c148506214a 100644 --- a/release/ui/space_userpref.py +++ b/release/ui/space_userpref.py @@ -1,4 +1,4 @@ - + import bpy class USERPREF_HT_header(bpy.types.Header): @@ -195,7 +195,7 @@ class USERPREF_PT_edit(bpy.types.Panel): sub1 = sub.column() sub1.itemL(text="Keyframing:") sub1.itemR(edit, "use_visual_keying") - sub1.itemR(edit, "new_interpolation_type") + sub1.itemR(edit, "new_interpolation_type", text="New F-Curves") sub1.itemS() sub1.itemR(edit, "auto_keying_enable", text="Auto Keyframing") sub2 = sub1.column() @@ -203,13 +203,16 @@ class USERPREF_PT_edit(bpy.types.Panel): sub2.row().itemR(edit, "auto_keying_mode", expand=True) sub2.itemR(edit, "auto_keyframe_insert_available", text="Only Insert Available") sub2.itemR(edit, "auto_keyframe_insert_needed", text="Only Insert Needed") + sub1.itemS() sub1.itemS() sub1.itemS() + sub1.itemL(text="Undo:") sub1.itemR(edit, "global_undo") sub1.itemR(edit, "undo_steps", text="Steps") sub1.itemR(edit, "undo_memory_limit", text="Memory Limit") + sub1.itemS() sub1.itemS() sub1.itemS() @@ -218,7 +221,7 @@ class USERPREF_PT_edit(bpy.types.Panel): sub = col.split(percentage=0.85) sub1 = sub.column() - sub1.itemL(text="Duplicate:") + sub1.itemL(text="Duplicate Data:") sub1.itemR(edit, "duplicate_mesh", text="Mesh") sub1.itemR(edit, "duplicate_surface", text="Surface") sub1.itemR(edit, "duplicate_curve", text="Curve") @@ -246,63 +249,64 @@ class USERPREF_PT_system(bpy.types.Panel): userpref = context.user_preferences system = userpref.system - lan = userpref.language split = layout.split() col = split.column() - sub = col.split(percentage=0.85) + sub = col.split(percentage=0.9) sub1 = sub.column() - sub1.itemR(system, "emulate_numpad") - sub1.itemS() - sub1.itemS() - - #Weight Colors - sub1.itemL(text="Weight Colors:") - sub1.itemR(system, "use_weight_color_range", text="Use Custom Range") - - sub2 = sub1.column() - sub2.active = system.use_weight_color_range - sub2.template_color_ramp(system, "weight_color_range", expand=True) - sub1.itemS() - sub1.itemS() - - #sequencer - sub1.itemL(text="Sequencer:") - sub1.itemR(system, "prefetch_frames") - sub1.itemR(system, "memory_cache_limit") - - col = split.column() - sub = col.split(percentage=0.85) - - sub1 = sub .column() - #System - sub1.itemL(text="System:") - sub1.itemR(lan, "dpi") - sub1.itemR(system, "auto_run_python_scripts") + sub1.itemL(text="General:") + sub1.itemR(system, "dpi") sub1.itemR(system, "frame_server_port") - sub1.itemR(system, "filter_file_extensions") - sub1.itemR(system, "hide_dot_files_datablocks") - sub1.itemR(lan, "scrollback", text="Console Scrollback") + sub1.itemR(system, "scrollback", text="Console Scrollback") + sub1.itemR(system, "emulate_numpad") + sub1.itemR(system, "auto_run_python_scripts") + sub1.itemS() sub1.itemS() + sub1.itemS() + sub1.itemL(text="Sound:") - sub1.itemR(system, "audio_device") + sub1.row().itemR(system, "audio_device", expand=True) sub2 = sub1.column() sub2.active = system.audio_device != 'AUDIO_DEVICE_NULL' sub2.itemR(system, "enable_all_codecs") sub2.itemR(system, "game_sound") - sub2.itemR(system, "audio_channels") - sub2.itemR(system, "audio_mixing_buffer") - sub2.itemR(system, "audio_sample_rate") - sub2.itemR(system, "audio_sample_format") + sub2.itemR(system, "audio_channels", text="Channels") + sub2.itemR(system, "audio_mixing_buffer", text="Mixing Buffer") + sub2.itemR(system, "audio_sample_rate", text="Sample Rate") + sub2.itemR(system, "audio_sample_format", text="Sample Format") + + col = split.column() + sub = col.split(percentage=0.9) + + sub1 = sub .column() + sub1.itemL(text="Weight Colors:") + sub1.itemR(system, "use_weight_color_range", text="Use Custom Range") + sub2 = sub1.column() + sub2.active = system.use_weight_color_range + sub2.template_color_ramp(system, "weight_color_range", expand=True) + + sub1.itemS() + sub1.itemS() + sub1.itemS() + + sub1.itemR(system, "language") + sub1.itemL(text="Translate:") + sub1.itemR(system, "translate_tooltips", text="Tooltips") + sub1.itemR(system, "translate_buttons", text="Labels") + sub1.itemR(system, "translate_toolbox", text="Toolbox") + + sub1.itemS() + + sub1.itemR(system, "use_textured_fonts") col = split.column() - sub = col.split(percentage=0.85) + sub = col.split(percentage=0.9) sub1 = sub.column() - #OpenGL + sub1.itemL(text="OpenGL:") sub1.itemR(system, "clip_alpha", slider=True) sub1.itemR(system, "use_mipmaps") @@ -311,7 +315,15 @@ class USERPREF_PT_system(bpy.types.Panel): sub1.itemL(text="Textures:") sub1.itemR(system, "gl_texture_limit", text="Limit Size") sub1.itemR(system, "texture_time_out", text="Time Out") - sub1.itemR(system, "texture_collection_rate", text="Collection Rate") + sub1.itemR(system, "texture_collection_rate", text="Collection Rate") + + sub1.itemS() + sub1.itemS() + sub1.itemS() + + sub1.itemL(text="Sequencer:") + sub1.itemR(system, "prefetch_frames") + sub1.itemR(system, "memory_cache_limit") class USERPREF_PT_filepaths(bpy.types.Panel): __space_type__ = 'USER_PREFERENCES' @@ -328,7 +340,7 @@ class USERPREF_PT_filepaths(bpy.types.Panel): userpref = context.user_preferences paths = userpref.filepaths - split = layout.split() + split = layout.split(percentage=0.6) col = split.column() col.itemL(text="File Paths:") @@ -366,6 +378,8 @@ class USERPREF_PT_filepaths(bpy.types.Panel): sub2.itemR(paths, "use_relative_paths") sub2.itemR(paths, "compress_file") sub2.itemR(paths, "load_ui") + sub2.itemR(paths, "filter_file_extensions") + sub2.itemR(paths, "hide_dot_files_datablocks") sub2.itemS() sub2.itemS() sub2.itemL(text="Auto Save:") @@ -377,36 +391,6 @@ class USERPREF_PT_filepaths(bpy.types.Panel): sub3.enabled = paths.auto_save_temporary_files sub3.itemR(paths, "auto_save_time", text="Timer (mins)") -class USERPREF_PT_language(bpy.types.Panel): - __space_type__ = 'USER_PREFERENCES' - __label__ = "Language" - __show_header__ = False - - def poll(self, context): - userpref = context.user_preferences - return (userpref.active_section == 'LANGUAGE_COLORS') - - def draw(self, context): - layout = self.layout - - userpref = context.user_preferences - lan = userpref.language - - split = layout.split() - col = split.column() - - col.itemR(lan, "language") - col.itemL(text="Translate:") - col.itemR(lan, "translate_tooltips", text="Tooltips") - col.itemR(lan, "translate_buttons", text="Labels") - col.itemR(lan, "translate_toolbox", text="Toolbox") - col.itemS() - col.itemS() - col.itemR(lan, "use_textured_fonts") - - col = split.column() - - bpy.types.register(USERPREF_HT_header) bpy.types.register(USERPREF_MT_view) bpy.types.register(USERPREF_PT_tabs) @@ -414,5 +398,4 @@ bpy.types.register(USERPREF_PT_view) bpy.types.register(USERPREF_PT_edit) bpy.types.register(USERPREF_PT_system) bpy.types.register(USERPREF_PT_filepaths) -bpy.types.register(USERPREF_PT_language) diff --git a/source/blender/makesrna/intern/rna_userdef.c b/source/blender/makesrna/intern/rna_userdef.c index b38475469b0..fcc0d7f8a61 100644 --- a/source/blender/makesrna/intern/rna_userdef.c +++ b/source/blender/makesrna/intern/rna_userdef.c @@ -109,11 +109,6 @@ static PointerRNA rna_UserDef_edit_get(PointerRNA *ptr) return rna_pointer_inherit_refine(ptr, &RNA_UserPreferencesEdit, ptr->data); } -static PointerRNA rna_UserDef_language_get(PointerRNA *ptr) -{ - return rna_pointer_inherit_refine(ptr, &RNA_UserPreferencesLanguage, ptr->data); -} - static PointerRNA rna_UserDef_filepaths_get(PointerRNA *ptr) { return rna_pointer_inherit_refine(ptr, &RNA_UserPreferencesFilePaths, ptr->data); @@ -2120,12 +2115,84 @@ static void rna_def_userdef_system(BlenderRNA *brna) {USER_DRAW_OVERLAP, "OVERLAP", 0, "Overlap", "Redraw all overlapping regions, minimal memory usage but more redraws."}, {USER_DRAW_FULL, "FULL", 0, "Full", "Do a full redraw each time, slow, only use for reference or when all else fails."}, {0, NULL, 0, NULL, NULL}}; + + /* hardcoded here, could become dynamic somehow */ + static EnumPropertyItem language_items[] = { + {0, "ENGLISH", 0, "English", ""}, + {1, "JAPANESE", 0, "Japanese", ""}, + {2, "DUTCH", 0, "Dutch", ""}, + {3, "ITALIAN", 0, "Italian", ""}, + {4, "GERMAN", 0, "German", ""}, + {5, "FINNISH", 0, "Finnish", ""}, + {6, "SWEDISH", 0, "Swedish", ""}, + {7, "FRENCH", 0, "French", ""}, + {8, "SPANISH", 0, "Spanish", ""}, + {9, "CATALAN", 0, "Catalan", ""}, + {10, "CZECH", 0, "Czech", ""}, + {11, "BRAZILIAN_PORTUGUESE", 0, "Brazilian Portuguese", ""}, + {12, "SIMPLIFIED_CHINESE", 0, "Simplified Chinese", ""}, + {13, "RUSSIAN", 0, "Russian", ""}, + {14, "CROATIAN", 0, "Croatian", ""}, + {15, "SERBIAN", 0, "Serbian", ""}, + {16, "UKRAINIAN", 0, "Ukrainian", ""}, + {17, "POLISH", 0, "Polish", ""}, + {18, "ROMANIAN", 0, "Romanian", ""}, + {19, "ARABIC", 0, "Arabic", ""}, + {20, "BULGARIAN", 0, "Bulgarian", ""}, + {21, "GREEK", 0, "Greek", ""}, + {22, "KOREAN", 0, "Korean", ""}, + {0, NULL, 0, NULL, NULL}}; srna= RNA_def_struct(brna, "UserPreferencesSystem", NULL); RNA_def_struct_sdna(srna, "UserDef"); RNA_def_struct_nested(brna, srna, "UserPreferences"); RNA_def_struct_ui_text(srna, "System & OpenGL", "Graphics driver and operating system settings."); + /* Language */ + + prop= RNA_def_property(srna, "international_fonts", PROP_BOOLEAN, PROP_NONE); + RNA_def_property_boolean_sdna(prop, NULL, "transopts", USER_DOTRANSLATE); + RNA_def_property_ui_text(prop, "International Fonts", "Use international fonts."); + RNA_def_property_update(prop, 0, "rna_userdef_update"); + + prop= RNA_def_property(srna, "dpi", PROP_INT, PROP_NONE); + RNA_def_property_int_sdna(prop, NULL, "dpi"); + RNA_def_property_range(prop, 48, 128); + RNA_def_property_ui_text(prop, "DPI", "Font size and resolution for display."); + RNA_def_property_update(prop, 0, "rna_userdef_update"); + + prop= RNA_def_property(srna, "scrollback", PROP_INT, PROP_UNSIGNED); + RNA_def_property_int_sdna(prop, NULL, "scrollback"); + RNA_def_property_range(prop, 32, 32768); + RNA_def_property_ui_text(prop, "Scrollback", "Maximum number of lines to store for the console buffer."); + + /* Language Selection */ + + prop= RNA_def_property(srna, "language", PROP_ENUM, PROP_NONE); + RNA_def_property_enum_items(prop, language_items); + RNA_def_property_ui_text(prop, "Language", "Language use for translation."); + RNA_def_property_update(prop, 0, "rna_userdef_update"); + + prop= RNA_def_property(srna, "translate_tooltips", PROP_BOOLEAN, PROP_NONE); + RNA_def_property_boolean_sdna(prop, NULL, "transopts", USER_TR_TOOLTIPS); + RNA_def_property_ui_text(prop, "Translate Tooltips", "Translate Tooltips."); + RNA_def_property_update(prop, 0, "rna_userdef_update"); + + prop= RNA_def_property(srna, "translate_buttons", PROP_BOOLEAN, PROP_NONE); + RNA_def_property_boolean_sdna(prop, NULL, "transopts", USER_TR_BUTTONS); + RNA_def_property_ui_text(prop, "Translate Buttons", "Translate button labels."); + RNA_def_property_update(prop, 0, "rna_userdef_update"); + + prop= RNA_def_property(srna, "translate_toolbox", PROP_BOOLEAN, PROP_NONE); + RNA_def_property_boolean_sdna(prop, NULL, "transopts", USER_TR_MENUS); + RNA_def_property_ui_text(prop, "Translate Toolbox", "Translate toolbox menu."); + RNA_def_property_update(prop, 0, "rna_userdef_update"); + + prop= RNA_def_property(srna, "use_textured_fonts", PROP_BOOLEAN, PROP_NONE); + RNA_def_property_boolean_sdna(prop, NULL, "transopts", USER_USETEXTUREFONT); + RNA_def_property_ui_text(prop, "Textured Fonts", "Use textures for drawing international fonts."); + RNA_def_property_update(prop, 0, "rna_userdef_update"); + /* System & OpenGL */ prop= RNA_def_property(srna, "solid_lights", PROP_COLLECTION, PROP_NONE); @@ -2174,14 +2241,6 @@ static void rna_def_userdef_system(BlenderRNA *brna) RNA_def_property_boolean_negative_sdna(prop, NULL, "gameflags", USER_DISABLE_SOUND); RNA_def_property_ui_text(prop, "Game Sound", "Enables sounds to be played in games."); - prop= RNA_def_property(srna, "filter_file_extensions", PROP_BOOLEAN, PROP_NONE); - RNA_def_property_boolean_sdna(prop, NULL, "uiflag", USER_FILTERFILEEXTS); - RNA_def_property_ui_text(prop, "Filter File Extensions", "Display only files with extensions in the image select window."); - - prop= RNA_def_property(srna, "hide_dot_files_datablocks", PROP_BOOLEAN, PROP_NONE); - RNA_def_property_boolean_sdna(prop, NULL, "uiflag", USER_HIDE_DOT); - RNA_def_property_ui_text(prop, "Hide Dot Files/Datablocks", "Hide files/datablocks that start with a dot(.*)"); - prop= RNA_def_property(srna, "clip_alpha", PROP_FLOAT, PROP_NONE); RNA_def_property_float_sdna(prop, NULL, "glalphaclip"); RNA_def_property_range(prop, 0.0f, 1.0f); @@ -2261,7 +2320,15 @@ static void rna_def_userdef_filepaths(BlenderRNA *brna) RNA_def_struct_sdna(srna, "UserDef"); RNA_def_struct_nested(brna, srna, "UserPreferences"); RNA_def_struct_ui_text(srna, "File Paths", "Default paths for external files."); - + + prop= RNA_def_property(srna, "hide_dot_files_datablocks", PROP_BOOLEAN, PROP_NONE); + RNA_def_property_boolean_sdna(prop, NULL, "uiflag", USER_HIDE_DOT); + RNA_def_property_ui_text(prop, "Hide Dot Files/Datablocks", "Hide files/datablocks that start with a dot(.*)"); + + prop= RNA_def_property(srna, "filter_file_extensions", PROP_BOOLEAN, PROP_NONE); + RNA_def_property_boolean_sdna(prop, NULL, "uiflag", USER_FILTERFILEEXTS); + RNA_def_property_ui_text(prop, "Filter File Extensions", "Display only files with extensions in the image select window."); + prop= RNA_def_property(srna, "use_relative_paths", PROP_BOOLEAN, PROP_NONE); RNA_def_property_boolean_sdna(prop, NULL, "flag", USER_RELPATHS); RNA_def_property_ui_text(prop, "Relative Paths", "Default relative path option for the file selector."); @@ -2340,10 +2407,9 @@ void RNA_def_userdef(BlenderRNA *brna) static EnumPropertyItem user_pref_sections[] = { {0, "VIEW_CONTROLS", 0, "View", ""}, {1, "EDIT_METHODS", 0, "Editing", ""}, - {2, "LANGUAGE_COLORS", 0, "Language", ""}, + {2, "FILE_PATHS", 0, "File", ""}, {3, "SYSTEM_OPENGL", 0, "System", ""}, - {4, "FILE_PATHS", 0, "File", ""}, - {5, "THEMES", 0, "Themes", ""}, +// {4, "THEMES", 0, "Themes", ""}, // Leave this out until we figure out a way to manage themes in the prefs. {0, NULL, 0, NULL, NULL}}; rna_def_userdef_dothemes(brna); @@ -2381,12 +2447,6 @@ void RNA_def_userdef(BlenderRNA *brna) RNA_def_property_pointer_funcs(prop, "rna_UserDef_edit_get", NULL, NULL); RNA_def_property_ui_text(prop, "Edit Methods", "Settings for interacting with Blender data."); - prop= RNA_def_property(srna, "language", PROP_POINTER, PROP_NONE); - RNA_def_property_flag(prop, PROP_NEVER_NULL); - RNA_def_property_struct_type(prop, "UserPreferencesLanguage"); - RNA_def_property_pointer_funcs(prop, "rna_UserDef_language_get", NULL, NULL); - RNA_def_property_ui_text(prop, "Language & Font", "User interface translation settings."); - prop= RNA_def_property(srna, "filepaths", PROP_POINTER, PROP_NONE); RNA_def_property_flag(prop, PROP_NEVER_NULL); RNA_def_property_struct_type(prop, "UserPreferencesFilePaths"); @@ -2401,7 +2461,6 @@ void RNA_def_userdef(BlenderRNA *brna) rna_def_userdef_view(brna); rna_def_userdef_edit(brna); - rna_def_userdef_language(brna); rna_def_userdef_filepaths(brna); rna_def_userdef_system(brna);