Welcome to mirror list, hosted at ThFree Co, Russian Federation.

git.blender.org/blender.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to 'release/scripts/ui/space_userpref.py')
-rw-r--r--release/scripts/ui/space_userpref.py1351
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)
-