[Bf-blender-cvs] [ddebf1ea3bc] blender2.8: UI: Add menu to show the toolbar

Campbell Barton noreply at git.blender.org
Fri May 18 22:29:02 CEST 2018


Commit: ddebf1ea3bcc1e5f5650af89952f63d21acb2de8
Author: Campbell Barton
Date:   Fri May 18 22:27:59 2018 +0200
Branches: blender2.8
https://developer.blender.org/rBddebf1ea3bcc1e5f5650af89952f63d21acb2de8

UI: Add menu to show the toolbar

For people who prefer to keep the toolbar hidden,
expose as a menu (currently Shift-Space).

===================================================================

M	release/scripts/startup/bl_operators/wm.py
M	release/scripts/startup/bl_ui/space_toolsystem_common.py
M	source/blender/editors/screen/screen_ops.c
M	source/blender/windowmanager/intern/wm_operators.c

===================================================================

diff --git a/release/scripts/startup/bl_operators/wm.py b/release/scripts/startup/bl_operators/wm.py
index 970eff34026..2f1cf4dc1db 100644
--- a/release/scripts/startup/bl_operators/wm.py
+++ b/release/scripts/startup/bl_operators/wm.py
@@ -2356,6 +2356,26 @@ class WM_OT_tool_set_by_name(Operator):
             return {'CANCELLED'}
 
 
+class WM_OT_toolbar(Operator):
+    bl_idname = "wm.toolbar"
+    bl_label = "Toolbar"
+
+    def execute(self, context):
+
+        def draw_menu(popover, context):
+            from bl_ui.space_toolsystem_common import ToolSelectPanelHelper
+            space_type = context.space_data.type
+            cls = ToolSelectPanelHelper._tool_class_from_space_type(space_type)
+            if cls is None:
+                self.report({'WARNING'}, "Toolbar not found for {space_type!r}")
+                return {'CANCELLED'}
+            cls.draw_cls(popover.layout, context, detect_layout=False)
+
+        wm = context.window_manager
+        wm.popup_menu(draw_menu)
+        return {'FINISHED'}
+
+
 classes = (
     BRUSH_OT_active_index_set,
     WM_OT_addon_disable,
@@ -2411,4 +2431,5 @@ classes = (
     WM_OT_owner_enable,
     WM_OT_url_open,
     WM_OT_tool_set_by_name,
+    WM_OT_toolbar,
 )
diff --git a/release/scripts/startup/bl_ui/space_toolsystem_common.py b/release/scripts/startup/bl_ui/space_toolsystem_common.py
index a8d1ef02003..e1594dfa8ad 100644
--- a/release/scripts/startup/bl_ui/space_toolsystem_common.py
+++ b/release/scripts/startup/bl_ui/space_toolsystem_common.py
@@ -432,7 +432,7 @@ class ToolSelectPanelHelper:
 
 
     @classmethod
-    def draw_cls(cls, layout, context):
+    def draw_cls(cls, layout, context, detect_layout=True):
         # Use a classmethod so it can be called outside of a panel context.
 
         # XXX, this UI isn't very nice.
@@ -447,7 +447,11 @@ class ToolSelectPanelHelper:
             "name", None,
         )
 
-        ui_gen, show_text = cls._layout_generator_detect_from_region(layout, context.region)
+        if detect_layout:
+            ui_gen, show_text = cls._layout_generator_detect_from_region(layout, context.region)
+        else:
+            ui_gen = ToolSelectPanelHelper._layout_generator_single_column(layout)
+            show_text = True
 
         # Start iteration
         ui_gen.send(None)
diff --git a/source/blender/editors/screen/screen_ops.c b/source/blender/editors/screen/screen_ops.c
index df0466075ef..68c05900520 100644
--- a/source/blender/editors/screen/screen_ops.c
+++ b/source/blender/editors/screen/screen_ops.c
@@ -4637,7 +4637,10 @@ void ED_keymap_screen(wmKeyConfig *keyconf)
 	RNA_int_set(WM_keymap_add_item(keymap, "SCREEN_OT_screen_set", LEFTARROWKEY, KM_PRESS, KM_CTRL, 0)->ptr, "delta", -1);
 	WM_keymap_add_item(keymap, "SCREEN_OT_screen_full_area", UPARROWKEY, KM_PRESS, KM_CTRL, 0);
 	WM_keymap_add_item(keymap, "SCREEN_OT_screen_full_area", DOWNARROWKEY, KM_PRESS, KM_CTRL, 0);
+	/* we already have two keys for this, disabled for use by WM_OT_toolbar */
+#if 0
 	WM_keymap_add_item(keymap, "SCREEN_OT_screen_full_area", SPACEKEY, KM_PRESS, KM_SHIFT, 0);
+#endif
 	kmi = WM_keymap_add_item(keymap, "SCREEN_OT_screen_full_area", F10KEY, KM_PRESS, KM_ALT, 0);
 	RNA_boolean_set(kmi->ptr, "use_hide_panels", true);
 
diff --git a/source/blender/windowmanager/intern/wm_operators.c b/source/blender/windowmanager/intern/wm_operators.c
index 3ed5de7b796..70be609dba3 100644
--- a/source/blender/windowmanager/intern/wm_operators.c
+++ b/source/blender/windowmanager/intern/wm_operators.c
@@ -3959,6 +3959,8 @@ void wm_window_keymap(wmKeyConfig *keyconf)
 	WM_keymap_add_menu(keymap, "USERPREF_MT_ndof_settings", NDOF_BUTTON_MENU, KM_PRESS, 0, 0);
 #endif
 
+	WM_keymap_add_item(keymap, "WM_OT_toolbar", SPACEKEY, KM_PRESS, KM_SHIFT, 0);
+
 	/* Space switching */
 	kmi = WM_keymap_add_item(keymap, "WM_OT_context_set_enum", F3KEY, KM_PRESS, KM_SHIFT, 0);
 	RNA_string_set(kmi->ptr, "data_path", "area.type");



More information about the Bf-blender-cvs mailing list