[Bf-blender-cvs] [4cf4bb2664e] master: UI: swap tool and regular header

Campbell Barton noreply at git.blender.org
Wed Sep 29 12:04:16 CEST 2021


Commit: 4cf4bb2664ebe145dac9715bbbfcc2b96f5ff175
Author: Campbell Barton
Date:   Tue Sep 28 14:44:36 2021 +1000
Branches: master
https://developer.blender.org/rB4cf4bb2664ebe145dac9715bbbfcc2b96f5ff175

UI: swap tool and regular header

Swap the tool-header and header order so the tool-header
so the header is always next to the window edge.

Note that files saved in 3.0 will have overlapping headers when opened
in any version of Blender before this commit.

Reviewed By: Severin, fsiddi

Maniphest Tasks: T91536

Ref D12631

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

M	release/scripts/startup/bl_ui/space_image.py
M	release/scripts/startup/bl_ui/space_sequencer.py
M	release/scripts/startup/bl_ui/space_toolsystem_common.py
M	release/scripts/startup/bl_ui/space_view3d.py
M	source/blender/blenloader/intern/versioning_300.c
M	source/blender/editors/screen/area.c
M	source/blender/editors/space_image/space_image.c
M	source/blender/editors/space_sequencer/space_sequencer.c
M	source/blender/editors/space_view3d/space_view3d.c

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

diff --git a/release/scripts/startup/bl_ui/space_image.py b/release/scripts/startup/bl_ui/space_image.py
index 797d0c62b72..6a769b1aecc 100644
--- a/release/scripts/startup/bl_ui/space_image.py
+++ b/release/scripts/startup/bl_ui/space_image.py
@@ -598,16 +598,10 @@ class IMAGE_HT_tool_header(Header):
     def draw(self, context):
         layout = self.layout
 
-        layout.template_header()
-
         self.draw_tool_settings(context)
 
         layout.separator_spacer()
 
-        IMAGE_HT_header.draw_xform_template(layout, context)
-
-        layout.separator_spacer()
-
         self.draw_mode_settings(context)
 
     def draw_tool_settings(self, context):
@@ -762,8 +756,7 @@ class IMAGE_HT_header(Header):
         show_uvedit = sima.show_uvedit
         show_maskedit = sima.show_maskedit
 
-        if not show_region_tool_header:
-            layout.template_header()
+        layout.template_header()
 
         if sima.mode != 'UV':
             layout.prop(sima, "ui_mode", text="")
@@ -784,8 +777,7 @@ class IMAGE_HT_header(Header):
 
         layout.separator_spacer()
 
-        if not show_region_tool_header:
-            IMAGE_HT_header.draw_xform_template(layout, context)
+        IMAGE_HT_header.draw_xform_template(layout, context)
 
         layout.template_ID(sima, "image", new="image.new", open="image.open")
 
diff --git a/release/scripts/startup/bl_ui/space_sequencer.py b/release/scripts/startup/bl_ui/space_sequencer.py
index 5cfd258b174..3622154a178 100644
--- a/release/scripts/startup/bl_ui/space_sequencer.py
+++ b/release/scripts/startup/bl_ui/space_sequencer.py
@@ -99,8 +99,6 @@ class SEQUENCER_HT_tool_header(Header):
     def draw(self, context):
         layout = self.layout
 
-        layout.template_header()
-
         self.draw_tool_settings(context)
 
         # TODO: options popover.
@@ -132,8 +130,7 @@ class SEQUENCER_HT_header(Header):
 
         show_region_tool_header = st.show_region_tool_header
 
-        if not show_region_tool_header:
-            layout.template_header()
+        layout.template_header()
 
         layout.prop(st, "view_type", text="")
 
diff --git a/release/scripts/startup/bl_ui/space_toolsystem_common.py b/release/scripts/startup/bl_ui/space_toolsystem_common.py
index 98e29d3baba..4a598d0aa63 100644
--- a/release/scripts/startup/bl_ui/space_toolsystem_common.py
+++ b/release/scripts/startup/bl_ui/space_toolsystem_common.py
@@ -190,7 +190,7 @@ class ToolActivePanelHelper:
         ToolSelectPanelHelper.draw_active_tool_header(
             context,
             layout.column(),
-            show_tool_name=True,
+            show_tool_icon=True,
             tool_key=ToolSelectPanelHelper._tool_key_from_context(context, space_type=self.bl_space_type),
         )
 
