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:
-rw-r--r--release/scripts/modules/rna_keymap_ui.py49
-rw-r--r--release/scripts/presets/keyconfig/blender.py5
-rw-r--r--release/scripts/presets/keyconfig/blender_27x.py5
-rw-r--r--release/scripts/startup/bl_ui/space_userpref.py20
-rw-r--r--source/blender/makesdna/DNA_userdef_types.h10
-rw-r--r--source/blender/makesrna/intern/rna_userdef.c4
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);