diff options
Diffstat (limited to 'release/scripts/ui/space_userpref.py')
-rw-r--r-- | release/scripts/ui/space_userpref.py | 1351 |
1 files changed, 697 insertions, 654 deletions
diff --git a/release/scripts/ui/space_userpref.py b/release/scripts/ui/space_userpref.py index 10e1831de0f..9fd35e9588e 100644 --- a/release/scripts/ui/space_userpref.py +++ b/release/scripts/ui/space_userpref.py @@ -1,549 +1,585 @@ - +# ##### BEGIN GPL LICENSE BLOCK ##### +# +# This program is free software; you can redistribute it and/or +# modify it under the terms of the GNU General Public License +# as published by the Free Software Foundation; either version 2 +# of the License, or (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program; if not, write to the Free Software Foundation, +# Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. +# +# ##### END GPL LICENSE BLOCK ##### + +# <pep8 compliant> import bpy + class USERPREF_HT_header(bpy.types.Header): - __space_type__ = 'USER_PREFERENCES' - - def draw(self, context): - layout = self.layout - layout.template_header(menus=False) - - userpref = context.user_preferences - - layout.operator_context = "EXEC_AREA" - layout.itemO("wm.save_homefile", text="Save As Default") - - if userpref.active_section == 'INPUT': - layout.operator_context = "INVOKE_DEFAULT" - layout.itemO("wm.keyconfig_export", "Export Key Configuration...") - + bl_space_type = 'USER_PREFERENCES' + + def draw(self, context): + layout = self.layout + layout.template_header(menus=False) + + userpref = context.user_preferences + + layout.operator_context = "EXEC_AREA" + layout.itemO("wm.save_homefile", text="Save As Default") + + if userpref.active_section == 'INPUT': + layout.operator_context = "INVOKE_DEFAULT" + layout.itemO("wm.keyconfig_export", "Export Key Configuration...") + + class USERPREF_MT_view(bpy.types.Menu): - __label__ = "View" + bl_label = "View" + + def draw(self, context): + layout = self.layout - def draw(self, context): - layout = self.layout class USERPREF_PT_tabs(bpy.types.Panel): - __space_type__ = 'USER_PREFERENCES' - __show_header__ = False + bl_label = "" + bl_space_type = 'USER_PREFERENCES' + bl_region_type = 'WINDOW' + bl_show_header = False + + def draw(self, context): + layout = self.layout + + userpref = context.user_preferences - def draw(self, context): - layout = self.layout - - userpref = context.user_preferences + layout.itemR(userpref, "active_section", expand=True) - layout.itemR(userpref, "active_section", expand=True) class USERPREF_PT_interface(bpy.types.Panel): - __space_type__ = 'USER_PREFERENCES' - __label__ = "Interface" - __show_header__ = False - - def poll(self, context): - userpref = context.user_preferences - return (userpref.active_section == 'INTERFACE') - - def draw(self, context): - layout = self.layout - - userpref = context.user_preferences - view = userpref.view - - split = layout.split() - - col = split.column() - sub = col.split(percentage=0.85) - - sub1 = sub.column() - sub1.itemL(text="Display:") - sub1.itemR(view, "tooltips") - sub1.itemR(view, "display_object_info", text="Object Info") - sub1.itemR(view, "use_large_cursors") - sub1.itemR(view, "show_view_name", text="View Name") - sub1.itemR(view, "show_playback_fps", text="Playback FPS") - sub1.itemR(view, "global_scene") - sub1.itemR(view, "pin_floating_panels") - sub1.itemR(view, "object_center_size") - sub1.itemS() - sub1.itemS() - sub1.itemS() - sub1.itemR(view, "show_mini_axis", text="Display Mini Axis") - sub2 = sub1.column() - sub2.enabled = view.show_mini_axis - sub2.itemR(view, "mini_axis_size", text="Size") - sub2.itemR(view, "mini_axis_brightness", text="Brightness") - - col = split.column() - sub = col.split(percentage=0.85) - - sub1 = sub.column() - sub1.itemL(text="View Manipulation:") - sub1.itemR(view, "auto_depth") - sub1.itemR(view, "global_pivot") - sub1.itemR(view, "zoom_to_mouse") - sub1.itemR(view, "rotate_around_selection") - sub1.itemS() - - - sub1.itemR(view, "auto_perspective") - sub1.itemR(view, "smooth_view") - sub1.itemR(view, "rotation_angle") - - col = split.column() - sub = col.split(percentage=0.85) - sub1 = sub.column() - + bl_space_type = 'USER_PREFERENCES' + bl_label = "Interface" + bl_region_type = 'WINDOW' + bl_show_header = False + + def poll(self, context): + userpref = context.user_preferences + return (userpref.active_section == 'INTERFACE') + + def draw(self, context): + layout = self.layout + + userpref = context.user_preferences + view = userpref.view + + split = layout.split() + + col = split.column() + sub = col.split(percentage=0.85) + + sub1 = sub.column() + sub1.itemL(text="Display:") + sub1.itemR(view, "tooltips") + sub1.itemR(view, "display_object_info", text="Object Info") + sub1.itemR(view, "use_large_cursors") + sub1.itemR(view, "show_view_name", text="View Name") + sub1.itemR(view, "show_playback_fps", text="Playback FPS") + sub1.itemR(view, "global_scene") + sub1.itemR(view, "pin_floating_panels") + sub1.itemR(view, "object_center_size") + sub1.itemS() + sub1.itemS() + sub1.itemS() + sub1.itemR(view, "show_mini_axis", text="Display Mini Axis") + sub2 = sub1.column() + sub2.enabled = view.show_mini_axis + sub2.itemR(view, "mini_axis_size", text="Size") + sub2.itemR(view, "mini_axis_brightness", text="Brightness") + + col = split.column() + sub = col.split(percentage=0.85) + + sub1 = sub.column() + sub1.itemL(text="View Manipulation:") + sub1.itemR(view, "auto_depth") + sub1.itemR(view, "global_pivot") + sub1.itemR(view, "zoom_to_mouse") + sub1.itemR(view, "rotate_around_selection") + sub1.itemS() + + + sub1.itemR(view, "auto_perspective") + sub1.itemR(view, "smooth_view") + sub1.itemR(view, "rotation_angle") + + col = split.column() + sub = col.split(percentage=0.85) + sub1 = sub.column() + #Toolbox doesn't exist yet # sub1.itemL(text="Toolbox:") # sub1.itemR(view, "use_column_layout") # sub1.itemL(text="Open Toolbox Delay:") # sub1.itemR(view, "open_left_mouse_delay", text="Hold LMB") # sub1.itemR(view, "open_right_mouse_delay", text="Hold RMB") - - #manipulator - sub1.itemR(view, "use_manipulator") - sub2 = sub1.column() - sub2.enabled = view.use_manipulator - sub2.itemR(view, "manipulator_size", text="Size") - sub2.itemR(view, "manipulator_handle_size", text="Handle Size") - sub2.itemR(view, "manipulator_hotspot", text="Hotspot") - - sub1.itemS() - sub1.itemS() - sub1.itemS() - - sub1.itemL(text="Menus:") - sub1.itemR(view, "open_mouse_over") - sub1.itemL(text="Menu Open Delay:") - sub1.itemR(view, "open_toplevel_delay", text="Top Level") - sub1.itemR(view, "open_sublevel_delay", text="Sub Level") + + #manipulator + sub1.itemR(view, "use_manipulator") + sub2 = sub1.column() + sub2.enabled = view.use_manipulator + sub2.itemR(view, "manipulator_size", text="Size") + sub2.itemR(view, "manipulator_handle_size", text="Handle Size") + sub2.itemR(view, "manipulator_hotspot", text="Hotspot") + + sub1.itemS() + sub1.itemS() + sub1.itemS() + + sub1.itemL(text="Menus:") + sub1.itemR(view, "open_mouse_over") + sub1.itemL(text="Menu Open Delay:") + sub1.itemR(view, "open_toplevel_delay", text="Top Level") + sub1.itemR(view, "open_sublevel_delay", text="Sub Level") + class USERPREF_PT_edit(bpy.types.Panel): - __space_type__ = 'USER_PREFERENCES' - __label__ = "Edit" - __show_header__ = False - - def poll(self, context): - userpref = context.user_preferences - return (userpref.active_section == 'EDITING') - - def draw(self, context): - layout = self.layout - - userpref = context.user_preferences - edit = userpref.edit - - split = layout.split() - - col = split.column() - sub = col.split(percentage=0.85) - - sub1 = sub.column() - sub1.itemL(text="Link Materials To:") - sub1.row().itemR(edit, "material_link", expand=True) - sub1.itemS() - sub1.itemS() - sub1.itemS() - sub1.itemL(text="New Objects:") - sub1.itemR(edit, "enter_edit_mode") - sub1.itemL(text="Align To:") - sub1.row().itemR(edit, "object_align", expand=True) - 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") - - col = split.column() - sub = col.split(percentage=0.85) - - sub1 = sub.column() - sub1.itemL(text="Snap:") - sub1.itemR(edit, "snap_translate", text="Translate") - sub1.itemR(edit, "snap_rotate", text="Rotate") - sub1.itemR(edit, "snap_scale", text="Scale") - sub1.itemS() - sub1.itemS() - sub1.itemS() - sub1.itemL(text="Grease Pencil:") - sub1.itemR(edit, "grease_pencil_manhattan_distance", text="Manhattan Distance") - sub1.itemR(edit, "grease_pencil_euclidean_distance", text="Euclidean Distance") - # sub1.itemR(edit, "grease_pencil_simplify_stroke", text="Simplify Stroke") - sub1.itemR(edit, "grease_pencil_eraser_radius", text="Eraser Radius") - sub1.itemR(edit, "grease_pencil_smooth_stroke", text="Smooth Stroke") - - col = split.column() - sub = col.split(percentage=0.85) - - sub1 = sub.column() - sub1.itemL(text="Keyframing:") - sub1.itemR(edit, "use_visual_keying") - sub1.itemR(edit, "keyframe_insert_needed", text="Only Insert Needed") - sub1.itemS() - sub1.itemL(text="New F-Curve Defaults:") - sub1.itemR(edit, "new_interpolation_type", text="Interpolation") - sub1.itemS() - sub1.itemR(edit, "auto_keying_enable", text="Auto Keyframing:") - sub2 = sub1.column() - sub2.active = edit.auto_keying_enable - sub2.itemR(edit, "auto_keyframe_insert_keyingset", text="Only Insert for Keying Set") - sub2.itemR(edit, "auto_keyframe_insert_available", text="Only Insert Available") - - sub1.itemS() - sub1.itemS() - sub1.itemS() - - sub1.itemL(text="Transform:") - sub1.itemR(edit, "drag_immediately") - - sub1.itemS() - sub1.itemS() - sub1.itemS() - - col = split.column() - sub = col.split(percentage=0.85) - - sub1 = sub.column() - 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") - sub1.itemR(edit, "duplicate_text", text="Text") - sub1.itemR(edit, "duplicate_metaball", text="Metaball") - sub1.itemR(edit, "duplicate_armature", text="Armature") - sub1.itemR(edit, "duplicate_lamp", text="Lamp") - sub1.itemR(edit, "duplicate_material", text="Material") - sub1.itemR(edit, "duplicate_texture", text="Texture") - sub1.itemR(edit, "duplicate_ipo", text="F-Curve") - sub1.itemR(edit, "duplicate_action", text="Action") - sub1.itemR(edit, "duplicate_particle", text="Particle") - + bl_space_type = 'USER_PREFERENCES' + bl_label = "Edit" + bl_region_type = 'WINDOW' + bl_show_header = False + + def poll(self, context): + userpref = context.user_preferences + return (userpref.active_section == 'EDITING') + + def draw(self, context): + layout = self.layout + + userpref = context.user_preferences + edit = userpref.edit + + split = layout.split() + + col = split.column() + sub = col.split(percentage=0.85) + + sub1 = sub.column() + sub1.itemL(text="Link Materials To:") + sub1.row().itemR(edit, "material_link", expand=True) + sub1.itemS() + sub1.itemS() + sub1.itemS() + sub1.itemL(text="New Objects:") + sub1.itemR(edit, "enter_edit_mode") + sub1.itemL(text="Align To:") + sub1.row().itemR(edit, "object_align", expand=True) + 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") + + col = split.column() + sub = col.split(percentage=0.85) + + sub1 = sub.column() + sub1.itemL(text="Snap:") + sub1.itemR(edit, "snap_translate", text="Translate") + sub1.itemR(edit, "snap_rotate", text="Rotate") + sub1.itemR(edit, "snap_scale", text="Scale") + sub1.itemS() + sub1.itemS() + sub1.itemS() + sub1.itemL(text="Grease Pencil:") + sub1.itemR(edit, "grease_pencil_manhattan_distance", text="Manhattan Distance") + sub1.itemR(edit, "grease_pencil_euclidean_distance", text="Euclidean Distance") + # sub1.itemR(edit, "grease_pencil_simplify_stroke", text="Simplify Stroke") + sub1.itemR(edit, "grease_pencil_eraser_radius", text="Eraser Radius") + sub1.itemR(edit, "grease_pencil_smooth_stroke", text="Smooth Stroke") + + col = split.column() + sub = col.split(percentage=0.85) + + sub1 = sub.column() + sub1.itemL(text="Keyframing:") + sub1.itemR(edit, "use_visual_keying") + sub1.itemR(edit, "keyframe_insert_needed", text="Only Insert Needed") + sub1.itemS() + sub1.itemL(text="New F-Curve Defaults:") + sub1.itemR(edit, "new_interpolation_type", text="Interpolation") + sub1.itemS() + sub1.itemR(edit, "auto_keying_enable", text="Auto Keyframing:") + sub2 = sub1.column() + sub2.active = edit.auto_keying_enable + sub2.itemR(edit, "auto_keyframe_insert_keyingset", text="Only Insert for Keying Set") + sub2.itemR(edit, "auto_keyframe_insert_available", text="Only Insert Available") + + sub1.itemS() + sub1.itemS() + sub1.itemS() + + sub1.itemL(text="Transform:") + sub1.itemR(edit, "drag_immediately") + + sub1.itemS() + sub1.itemS() + sub1.itemS() + + col = split.column() + sub = col.split(percentage=0.85) + + sub1 = sub.column() + 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") + sub1.itemR(edit, "duplicate_text", text="Text") + sub1.itemR(edit, "duplicate_metaball", text="Metaball") + sub1.itemR(edit, "duplicate_armature", text="Armature") + sub1.itemR(edit, "duplicate_lamp", text="Lamp") + sub1.itemR(edit, "duplicate_material", text="Material") + sub1.itemR(edit, "duplicate_texture", text="Texture") + sub1.itemR(edit, "duplicate_ipo", text="F-Curve") + sub1.itemR(edit, "duplicate_action", text="Action") + sub1.itemR(edit, "duplicate_particle", text="Particle") + + class USERPREF_PT_system(bpy.types.Panel): - __space_type__ = 'USER_PREFERENCES' - __label__ = "System" - __show_header__ = False - - def poll(self, context): - userpref = context.user_preferences - return (userpref.active_section == 'SYSTEM') - - def draw(self, context): - layout = self.layout - - userpref = context.user_preferences - system = userpref.system - - split = layout.split() - - col = split.column() - sub = col.split(percentage=0.9) - - sub1 = sub.column() - sub1.itemL(text="General:") - sub1.itemR(system, "dpi") - sub1.itemR(system, "frame_server_port") - 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.row().itemR(system, "audio_device", expand=True) - sub2 = sub1.column() - sub2.active = system.audio_device != 'NONE' - sub2.itemR(system, "enable_all_codecs") - sub2.itemR(system, "game_sound") - 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.9) - - sub1 = sub.column() - - sub1.itemL(text="OpenGL:") - sub1.itemR(system, "clip_alpha", slider=True) - sub1.itemR(system, "use_mipmaps") - sub1.itemR(system, "use_vbos") - sub1.itemL(text="Window Draw Method:") - sub1.row().itemR(system, "window_draw_method", expand=True) - 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.itemS() - sub1.itemS() - sub1.itemS() - - sub1.itemL(text="Sequencer:") - sub1.itemR(system, "prefetch_frames") - sub1.itemR(system, "memory_cache_limit") - + bl_space_type = 'USER_PREFERENCES' + bl_label = "System" + bl_region_type = 'WINDOW' + bl_show_header = False + + def poll(self, context): + userpref = context.user_preferences + return (userpref.active_section == 'SYSTEM') + + def draw(self, context): + layout = self.layout + + userpref = context.user_preferences + system = userpref.system + + split = layout.split() + + col = split.column() + sub = col.split(percentage=0.9) + + sub1 = sub.column() + sub1.itemL(text="General:") + sub1.itemR(system, "dpi") + sub1.itemR(system, "frame_server_port") + 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.row().itemR(system, "audio_device", expand=True) + sub2 = sub1.column() + sub2.active = system.audio_device != 'NONE' + sub2.itemR(system, "enable_all_codecs") + sub2.itemR(system, "game_sound") + 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.9) + + sub1 = sub.column() + + sub1.itemL(text="OpenGL:") + sub1.itemR(system, "clip_alpha", slider=True) + sub1.itemR(system, "use_mipmaps") + sub1.itemR(system, "use_vbos") + sub1.itemL(text="Window Draw Method:") + sub1.row().itemR(system, "window_draw_method", expand=True) + 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.itemS() + sub1.itemS() + sub1.itemS() + + sub1.itemL(text="Sequencer:") + sub1.itemR(system, "prefetch_frames") + sub1.itemR(system, "memory_cache_limit") + + class USERPREF_PT_file(bpy.types.Panel): - __space_type__ = 'USER_PREFERENCES' - __label__ = "Files" - __show_header__ = False - - def poll(self, context): - userpref = context.user_preferences - return (userpref.active_section == 'FILES') - - def draw(self, context): - layout = self.layout - - userpref = context.user_preferences - paths = userpref.filepaths - - split = layout.split(percentage=0.6) - - col = split.column() - col.itemL(text="File Paths:") - sub = col.split(percentage=0.3) - - sub.itemL(text="Fonts:") - sub.itemR(paths, "fonts_directory", text="") - sub = col.split(percentage=0.3) - sub.itemL(text="Textures:") - sub.itemR(paths, "textures_directory", text="") - sub = col.split(percentage=0.3) - sub.itemL(text="Texture Plugins:") - sub.itemR(paths, "texture_plugin_directory", text="") - sub = col.split(percentage=0.3) - sub.itemL(text="Sequence Plugins:") - sub.itemR(paths, "sequence_plugin_directory", text="") - sub = col.split(percentage=0.3) - sub.itemL(text="Render Output:") - sub.itemR(paths, "render_output_directory", text="") - sub = col.split(percentage=0.3) - sub.itemL(text="Scripts:") - sub.itemR(paths, "python_scripts_directory", text="") - sub = col.split(percentage=0.3) - sub.itemL(text="Sounds:") - sub.itemR(paths, "sounds_directory", text="") - sub = col.split(percentage=0.3) - sub.itemL(text="Temp:") - sub.itemR(paths, "temporary_directory", text="") - - col = split.column() - sub = col.split(percentage=0.2) - sub1 = sub.column() - sub2 = sub.column() - sub2.itemL(text="Save & Load:") - 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:") - sub2.itemR(paths, "save_version") - sub2.itemR(paths, "recent_files") - sub2.itemR(paths, "save_preview_images") - sub2.itemR(paths, "auto_save_temporary_files") - sub3 = sub2.column() - sub3.enabled = paths.auto_save_temporary_files - sub3.itemR(paths, "auto_save_time", text="Timer (mins)") + bl_space_type = 'USER_PREFERENCES' + bl_label = "Files" + bl_region_type = 'WINDOW' + bl_show_header = False + + def poll(self, context): + userpref = context.user_preferences + return (userpref.active_section == 'FILES') + + def draw(self, context): + layout = self.layout + + userpref = context.user_preferences + paths = userpref.filepaths + + split = layout.split(percentage=0.6) + + col = split.column() + col.itemL(text="File Paths:") + sub = col.split(percentage=0.3) + + sub.itemL(text="Fonts:") + sub.itemR(paths, "fonts_directory", text="") + sub = col.split(percentage=0.3) + sub.itemL(text="Textures:") + sub.itemR(paths, "textures_directory", text="") + sub = col.split(percentage=0.3) + sub.itemL(text="Texture Plugins:") + sub.itemR(paths, "texture_plugin_directory", text="") + sub = col.split(percentage=0.3) + sub.itemL(text="Sequence Plugins:") + sub.itemR(paths, "sequence_plugin_directory", text="") + sub = col.split(percentage=0.3) + sub.itemL(text="Render Output:") + sub.itemR(paths, "render_output_directory", text="") + sub = col.split(percentage=0.3) + sub.itemL(text="Scripts:") + sub.itemR(paths, "python_scripts_directory", text="") + sub = col.split(percentage=0.3) + sub.itemL(text="Sounds:") + sub.itemR(paths, "sounds_directory", text="") + sub = col.split(percentage=0.3) + sub.itemL(text="Temp:") + sub.itemR(paths, "temporary_directory", text="") + + col = split.column() + sub = col.split(percentage=0.2) + sub1 = sub.column() + sub2 = sub.column() + sub2.itemL(text="Save & Load:") + 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:") + sub2.itemR(paths, "save_version") + sub2.itemR(paths, "recent_files") + sub2.itemR(paths, "save_preview_images") + sub2.itemR(paths, "auto_save_temporary_files") + sub3 = sub2.column() + sub3.enabled = paths.auto_save_temporary_files + sub3.itemR(paths, "auto_save_time", text="Timer (mins)") + class USERPREF_PT_input(bpy.types.Panel): - __space_type__ = 'USER_PREFERENCES' - __label__ = "Input" - __show_header__ = False - - def poll(self, context): - userpref = context.user_preferences - return (userpref.active_section == 'INPUT') - - def draw(self, context): - layout = self.layout - - userpref = context.user_preferences - wm = context.manager - #input = userpref.input - input = userpref - inputs = userpref.inputs - - split = layout.split(percentage=0.25) - - # General settings - row = split.row() - col = row.column() - - sub = col.column() - sub.itemL(text="Configuration:") - sub.item_pointerR(wm, "active_keyconfig", wm, "keyconfigs", text="") - - col.itemS() - - sub = col.column() - sub.itemL(text="Mouse:") - sub1 = sub.column() - sub1.enabled = (inputs.select_mouse == 'RIGHT') - sub1.itemR(inputs, "emulate_3_button_mouse") - sub.itemR(inputs, "continuous_mouse") - - sub.itemL(text="Select With:") - sub.row().itemR(inputs, "select_mouse", expand=True) - sub.itemL(text="Middle Mouse:") - sub.row().itemR(inputs, "middle_mouse", expand=True) - - sub.itemS() - sub.itemS() - sub.itemS() - - sub.itemL(text="Orbit Style:") - sub.row().itemR(inputs, "view_rotation", expand=True) - - sub.itemL(text="Zoom Style:") - sub.row().itemR(inputs, "viewport_zoom_style", expand=True) - - #sub.itemR(inputs, "use_middle_mouse_paste") - - #col.itemS() - - #sub = col.column() - #sub.itemL(text="Mouse Wheel:") - #sub.itemR(view, "wheel_invert_zoom", text="Invert Zoom") - #sub.itemR(view, "wheel_scroll_lines", text="Scroll Lines") - - col.itemS() - - sub = col.column() - sub.itemL(text="NDOF Device:") - sub.itemR(inputs, "ndof_pan_speed", text="Pan Speed") - sub.itemR(inputs, "ndof_rotate_speed", text="Orbit Speed") - - row.itemS() - - # Keymap Settings - col = split.column() - - kc = wm.active_keyconfig - defkc = wm.default_keyconfig - km = wm.active_keymap - - subsplit = col.split() - subsplit.item_pointerR(wm, "active_keymap", defkc, "keymaps", text="Map:") - if km.user_defined: - row = subsplit.row() - row.itemO("WM_OT_keymap_restore", text="Restore") - row.item_booleanO("WM_OT_keymap_restore", "all", True, text="Restore All") - else: - row = subsplit.row() - row.itemO("WM_OT_keymap_edit", text="Edit") - row.itemL() - - col.itemS() - - for kmi in km.items: - subcol = col.column() - subcol.set_context_pointer("keyitem", kmi) - - row = subcol.row() - - if kmi.expanded: - row.itemR(kmi, "expanded", text="", icon="ICON_TRIA_RIGHT") - else: - row.itemR(kmi, "expanded", text="", icon="ICON_TRIA_RIGHT") - - itemrow = row.row() - itemrow.enabled = km.user_defined - itemrow.itemR(kmi, "active", text="", icon="ICON_CHECKBOX_DEHLT") - - itemcol = itemrow.column() - itemcol.active = kmi.active - row = itemcol.row() - row.itemR(kmi, "idname", text="") - - sub = row.row() - sub.scale_x = 0.6 - sub.itemR(kmi, "map_type", text="") - - sub = row.row(align=True) - if kmi.map_type == 'KEYBOARD': - sub.itemR(kmi, "type", text="", full_event=True) - elif kmi.map_type == 'MOUSE': - sub.itemR(kmi, "type", text="", full_event=True) - elif kmi.map_type == 'TWEAK': - sub.scale_x = 0.5 - sub.itemR(kmi, "type", text="") - sub.itemR(kmi, "value", text="") - elif kmi.map_type == 'TIMER': - sub.itemR(kmi, "type", text="") - else: - sub.itemL() - - if kmi.expanded: - if kmi.map_type not in ('TEXTINPUT', 'TIMER'): - sub = itemcol.row(align=True) - - if kmi.map_type == 'KEYBOARD': - sub.itemR(kmi, "type", text="", event=True) - sub.itemR(kmi, "value", text="") - elif kmi.map_type == 'MOUSE': - sub.itemR(kmi, "type", text="") - sub.itemR(kmi, "value", text="") - else: - sub.itemL() - sub.itemL() - - subrow = sub.row() - subrow.scale_x = 0.75 - subrow.itemR(kmi, "shift") - subrow.itemR(kmi, "ctrl") - subrow.itemR(kmi, "alt") - subrow.itemR(kmi, "oskey", text="Cmd") - sub.itemR(kmi, "key_modifier", text="", event=True) - - flow = itemcol.column_flow(columns=2) - props = kmi.properties - - if props != None: - for pname in dir(props): - if not props.is_property_hidden(pname): - flow.itemR(props, pname) - - itemcol.itemS() - - itemrow.itemO("wm.keyitem_remove", text="", icon="ICON_ZOOMOUT") - - itemrow = col.row() - itemrow.itemL() - itemrow.itemO("wm.keyitem_add", text="", icon="ICON_ZOOMIN") - itemrow.enabled = km.user_defined + bl_space_type = 'USER_PREFERENCES' + bl_label = "Input" + bl_region_type = 'WINDOW' + bl_show_header = False + + def poll(self, context): + userpref = context.user_preferences + return (userpref.active_section == 'INPUT') + + def draw(self, context): + layout = self.layout + + userpref = context.user_preferences + wm = context.manager + #input = userpref.input + input = userpref + inputs = userpref.inputs + + split = layout.split(percentage=0.25) + + # General settings + row = split.row() + col = row.column() + + sub = col.column() + sub.itemL(text="Configuration:") + sub.item_pointerR(wm, "active_keyconfig", wm, "keyconfigs", text="") + + col.itemS() + + sub = col.column() + sub.itemL(text="Mouse:") + sub1 = sub.column() + sub1.enabled = (inputs.select_mouse == 'RIGHT') + sub1.itemR(inputs, "emulate_3_button_mouse") + sub.itemR(inputs, "continuous_mouse") + + sub.itemL(text="Select With:") + sub.row().itemR(inputs, "select_mouse", expand=True) + sub.itemL(text="Middle Mouse:") + sub.row().itemR(inputs, "middle_mouse", expand=True) + + sub.itemS() + sub.itemS() + sub.itemS() + + sub.itemL(text="Orbit Style:") + sub.row().itemR(inputs, "view_rotation", expand=True) + + sub.itemL(text="Zoom Style:") + sub.row().itemR(inputs, "viewport_zoom_style", expand=True) + + #sub.itemR(inputs, "use_middle_mouse_paste") + + #col.itemS() + + #sub = col.column() + #sub.itemL(text="Mouse Wheel:") + #sub.itemR(view, "wheel_invert_zoom", text="Invert Zoom") + #sub.itemR(view, "wheel_scroll_lines", text="Scroll Lines") + + col.itemS() + + sub = col.column() + sub.itemL(text="NDOF Device:") + sub.itemR(inputs, "ndof_pan_speed", text="Pan Speed") + sub.itemR(inputs, "ndof_rotate_speed", text="Orbit Speed") + + row.itemS() + + # Keymap Settings + col = split.column() + + kc = wm.active_keyconfig + defkc = wm.default_keyconfig + km = wm.active_keymap + + subsplit = col.split() + subsplit.item_pointerR(wm, "active_keymap", defkc, "keymaps", text="Map:") + if km.user_defined: + row = subsplit.row() + row.itemO("WM_OT_keymap_restore", text="Restore") + row.item_booleanO("WM_OT_keymap_restore", "all", True, text="Restore All") + else: + row = subsplit.row() + row.itemO("WM_OT_keymap_edit", text="Edit") + row.itemL() + + col.itemS() + + for kmi in km.items: + subcol = col.column() + subcol.set_context_pointer("keyitem", kmi) + + row = subcol.row() + + if kmi.expanded: + row.itemR(kmi, "expanded", text="", icon="ICON_TRIA_DOWN") + else: + row.itemR(kmi, "expanded", text="", icon="ICON_TRIA_RIGHT") + + itemrow = row.row() + itemrow.enabled = km.user_defined + if kmi.active: + itemrow.itemR(kmi, "active", text="", icon="ICON_CHECKBOX_HLT") + else: + itemrow.itemR(kmi, "active", text="", icon="ICON_CHECKBOX_DEHLT") + + itemcol = itemrow.column() + itemcol.active = kmi.active + row = itemcol.row() + row.itemR(kmi, "idname", text="") + + sub = row.row() + sub.scale_x = 0.6 + sub.itemR(kmi, "map_type", text="") + + sub = row.row(align=True) + if kmi.map_type == 'KEYBOARD': + sub.itemR(kmi, "type", text="", full_event=True) + elif kmi.map_type == 'MOUSE': + sub.itemR(kmi, "type", text="", full_event=True) + elif kmi.map_type == 'TWEAK': + sub.scale_x = 0.5 + sub.itemR(kmi, "type", text="") + sub.itemR(kmi, "value", text="") + elif kmi.map_type == 'TIMER': + sub.itemR(kmi, "type", text="") + else: + sub.itemL() + + if kmi.expanded: + if kmi.map_type not in ('TEXTINPUT', 'TIMER'): + sub = itemcol.row(align=True) + + if kmi.map_type == 'KEYBOARD': + sub.itemR(kmi, "type", text="", event=True) + sub.itemR(kmi, "value", text="") + elif kmi.map_type == 'MOUSE': + sub.itemR(kmi, "type", text="") + sub.itemR(kmi, "value", text="") + else: + sub.itemL() + sub.itemL() + + subrow = sub.row() + subrow.scale_x = 0.75 + subrow.itemR(kmi, "shift") + subrow.itemR(kmi, "ctrl") + subrow.itemR(kmi, "alt") + subrow.itemR(kmi, "oskey", text="Cmd") + sub.itemR(kmi, "key_modifier", text="", event=True) + + flow = itemcol.column_flow(columns=2) + props = kmi.properties + + if props != None: + for pname in dir(props): + if not props.is_property_hidden(pname): + flow.itemR(props, pname) + + itemcol.itemS() + + itemrow.itemO("wm.keyitem_remove", text="", icon="ICON_ZOOMOUT") + + itemrow = col.row() + itemrow.itemL() + itemrow.itemO("wm.keyitem_add", text="", icon="ICON_ZOOMIN") + itemrow.enabled = km.user_defined bpy.types.register(USERPREF_HT_header) bpy.types.register(USERPREF_MT_view) @@ -554,149 +590,156 @@ bpy.types.register(USERPREF_PT_system) bpy.types.register(USERPREF_PT_file) bpy.types.register(USERPREF_PT_input) +from bpy.props import * + + class WM_OT_keyconfig_export(bpy.types.Operator): - "Export key configuration to a python script." - __idname__ = "wm.keyconfig_export" - __label__ = "Export Key Configuration..." - __props__ = [ - bpy.props.StringProperty(attr="path", name="File Path", description="File path to write file to.")] - - def _string_value(self, value): - result = "" - if isinstance(value, str): - if value != "": - result = "\'%s\'" % value - elif isinstance(value, bool): - if value: - result = "True" - else: - result = "False" - elif isinstance(value, float): - result = "%.10f" % value - elif isinstance(value, int): - result = "%d" % value - elif getattr(value, '__len__', False): - if len(value): - result = "[" - for i in range(0, len(value)): - result += self._string_value(value[i]) - if i != len(value)-1: - result += ", " - result += "]" - else: - print("Export key configuration: can't write ", value) - - return result - - def execute(self, context): - if not self.path: - raise Exception("File path not set.") - - f = open(self.path, "w") - if not f: - raise Exception("Could not open file.") - - wm = context.manager - kc = wm.active_keyconfig - - f.write('# Configuration %s\n' % kc.name) - - f.write("wm = bpy.data.windowmanagers[0]\n"); - f.write("kc = wm.add_keyconfig(\'%s\')\n\n" % kc.name) - - for km in kc.keymaps: - f.write("# Map %s\n" % km.name) - f.write("km = kc.add_keymap(\'%s\', space_type=\'%s\', region_type=\'%s\')\n\n" % (km.name, km.space_type, km.region_type)) - for kmi in km.items: - f.write("kmi = km.add_item(\'%s\', \'%s\', \'%s\'" % (kmi.idname, kmi.type, kmi.value)) - if kmi.shift: - f.write(", shift=True") - if kmi.ctrl: - f.write(", ctrl=True") - if kmi.alt: - f.write(", alt=True") - if kmi.oskey: - f.write(", oskey=True") - if kmi.key_modifier and kmi.key_modifier != 'NONE': - f.write(", key_modifier=\'%s\'" % kmi.key_modifier) - f.write(")\n") - - props = kmi.properties - - if props != None: - for pname in dir(props): - if props.is_property_set(pname) and not props.is_property_hidden(pname): - value = eval("props.%s" % pname) - value = self._string_value(value) - if value != "": - f.write("kmi.properties.%s = %s\n" % (pname, value)) - - f.write("\n") - - f.close() - - return ('FINISHED',) - - def invoke(self, context, event): - wm = context.manager - wm.add_fileselect(self.__operator__) - return ('RUNNING_MODAL',) + "Export key configuration to a python script." + bl_idname = "wm.keyconfig_export" + bl_label = "Export Key Configuration..." + + path = bpy.props.StringProperty(name="File Path", description="File path to write file to.") + + def _string_value(self, value): + result = "" + if isinstance(value, str): + if value != "": + result = "\'%s\'" % value + elif isinstance(value, bool): + if value: + result = "True" + else: + result = "False" + elif isinstance(value, float): + result = "%.10f" % value + elif isinstance(value, int): + result = "%d" % value + elif getattr(value, '__len__', False): + if len(value): + result = "[" + for i in range(0, len(value)): + result += self._string_value(value[i]) + if i != len(value)-1: + result += ", " + result += "]" + else: + print("Export key configuration: can't write ", value) + + return result + + def execute(self, context): + if not self.path: + raise Exception("File path not set.") + + f = open(self.path, "w") + if not f: + raise Exception("Could not open file.") + + wm = context.manager + kc = wm.active_keyconfig + + f.write('# Configuration %s\n' % kc.name) + + f.write("wm = bpy.data.windowmanagers[0]\n") + f.write("kc = wm.add_keyconfig(\'%s\')\n\n" % kc.name) + + for km in kc.keymaps: + f.write("# Map %s\n" % km.name) + f.write("km = kc.add_keymap(\'%s\', space_type=\'%s\', region_type=\'%s\')\n\n" % (km.name, km.space_type, km.region_type)) + for kmi in km.items: + f.write("kmi = km.add_item(\'%s\', \'%s\', \'%s\'" % (kmi.idname, kmi.type, kmi.value)) + if kmi.shift: + f.write(", shift=True") + if kmi.ctrl: + f.write(", ctrl=True") + if kmi.alt: + f.write(", alt=True") + if kmi.oskey: + f.write(", oskey=True") + if kmi.key_modifier and kmi.key_modifier != 'NONE': + f.write(", key_modifier=\'%s\'" % kmi.key_modifier) + f.write(")\n") + + props = kmi.properties + + if props != None: + for pname in dir(props): + if props.is_property_set(pname) and not props.is_property_hidden(pname): + value = eval("props.%s" % pname) + value = self._string_value(value) + if value != "": + f.write("kmi.properties.%s = %s\n" % (pname, value)) + + f.write("\n") + + f.close() + + return ('FINISHED',) + + def invoke(self, context, event): + wm = context.manager + wm.add_fileselect(self) + return ('RUNNING_MODAL',) + class WM_OT_keymap_edit(bpy.types.Operator): - "Edit key map." - __idname__ = "wm.keymap_edit" - __label__ = "Edit Key Map" + "Edit key map." + bl_idname = "wm.keymap_edit" + bl_label = "Edit Key Map" + + def execute(self, context): + wm = context.manager + km = wm.active_keymap + km.copy_to_user() + return ('FINISHED',) - def execute(self, context): - wm = context.manager - km = wm.active_keymap - km.copy_to_user() - return ('FINISHED',) class WM_OT_keymap_restore(bpy.types.Operator): - "Restore key map" - __idname__ = "wm.keymap_restore" - __label__ = "Restore Key Map" - __props__ = [bpy.props.BoolProperty(attr="all", name="All Keymaps", description="Restore all keymaps to default.")] - - def execute(self, context): - wm = context.manager - - if self.all: - for km in wm.default_keyconfig.keymaps: - km.restore_to_default() - else: - km = wm.active_keymap - km.restore_to_default() - - return ('FINISHED',) - + "Restore key map" + bl_idname = "wm.keymap_restore" + bl_label = "Restore Key Map" + + all = BoolProperty(attr="all", name="All Keymaps", description="Restore all keymaps to default.") + + def execute(self, context): + wm = context.manager + + if self.all: + for km in wm.default_keyconfig.keymaps: + km.restore_to_default() + else: + km = wm.active_keymap + km.restore_to_default() + + return ('FINISHED',) + + class WM_OT_keyitem_add(bpy.types.Operator): - "Add key map item." - __idname__ = "wm.keyitem_add" - __label__ = "Add Key Map Item" - - def execute(self, context): - wm = context.manager - km = wm.active_keymap - kmi = km.add_item("", "A", "PRESS") - return ('FINISHED',) - + "Add key map item." + bl_idname = "wm.keyitem_add" + bl_label = "Add Key Map Item" + + def execute(self, context): + wm = context.manager + km = wm.active_keymap + kmi = km.add_item("", "A", "PRESS") + return ('FINISHED',) + + class WM_OT_keyitem_remove(bpy.types.Operator): - "Remove key map item." - __idname__ = "wm.keyitem_remove" - __label__ = "Remove Key Map Item" + "Remove key map item." + bl_idname = "wm.keyitem_remove" + bl_label = "Remove Key Map Item" - def execute(self, context): - wm = context.manager - kmi = context.keyitem - km = wm.active_keymap - km.remove_item(kmi) - return ('FINISHED',) + def execute(self, context): + wm = context.manager + kmi = context.keyitem + km = wm.active_keymap + km.remove_item(kmi) + return ('FINISHED',) bpy.ops.add(WM_OT_keyconfig_export) bpy.ops.add(WM_OT_keymap_edit) bpy.ops.add(WM_OT_keymap_restore) bpy.ops.add(WM_OT_keyitem_add) bpy.ops.add(WM_OT_keyitem_remove) - |