@@ -766,7 +766,7 @@ class ToolSelectPanelHelper:
     def draw_active_tool_header(
             context, layout,
             *,
-            show_tool_name=False,
+            show_tool_icon=False,
             tool_key=None,
     ):
         if tool_key is None:
@@ -783,9 +783,12 @@ class ToolSelectPanelHelper:
             return None
         # Note: we could show 'item.text' here but it makes the layout jitter when switching tools.
         # Add some spacing since the icon is currently assuming regular small icon size.
-        layout.label(text="    " + item.label if show_tool_name else " ", icon_value=icon_value)
-        if show_tool_name:
+        if show_tool_icon:
+            layout.label(text="    " + item.label, icon_value=icon_value)
             layout.separator()
+        else:
+            layout.label(text=item.label)
+
         draw_settings = item.draw_settings
         if draw_settings is not None:
             draw_settings(context, layout, tool)
diff --git a/release/scripts/startup/bl_ui/space_view3d.py b/release/scripts/startup/bl_ui/space_view3d.py
index 5d609c0afdf..281c57b282f 100644
--- a/release/scripts/startup/bl_ui/space_view3d.py
+++ b/release/scripts/startup/bl_ui/space_view3d.py
@@ -46,16 +46,10 @@ class VIEW3D_HT_tool_header(Header):
     def draw(self, context):
         layout = self.layout
 
-        layout.row(align=True).template_header()
-
         self.draw_tool_settings(context)
 
         layout.separator_spacer()
 
-        VIEW3D_HT_header.draw_xform_template(layout, context)
-
-        layout.separator_spacer()
-
         self.draw_mode_settings(context)
 
     def draw_tool_settings(self, context):
@@ -604,10 +598,8 @@ class VIEW3D_HT_header(Header):
         tool_settings = context.tool_settings
         view = context.space_data
         shading = view.shading
-        show_region_tool_header = view.show_region_tool_header
 
-        if not show_region_tool_header:
-            layout.row(align=True).template_header()
+        layout.row(align=True).template_header()
 
         row = layout.row(align=True)
         obj = context.active_object
@@ -754,7 +746,7 @@ class VIEW3D_HT_header(Header):
                     )
 
             layout.separator_spacer()
-        elif not show_region_tool_header:
+        else:
             # Transform settings depending on tool header visibility
             VIEW3D_HT_header.draw_xform_template(layout, context)
 
diff --git a/source/blender/blenloader/intern/versioning_300.c b/source/blender/blenloader/intern/versioning_300.c
index 71c7e7cac6a..1c4a0690886 100644
--- a/source/blender/blenloader/intern/versioning_300.c
+++ b/source/blender/blenloader/intern/versioning_300.c
@@ -1625,5 +1625,30 @@ void blo_do_versions_300(FileData *fd, Library *UNUSED(lib), Main *bmain)
    */
   {
     /* Keep this block, even when empty. */
+
+    /* Swap header with the tool header so the regular header is always on the edge. */
+    for (bScreen *screen = bmain->screens.first; screen; screen = screen->id.next) {
+      LISTBASE_FOREACH (ScrArea *, area, &screen->areabase) {
+        LISTBASE_FOREACH (SpaceLink *, sl, &area->spacedata) {
+          ListBase *regionbase = (sl == area->spacedata.first) ? &area->regionbase :
+                                                                 &sl->regionbase;
+          ARegion *region_tool = NULL, *region_head = NULL;
+          int region_tool_index = -1, region_head_index = -1, i;
+          LISTBASE_FOREACH_INDEX (ARegion *, region, regionbase, i) {
+            if (region->regiontype == RGN_TYPE_TOOL_HEADER) {
+              region_tool = region;
+              region_tool_index = i;
+            }
+            else if (region->regiontype == RGN_TYPE_HEADER) {
+              region_head = region;
+              region_head_index = i;
+            }
+          }
+          if ((region_tool && region_head) && (region_head_index > region_tool_index)) {
+            BLI_listbase_swaplinks(regionbase, region_tool, region_head);
+          }
+        }
+      }
+    }
   }
 }
diff --git a/source/blender/editors/screen/area.c b/source/blender/editors/screen/area.c
index d3cbeb4e1d1..d791c0717be 100644
--- a/source/blender/editors/screen/area.c
+++ b/source/blender/editors/screen/area.c
@@ -1284,8 +1284,8 @@ bool ED_region_is_overlap(int spacetype, int regiontype)
                RGN_TYPE_TOOLS,
                RGN_TYPE_UI,
                RGN_TYPE_TOOL_PROPS,
