Commit: d4200f3c61c40917ba42a7502c0a1a236d8ada56 Author: Campbell Barton Date: Sat Apr 20 17:01:04 2019 +0200 Branches: temp-topbar-ui https://developer.blender.org/rBd4200f3c61c40917ba42a7502c0a1a236d8ada56
Work in progress redesign of topbar ui =================================================================== M release/scripts/startup/bl_ui/space_topbar.py M release/scripts/startup/bl_ui/space_view3d.py M source/blender/blenloader/intern/versioning_280.c M source/blender/editors/space_buttons/space_buttons.c =================================================================== diff --git a/release/scripts/startup/bl_ui/space_topbar.py b/release/scripts/startup/bl_ui/space_topbar.py index e75f4d1bb5d..4ba7e02cbcd 100644 --- a/release/scripts/startup/bl_ui/space_topbar.py +++ b/release/scripts/startup/bl_ui/space_topbar.py @@ -599,27 +599,6 @@ class TOPBAR_MT_workspace_menu(Menu): props.direction = 'NEXT' -class TOPBAR_PT_active_tool(Panel): - bl_space_type = 'PROPERTIES' - bl_region_type = 'WINDOW' - bl_category = "" - bl_context = ".active_tool" # dot on purpose (access from tool settings) - bl_label = "Active Tool" - bl_options = {'HIDE_HEADER'} - - def draw(self, context): - layout = self.layout - - # Panel display of topbar tool settings. - # currently displays in tool settings, keep here since the same functionality is used for the topbar. - - layout.use_property_split = True - layout.use_property_decorate = False - - from .space_toolsystem_common import ToolSelectPanelHelper - ToolSelectPanelHelper.draw_active_tool_header(context, layout, show_tool_name=True) - - # Grease Pencil Object - Primitive curve class TOPBAR_PT_gpencil_primitive(Panel): bl_space_type = 'VIEW_3D' @@ -736,7 +715,6 @@ classes = ( TOPBAR_MT_render, TOPBAR_MT_window, TOPBAR_MT_help, - TOPBAR_PT_active_tool, TOPBAR_PT_gpencil_layers, TOPBAR_PT_gpencil_primitive, TOPBAR_PT_gpencil_fill, diff --git a/release/scripts/startup/bl_ui/space_view3d.py b/release/scripts/startup/bl_ui/space_view3d.py index bb56946e154..df72b93573d 100644 --- a/release/scripts/startup/bl_ui/space_view3d.py +++ b/release/scripts/startup/bl_ui/space_view3d.py @@ -55,133 +55,6 @@ class VIEW3D_HT_tool_header(Header): self.draw_tool_settings(context) - layout.separator_spacer() - - # Mode & Transform Settings - scene = context.scene - - # Orientation - if object_mode in {'OBJECT', 'EDIT', 'EDIT_GPENCIL'} or has_pose_mode: - orient_slot = scene.transform_orientation_slots[0] - row = layout.row(align=True) - - sub = row.row() - sub.ui_units_x = 4 - sub.prop_with_popover( - orient_slot, - "type", - text="", - panel="VIEW3D_PT_transform_orientations", - ) - - # Pivot - if object_mode in {'OBJECT', 'EDIT', 'EDIT_GPENCIL', 'SCULPT_GPENCIL'} or has_pose_mode: - layout.prop_with_popover( - tool_settings, - "transform_pivot_point", - text="", - icon_only=True, - panel="VIEW3D_PT_pivot_point", - ) - - # Snap - show_snap = False - if obj is None: - show_snap = True - else: - if (object_mode not in { - 'SCULPT', 'VERTEX_PAINT', 'WEIGHT_PAINT', 'TEXTURE_PAINT', - 'PAINT_GPENCIL', 'SCULPT_GPENCIL', 'WEIGHT_GPENCIL' - }) or has_pose_mode: - show_snap = True - else: - - from .properties_paint_common import UnifiedPaintPanel - paint_settings = UnifiedPaintPanel.paint_settings(context) - - if paint_settings: - brush = paint_settings.brush - if brush and brush.stroke_method == 'CURVE': - show_snap = True - - if show_snap: - snap_items = bpy.types.ToolSettings.bl_rna.properties["snap_elements"].enum_items - snap_elements = tool_settings.snap_elements - if len(snap_elements) == 1: - text = "" - for elem in snap_elements: - icon = snap_items[elem].icon - break - else: - text = "Mix" - icon = 'NONE' - del snap_items, snap_elements - - row = layout.row(align=True) - row.prop(tool_settings, "use_snap", text="") - - sub = row.row(align=True) - sub.popover( - panel="VIEW3D_PT_snapping", - icon=icon, - text=text, - ) - - # Proportional editing - gpd = context.gpencil_data - if object_mode in {'EDIT', 'PARTICLE_EDIT'}: - row = layout.row(align=True) - row.prop(tool_settings, "proportional_edit", icon_only=True) - sub = row.row(align=True) - sub.active = tool_settings.proportional_edit != 'DISABLED' - sub.prop(tool_settings, "proportional_edit_falloff", icon_only=True) - - elif object_mode == 'OBJECT': - row = layout.row(align=True) - row.prop(tool_settings, "use_proportional_edit_objects", icon_only=True) - sub = row.row(align=True) - sub.active = tool_settings.use_proportional_edit_objects - sub.prop(tool_settings, "proportional_edit_falloff", icon_only=True) - - elif gpd is not None and obj.type == 'GPENCIL': - if gpd.use_stroke_edit_mode or gpd.is_stroke_sculpt_mode: - row = layout.row(align=True) - row.prop(tool_settings, "proportional_edit", icon_only=True) - - sub = row.row(align=True) - sub.active = tool_settings.proportional_edit != 'DISABLED' - sub.prop(tool_settings, "proportional_edit_falloff", icon_only=True) - - # grease pencil - if object_mode == 'PAINT_GPENCIL': - layout.prop_with_popover( - tool_settings, - "gpencil_stroke_placement_view3d", - text="", - panel="VIEW3D_PT_gpencil_origin", - ) - - if object_mode in {'PAINT_GPENCIL', 'SCULPT_GPENCIL'}: - layout.prop_with_popover( - tool_settings.gpencil_sculpt, - "lock_axis", - text="", - panel="VIEW3D_PT_gpencil_lock", - ) - - if object_mode == 'PAINT_GPENCIL': - # FIXME: this is bad practice! - # Tool options are to be displayed in the topbar. - if context.workspace.tools.from_space_view3d_mode(object_mode).idname == "builtin_brush.Draw": - settings = tool_settings.gpencil_sculpt.guide - row = layout.row(align=True) - row.prop(settings, "use_guide", text="", icon='GRID') - sub = row.row(align=True) - sub.active = settings.use_guide - sub.popover( - panel="VIEW3D_PT_gpencil_guide", - text="Guides", - ) layout.separator_spacer() @@ -606,6 +479,134 @@ class VIEW3D_HT_header(Header): layout.separator_spacer() + # Mode & Transform Settings + scene = context.scene + + # Orientation + if object_mode in {'OBJECT', 'EDIT', 'EDIT_GPENCIL'} or has_pose_mode: + orient_slot = scene.transform_orientation_slots[0] + row = layout.row(align=True) + + sub = row.row() + sub.ui_units_x = 4 + sub.prop_with_popover( + orient_slot, + "type", + text="", + panel="VIEW3D_PT_transform_orientations", + ) + + # Pivot + if object_mode in {'OBJECT', 'EDIT', 'EDIT_GPENCIL', 'SCULPT_GPENCIL'} or has_pose_mode: + layout.prop_with_popover( + tool_settings, + "transform_pivot_point", + text="", + icon_only=True, + panel="VIEW3D_PT_pivot_point", + ) + + # Snap + show_snap = False + if obj is None: + show_snap = True + else: + if (object_mode not in { + 'SCULPT', 'VERTEX_PAINT', 'WEIGHT_PAINT', 'TEXTURE_PAINT', + 'PAINT_GPENCIL', 'SCULPT_GPENCIL', 'WEIGHT_GPENCIL' + }) or has_pose_mode: + show_snap = True + else: + + from .properties_paint_common import UnifiedPaintPanel + paint_settings = UnifiedPaintPanel.paint_settings(context) + + if paint_settings: + brush = paint_settings.brush + if brush and brush.stroke_method == 'CURVE': + show_snap = True + + if show_snap: + snap_items = bpy.types.ToolSettings.bl_rna.properties["snap_elements"].enum_items + snap_elements = tool_settings.snap_elements + if len(snap_elements) == 1: + text = "" + for elem in snap_elements: + icon = snap_items[elem].icon + break + else: + text = "Mix" + icon = 'NONE' + del snap_items, snap_elements + + row = layout.row(align=True) + row.prop(tool_settings, "use_snap", text="") + + sub = row.row(align=True) + sub.popover( + panel="VIEW3D_PT_snapping", + icon=icon, + text=text, + ) + + # Proportional editing + gpd = context.gpencil_data + if object_mode in {'EDIT', 'PARTICLE_EDIT'}: + row = layout.row(align=True) + row.prop(tool_settings, "proportional_edit", icon_only=True) + sub = row.row(align=True) + sub.active = tool_settings.proportional_edit != 'DISABLED' + sub.prop(tool_settings, "proportional_edit_falloff", icon_only=True) + + elif object_mode == 'OBJECT': + row = layout.row(align=True) + row.prop(tool_settings, "use_proportional_edit_objects", icon_only=True) + sub = row.row(align=True) + sub.active = tool_settings.use_proportional_edit_objects + sub.prop(tool_settings, "proportional_edit_falloff", icon_only=True) + + elif gpd is not None and obj.type == 'GPENCIL': + if gpd.use_stroke_edit_mode or gpd.is_stroke_sculpt_mode: + row = layout.row(align=True) + row.prop(tool_setting @@ Diff output truncated at 10240 characters. @@ _______________________________________________ Bf-blender-cvs mailing list Bf-blender-cvs@blender.org https://lists.blender.org/mailman/listinfo/bf-blender-cvs