diff options
-rw-r--r-- | release/scripts/modules/rna_keymap_ui.py | 49 | ||||
-rw-r--r-- | release/scripts/presets/keyconfig/blender.py | 5 | ||||
-rw-r--r-- | release/scripts/presets/keyconfig/blender_27x.py | 5 | ||||
-rw-r--r-- | release/scripts/startup/bl_ui/space_userpref.py | 20 | ||||
-rw-r--r-- | source/blender/makesdna/DNA_userdef_types.h | 10 | ||||
-rw-r--r-- | source/blender/makesrna/intern/rna_userdef.c | 4 |
6 files changed, 60 insertions, 33 deletions
diff --git a/release/scripts/modules/rna_keymap_ui.py b/release/scripts/modules/rna_keymap_ui.py index 752db7fd5ac..d655e9ff009 100644 --- a/release/scripts/modules/rna_keymap_ui.py +++ b/release/scripts/modules/rna_keymap_ui.py @@ -364,19 +364,18 @@ def draw_keymaps(context, layout): from bpy_extras import keyconfig_utils wm = context.window_manager - kc = wm.keyconfigs.user + kc_user = wm.keyconfigs.user + kc_active = wm.keyconfigs.active spref = context.space_data - col = layout.column() - sub = col.column() - - subsplit = sub.split() + subsplit = layout.split() subcol = subsplit.column() - row = subcol.row(align=True) + col = subcol.column() + row = col.row(align=True) # row.prop_search(wm.keyconfigs, "active", wm, "keyconfigs", text="Key Config") - text = bpy.path.display_name(wm.keyconfigs.active.name) + text = bpy.path.display_name(kc_active.name) if not text: text = "Blender (default)" row.menu("USERPREF_MT_keyconfigs", text=text) @@ -389,15 +388,15 @@ def draw_keymaps(context, layout): rowsub = row.split(factor=0.33, align=True) # postpone drawing into rowsub, so we can set alert! - col.separator() - display_keymaps = keyconfig_utils.keyconfig_merge(kc, kc) + layout.separator() + display_keymaps = keyconfig_utils.keyconfig_merge(kc_user, kc_user) filter_type = spref.filter_type filter_text = spref.filter_text.strip() if filter_text: filter_text = filter_text.lower() - ok = draw_filtered(display_keymaps, filter_type, filter_text, col) + ok = draw_filtered(display_keymaps, filter_type, filter_text, layout) else: - draw_hierarchy(display_keymaps, col) + draw_hierarchy(display_keymaps, layout) ok = True # go back and fill in rowsub @@ -406,3 +405,31 @@ def draw_keymaps(context, layout): if not ok: rowsubsub.alert = True rowsubsub.prop(spref, "filter_text", text="", icon='VIEWZOOM') + + # When the keyconfig defines it's own preferences. + kc_prefs = kc_active.preferences + if kc_prefs is not None: + box = col.box() + row = box.row(align=True) + + userpref = context.user_preferences + inputs = userpref.inputs + show_ui_keyconfig = inputs.show_ui_keyconfig + row.prop( + inputs, + "show_ui_keyconfig", + text="", + icon='TRIA_DOWN' if show_ui_keyconfig else 'TRIA_RIGHT', + emboss=False, + ) + row.label(text="Preferences") + + if show_ui_keyconfig: + # Defined by user preset, may contain mistakes out of our control. + try: + kc_prefs.draw(box) + except Exception: + import traceback + traceback.print_exc() + del box + del kc_prefs diff --git a/release/scripts/presets/keyconfig/blender.py b/release/scripts/presets/keyconfig/blender.py index 43933e92087..25246bf24d2 100644 --- a/release/scripts/presets/keyconfig/blender.py +++ b/release/scripts/presets/keyconfig/blender.py @@ -55,11 +55,12 @@ class Prefs(bpy.types.KeyConfigPreferences): ) def draw(self, layout): - col = layout.column(align=True) + split = layout.split() + col = split.column(align=True) col.label(text="Select With:") col.row().prop(self, "select_mouse", expand=True) - col = layout.column(align=True) + col = split.column(align=True) col.label(text="Spacebar Action:") col.row().prop(self, "spacebar_action", expand=True) diff --git a/release/scripts/presets/keyconfig/blender_27x.py b/release/scripts/presets/keyconfig/blender_27x.py index 573c91cb230..7259b24973c 100644 --- a/release/scripts/presets/keyconfig/blender_27x.py +++ b/release/scripts/presets/keyconfig/blender_27x.py @@ -27,9 +27,12 @@ class Prefs(bpy.types.KeyConfigPreferences): ) def draw(self, layout): - col = layout.column(align=True) + split = layout.split() + col = split.column() col.label(text="Select With:") col.row().prop(self, "select_mouse", expand=True) + split.column() + from bpy_extras.keyconfig_utils import ( keyconfig_init_from_data, diff --git a/release/scripts/startup/bl_ui/space_userpref.py b/release/scripts/startup/bl_ui/space_userpref.py index a14d1b892be..92aa42520ea 100644 --- a/release/scripts/startup/bl_ui/space_userpref.py +++ b/release/scripts/startup/bl_ui/space_userpref.py @@ -1051,20 +1051,6 @@ class USERPREF_PT_input(Panel): return (userpref.active_section == 'INPUT') @staticmethod - def draw_input_prefs_keyconfig(context, layout): - kc = context.window_manager.keyconfigs.active - kc_prefs = kc.preferences - if kc_prefs is not None: - box = layout.box() - box.label(text=kc.name.replace("_", " ").title() + " Keymap") - # Defined by user preset, may contain mistakes out of our control. - try: - kc_prefs.draw(box) - except Exception: - import traceback - traceback.print_exc() - - @staticmethod def draw_input_prefs(inputs, layout): import sys @@ -1173,13 +1159,11 @@ class USERPREF_PT_input(Panel): # Input settings self.draw_input_prefs(inputs, col) - # When the keyconfig defines it's own preferences. - self.draw_input_prefs_keyconfig(context, col) - row.separator() # Keymap Settings - draw_keymaps(context, split) + col = split.column() + draw_keymaps(context, col) #print("runtime", time.time() - start) diff --git a/source/blender/makesdna/DNA_userdef_types.h b/source/blender/makesdna/DNA_userdef_types.h index 58beb729892..6ae6eaed1c6 100644 --- a/source/blender/makesdna/DNA_userdef_types.h +++ b/source/blender/makesdna/DNA_userdef_types.h @@ -541,7 +541,9 @@ typedef struct UserDef { * which are outside the scope of typical preferences. */ short app_flag; short language; - short userpref, viewzoom; + short userpref; + char userpref_flag; + char viewzoom; int mixbufsize; int audiodevice; @@ -684,6 +686,12 @@ typedef enum eUserPref_Section { USER_SECTION_LIGHT = 7, } eUserPref_Section; +/* UserDef.userpref_flag (State of the user preferences UI). */ +typedef enum eUserPref_SectionFlag { + /* Hide/expand keymap preferences. */ + USER_SECTION_INPUT_HIDE_UI_KEYCONFIG = (1 << 0), +} eUserPref_SectionFlag; + /* UserDef.flag */ typedef enum eUserPref_Flag { USER_AUTOSAVE = (1 << 0), diff --git a/source/blender/makesrna/intern/rna_userdef.c b/source/blender/makesrna/intern/rna_userdef.c index a195ff7c1cb..f1312eeaa2c 100644 --- a/source/blender/makesrna/intern/rna_userdef.c +++ b/source/blender/makesrna/intern/rna_userdef.c @@ -4523,6 +4523,10 @@ static void rna_def_userdef_input(BlenderRNA *brna) RNA_def_struct_clear_flag(srna, STRUCT_UNDO); RNA_def_struct_ui_text(srna, "Input", "Settings for input devices"); + prop = RNA_def_property(srna, "show_ui_keyconfig", PROP_BOOLEAN, PROP_NONE); + RNA_def_property_boolean_negative_sdna(prop, NULL, "userpref_flag", USER_SECTION_INPUT_HIDE_UI_KEYCONFIG); + RNA_def_property_ui_text(prop, "Show UI Key-Config", ""); + prop = RNA_def_property(srna, "view_zoom_method", PROP_ENUM, PROP_NONE); RNA_def_property_enum_sdna(prop, NULL, "viewzoom"); RNA_def_property_enum_items(prop, view_zoom_styles); |