diff options
author | Vuk Gardašević <lijenstina> | 2018-07-02 19:43:30 +0300 |
---|---|---|
committer | Pablo Vazquez <venomgfx@gmail.com> | 2018-07-02 19:44:05 +0300 |
commit | 12603826eac9bd7399e065987d3c583e2734b0a7 (patch) | |
tree | 19203561c550546344b670f8c6ac3ef1e66d1581 /release | |
parent | 9f80429ab6a83a37ad94cbeee7f6ede4dec84f1a (diff) |
UI: Transform Orientations panel as popover
Functionality fits in the Transform Orientations, no need for a dedicated
panel in the viewport sidebar.
See D3511
Diffstat (limited to 'release')
-rw-r--r-- | release/scripts/startup/bl_ui/space_topbar.py | 29 | ||||
-rw-r--r-- | release/scripts/startup/bl_ui/space_view3d.py | 51 |
2 files changed, 50 insertions, 30 deletions
diff --git a/release/scripts/startup/bl_ui/space_topbar.py b/release/scripts/startup/bl_ui/space_topbar.py index 84fb386efd5..52d180c36b0 100644 --- a/release/scripts/startup/bl_ui/space_topbar.py +++ b/release/scripts/startup/bl_ui/space_topbar.py @@ -270,6 +270,34 @@ class TOPBAR_PT_snapping(Panel): col.prop(toolsettings, "use_snap_peel_object") +class TOPBAR_PT_transform_orientations(Panel): + bl_space_type = 'TOPBAR' + bl_region_type = 'HEADER' + bl_label = "Transform Orientations" + bl_options = {'DEFAULT_CLOSED'} + + @classmethod + def poll(cls, context): + view = context.space_data + return (view) + + def draw(self, context): + layout = self.layout + layout.label("Tranform Orientations") + + scene = context.scene + orientation = scene.current_orientation + + col = layout.split(percentage=0.9) + col.prop(scene, "transform_orientation", expand=True) + col.operator("transform.create_orientation", text="", icon='ZOOMIN', emboss=False) + + if orientation: + row = layout.row(align=False) + row.prop(orientation, "name", text="") + row.operator("transform.delete_orientation", text="", icon='X', emboss=False) + + class INFO_MT_editor_menus(Menu): bl_idname = "INFO_MT_editor_menus" bl_label = "" @@ -629,6 +657,7 @@ classes = ( TOPBAR_HT_lower_bar, TOPBAR_PT_pivot_point, TOPBAR_PT_snapping, + TOPBAR_PT_transform_orientations, TOPBAR_MT_file_specials, TOPBAR_MT_window_specials, INFO_MT_editor_menus, diff --git a/release/scripts/startup/bl_ui/space_view3d.py b/release/scripts/startup/bl_ui/space_view3d.py index 432e5703805..e5e903f5338 100644 --- a/release/scripts/startup/bl_ui/space_view3d.py +++ b/release/scripts/startup/bl_ui/space_view3d.py @@ -119,7 +119,26 @@ class VIEW3D_HT_header(Header): # Orientation if object_mode in {'OBJECT', 'EDIT', 'POSE'}: - layout.prop(scene, "transform_orientation", text="") + orientation = scene.transform_orientation + current_orientation = scene.current_orientation + + if not current_orientation: + trans_orientation = \ + bpy.types.Scene.bl_rna.properties["transform_orientation"].enum_items[orientation] + trans_icon = getattr(trans_orientation, "icon", "BLANK1") + trans_name = getattr(trans_orientation, "name", "Orientation") + else: + trans_icon = "VISIBLE_IPO_OFF" + trans_name = getattr(current_orientation, "name", "Orientation") + + row = layout.row(align=True) + row.popover( + space_type='TOPBAR', + region_type='HEADER', + panel_type="TOPBAR_PT_transform_orientations", + text=trans_name, + icon=trans_icon, + ) # Snap show_snap = False @@ -191,7 +210,7 @@ class VIEW3D_HT_header(Header): sub.active = tool_settings.proportional_edit != 'DISABLED' sub.prop(tool_settings, "proportional_edit_falloff", icon_only=True) - # Orientation & Pivot + # Pivot if object_mode in {'OBJECT', 'EDIT', 'POSE'}: pivot_point = tool_settings.transform_pivot_point act_pivot_point = bpy.types.ToolSettings.bl_rna.properties["transform_pivot_point"].enum_items[pivot_point] @@ -4124,33 +4143,6 @@ class VIEW3D_PT_view3d_stereo(Panel): split.prop(view, "stereo_3d_volume_alpha", text="Alpha") -class VIEW3D_PT_transform_orientations(Panel): - bl_space_type = 'VIEW_3D' - bl_region_type = 'UI' - bl_label = "Transform Orientations" - bl_options = {'DEFAULT_CLOSED'} - - @classmethod - def poll(cls, context): - view = context.space_data - return (view) - - def draw(self, context): - layout = self.layout - - scene = context.scene - orientation = scene.current_orientation - - row = layout.row(align=True) - row.prop(scene, "transform_orientation", text="") - row.operator("transform.create_orientation", text="", icon='ZOOMIN') - - if orientation: - row = layout.row(align=True) - row.prop(orientation, "name", text="") - row.operator("transform.delete_orientation", text="", icon='X') - - class VIEW3D_PT_context_properties(Panel): bl_space_type = 'VIEW_3D' bl_region_type = 'UI' @@ -4338,7 +4330,6 @@ classes = ( VIEW3D_PT_overlay_pose, VIEW3D_PT_overlay_paint, VIEW3D_PT_overlay_sculpt, - VIEW3D_PT_transform_orientations, VIEW3D_PT_context_properties, ) |