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:
authorCampbell Barton <ideasman42@gmail.com>2021-09-28 07:44:36 +0300
committerCampbell Barton <ideasman42@gmail.com>2021-09-29 13:03:47 +0300
commit4cf4bb2664ebe145dac9715bbbfcc2b96f5ff175 (patch)
treec653b44f7decc251c9caaf15d65674a47ce3e6c1
parenteabb1348409012547b1220a80c08163d7c29afaa (diff)
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
-rw-r--r--release/scripts/startup/bl_ui/space_image.py12
-rw-r--r--release/scripts/startup/bl_ui/space_sequencer.py5
-rw-r--r--release/scripts/startup/bl_ui/space_toolsystem_common.py11
-rw-r--r--release/scripts/startup/bl_ui/space_view3d.py12
-rw-r--r--source/blender/blenloader/intern/versioning_300.c25
-rw-r--r--source/blender/editors/screen/area.c4
-rw-r--r--source/blender/editors/space_image/space_image.c14
-rw-r--r--source/blender/editors/space_sequencer/space_sequencer.c14
-rw-r--r--source/blender/editors/space_view3d/space_view3d.c14
9 files changed, 60 insertions, 51 deletions
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_HIDDEN_BY_USER;
/* Buttons/list view. */
region = MEM_callocN(sizeof(ARegion), "buttons for sequencer");
diff --git a/source/blender/editors/space_view3d/space_view3d.c b/source/blender/editors/space_view3d/space_view3d.c
index 4bee9633ece..f68a4d78a00 100644
--- a/source/blender/editors/space_view3d/space_view3d.c
+++ b/source/blender/editors/space_view3d/space_view3d.c
@@ -276,20 +276,20 @@ static SpaceLink *view3d_create(const ScrArea *UNUSED(area), const Scene *scene)
v3d->camera = scene->camera;
}
- /* tool header */
- region = MEM_callocN(sizeof(ARegion), "tool header for view3d");
+ /* header */
+ region = MEM_callocN(sizeof(ARegion), "header for view3d");
BLI_addtail(&v3d->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 view3d");
+ /* tool header */
+ region = MEM_callocN(sizeof(ARegion), "tool header for view3d");
BLI_addtail(&v3d->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;
/* tool shelf */
region = MEM_callocN(sizeof(ARegion), "toolshelf for view3d");