-               RGN_TYPE_HEADER,
-               RGN_TYPE_FOOTER)) {
+               RGN_TYPE_FOOTER,
+               RGN_TYPE_TOOL_HEADER)) {
         return true;
       }
     }
diff --git a/source/blender/editors/space_image/space_image.c b/source/blender/editors/space_image/space_image.c
index 5adcdacd49d..f14a8266cdd 100644
--- a/source/blender/editors/space_image/space_image.c
+++ b/source/blender/editors/space_image/space_image.c
@@ -128,20 +128,20 @@ static SpaceLink *image_create(const ScrArea *UNUSED(area), const Scene *UNUSED(
 
   simage->custom_grid_subdiv = 10;
 
-  /* tool header */
-  region = MEM_callocN(sizeof(ARegion), "tool header for image");
+  /* header */
+  region = MEM_callocN(sizeof(ARegion), "header for image");
 
   BLI_addtail(&simage->regionbase, region);
-  region->regiontype = RGN_TYPE_TOOL_HEADER;
+  region->regiontype = RGN_TYPE_HEADER;
   region->alignment = (U.uiflag & USER_HEADER_BOTTOM) ? RGN_ALIGN_BOTTOM : RGN_ALIGN_TOP;
-  region->flag = RGN_FLAG_HIDDEN | RGN_FLAG_HIDDEN_BY_USER;
 
-  /* header */
-  region = MEM_callocN(sizeof(ARegion), "header for image");
+  /* tool header */
+  region = MEM_callocN(sizeof(ARegion), "tool header for image");
 
   BLI_addtail(&simage->regionbase, region);
-  region->regiontype = RGN_TYPE_HEADER;
+  region->regiontype = RGN_TYPE_TOOL_HEADER;
   region->alignment = (U.uiflag & USER_HEADER_BOTTOM) ? RGN_ALIGN_BOTTOM : RGN_ALIGN_TOP;
+  region->flag = RGN_FLAG_HIDDEN | RGN_FLAG_HIDDEN_BY_USER;
 
   /* buttons/list view */
   region = MEM_callocN(sizeof(ARegion), "buttons for image");
diff --git a/source/blender/editors/space_sequencer/space_sequencer.c b/source/blender/editors/space_sequencer/space_sequencer.c
index 99b75f82922..813259159f9 100644
--- a/source/blender/editors/space_sequencer/space_sequencer.c
+++ b/source/blender/editors/space_sequencer/space_sequencer.c
@@ -109,20 +109,20 @@ static SpaceLink *sequencer_create(const ScrArea *UNUSED(area), const Scene *sce
   BLI_rctf_init(&sseq->runtime.last_thumbnail_area, 0.0f, 0.0f, 0.0f, 0.0f);
   sseq->runtime.last_displayed_thumbnails = NULL;
 
-  /* Tool header. */
-  region = MEM_callocN(sizeof(ARegion), "tool header for sequencer");
+  /* Header. */
+  region = MEM_callocN(sizeof(ARegion), "header for sequencer");
 
   BLI_addtail(&sseq->regionbase, region);
-  region->regiontype = RGN_TYPE_TOOL_HEADER;
+  region->regiontype = RGN_TYPE_HEADER;
   region->alignment = (U.uiflag & USER_HEADER_BOTTOM) ? RGN_ALIGN_BOTTOM : RGN_ALIGN_TOP;
-  region->flag = RGN_FLAG_HIDDEN | RGN_FLAG_HIDDEN_BY_USER;
 
-  /* Header. */
-  region = MEM_callocN(sizeof(ARegion), "header for sequencer");
+  /* Tool header. */
+  region = MEM_callocN(sizeof(ARegion), "tool header for sequencer");
 
   BLI_addtail(&sseq->regionbase, region);
-  region->regiontype = RGN_TYPE_HEADER;
+  region->regiontype = RGN_TYPE_TOOL_HEADER;
   region->alignment = (U.uiflag & USER_HEADER_BOTTOM) ? RGN_ALIGN_BOTTOM : RGN_ALIGN_TOP;
+  region->flag = RGN_FLAG_HIDDEN | RGN_FLAG_HI

@@ Diff output truncated at 10240 characters. @@



More information about the Bf-blender-cvs mailing list