From 65b03129041f42dabe1cdfd5154fc6efa6e1e758 Mon Sep 17 00:00:00 2001 From: Campbell Barton Date: Sat, 13 Apr 2019 12:23:07 +0200 Subject: 3D View: move gizmo draw options out of overlays Gizmo's now have their own popover in preparation for making transform gizmos accessible without having to use tools See: T63518 --- release/scripts/startup/bl_ui/space_view3d.py | 55 ++++++++++++---------- source/blender/draw/intern/draw_manager.c | 6 +-- source/blender/editors/mesh/editmesh_polybuild.c | 4 +- source/blender/editors/space_view3d/view3d_draw.c | 1 - .../editors/space_view3d/view3d_gizmo_armature.c | 4 +- .../editors/space_view3d/view3d_gizmo_camera.c | 8 +--- .../editors/space_view3d/view3d_gizmo_empty.c | 4 +- .../editors/space_view3d/view3d_gizmo_forcefield.c | 4 +- .../editors/space_view3d/view3d_gizmo_light.c | 4 +- .../editors/space_view3d/view3d_gizmo_navigate.c | 2 - .../editors/space_view3d/view3d_gizmo_ruler.c | 8 +--- 11 files changed, 41 insertions(+), 59 deletions(-) diff --git a/release/scripts/startup/bl_ui/space_view3d.py b/release/scripts/startup/bl_ui/space_view3d.py index 950dcc71c41..36fc0a38fcb 100644 --- a/release/scripts/startup/bl_ui/space_view3d.py +++ b/release/scripts/startup/bl_ui/space_view3d.py @@ -132,6 +132,17 @@ class VIEW3D_HT_header(Header): # Mode & Transform Settings scene = context.scene + # Gizmo popover. + row = layout.row(align=True) + # FIXME: place-holder icon. + row.prop(view, "show_gizmo", text="", toggle=True, icon='EMPTY_DATA') + sub = row.row(align=True) + sub.active = view.show_gizmo + sub.popover( + panel="VIEW3D_PT_gizmo_display", + text="", + ) + # Orientation if object_mode in {'OBJECT', 'EDIT', 'EDIT_GPENCIL'} or has_pose_mode: orient_slot = scene.transform_orientation_slots[0] @@ -4756,42 +4767,36 @@ class VIEW3D_PT_shading_options_ssao(Panel): col.prop(scene.display, "matcap_ssao_attenuation") -class VIEW3D_PT_overlay(Panel): +class VIEW3D_PT_gizmo_display(Panel): bl_space_type = 'VIEW_3D' bl_region_type = 'HEADER' - bl_label = "Overlays" - bl_ui_units_x = 13 - - def draw(self, context): - layout = self.layout - layout.label(text="Viewport Overlays") - - -class VIEW3D_PT_overlay_gizmo(Panel): - bl_space_type = 'VIEW_3D' - bl_region_type = 'HEADER' - bl_parent_id = 'VIEW3D_PT_overlay' bl_label = "Gizmo" - def draw_header(self, context): - view = context.space_data - self.layout.prop(view, "show_gizmo", text="") - def draw(self, context): layout = self.layout view = context.space_data overlay = view.overlay - display_all = overlay.show_overlays col = layout.column() - col.active = display_all + col.label(text="Viewport Gizmos") - row = col.row(align=True) - row.active = view.show_gizmo - row.prop(view, "show_gizmo_navigate", text="Navigate", toggle=True) - row.prop(view, "show_gizmo_context", text="Active Object", toggle=True) - row.prop(view, "show_gizmo_tool", text="Active Tools", toggle=True) + col.active = view.show_gizmo + colsub = col.column() + colsub.prop(view, "show_gizmo_navigate", text="Navigate") + colsub.prop(view, "show_gizmo_context", text="Active Object") + colsub.prop(view, "show_gizmo_tool", text="Active Tools") + + +class VIEW3D_PT_overlay(Panel): + bl_space_type = 'VIEW_3D' + bl_region_type = 'HEADER' + bl_label = "Overlays" + bl_ui_units_x = 13 + + def draw(self, context): + layout = self.layout + layout.label(text="Viewport Overlays") class VIEW3D_PT_overlay_guides(Panel): @@ -6045,8 +6050,8 @@ classes = ( VIEW3D_PT_shading_options, VIEW3D_PT_shading_options_shadow, VIEW3D_PT_shading_options_ssao, + VIEW3D_PT_gizmo_display, VIEW3D_PT_overlay, - VIEW3D_PT_overlay_gizmo, VIEW3D_PT_overlay_guides, VIEW3D_PT_overlay_object, VIEW3D_PT_overlay_geometry, diff --git a/source/blender/draw/intern/draw_manager.c b/source/blender/draw/intern/draw_manager.c index a96ef4ed8fa..699ac8d5b0b 100644 --- a/source/blender/draw/intern/draw_manager.c +++ b/source/blender/draw/intern/draw_manager.c @@ -1581,9 +1581,7 @@ void DRW_draw_render_loop_ex( if (DST.draw_ctx.evil_C) { /* needed so gizmo isn't obscured */ - if (((v3d->flag2 & V3D_HIDE_OVERLAYS) == 0) && - ((v3d->gizmo_flag & V3D_GIZMO_HIDE) == 0)) - { + if ((v3d->gizmo_flag & V3D_GIZMO_HIDE) == 0) { glDisable(GL_DEPTH_TEST); DRW_draw_gizmo_3d(); } @@ -1601,7 +1599,7 @@ void DRW_draw_render_loop_ex( GPU_depth_test(true); } - if ((v3d->flag2 & V3D_HIDE_OVERLAYS) == 0) { + if ((v3d->gizmo_flag & V3D_GIZMO_HIDE) == 0) { /* Draw 2D after region info so we can draw on top of the camera passepartout overlay. * 'DRW_draw_region_info' sets the projection in pixel-space. */ GPU_depth_test(false); diff --git a/source/blender/editors/mesh/editmesh_polybuild.c b/source/blender/editors/mesh/editmesh_polybuild.c index 19831e8f380..7decd5f4b2f 100644 --- a/source/blender/editors/mesh/editmesh_polybuild.c +++ b/source/blender/editors/mesh/editmesh_polybuild.c @@ -91,9 +91,7 @@ static bool edbm_preselect_or_active( BMElem **r_ele) { ARegion *ar = CTX_wm_region(C); - const bool show_gizmo = !( - (v3d->flag2 & V3D_HIDE_OVERLAYS) || - (v3d->gizmo_flag & (V3D_GIZMO_HIDE | V3D_GIZMO_HIDE_TOOL))); + const bool show_gizmo = !((v3d->gizmo_flag & (V3D_GIZMO_HIDE | V3D_GIZMO_HIDE_TOOL))); wmGizmoMap *gzmap = show_gizmo ? ar->gizmo_map : NULL; wmGizmoGroup *gzgroup = gzmap ? WM_gizmomap_group_find(gzmap, "VIEW3D_GGT_mesh_preselect_elem") : NULL; diff --git a/source/blender/editors/space_view3d/view3d_draw.c b/source/blender/editors/space_view3d/view3d_draw.c index 522d081fdd6..3399bda1cfa 100644 --- a/source/blender/editors/space_view3d/view3d_draw.c +++ b/source/blender/editors/space_view3d/view3d_draw.c @@ -1324,7 +1324,6 @@ void view3d_draw_region_info(const bContext *C, ARegion *ar) BLF_batch_draw_begin(); if ((U.uiflag & USER_SHOW_GIZMO_AXIS) || - (v3d->flag2 & V3D_HIDE_OVERLAYS) || /* No need to display gizmo and this info. */ (v3d->gizmo_flag & (V3D_GIZMO_HIDE | V3D_GIZMO_HIDE_NAVIGATE))) { diff --git a/source/blender/editors/space_view3d/view3d_gizmo_armature.c b/source/blender/editors/space_view3d/view3d_gizmo_armature.c index a2b93dcd309..64617b03c5e 100644 --- a/source/blender/editors/space_view3d/view3d_gizmo_armature.c +++ b/source/blender/editors/space_view3d/view3d_gizmo_armature.c @@ -125,9 +125,7 @@ static void gizmo_bbone_offset_set( static bool WIDGETGROUP_armature_spline_poll(const bContext *C, wmGizmoGroupType *UNUSED(gzgt)) { View3D *v3d = CTX_wm_view3d(C); - if ((v3d->flag2 & V3D_HIDE_OVERLAYS) || - (v3d->gizmo_flag & (V3D_GIZMO_HIDE | V3D_GIZMO_HIDE_CONTEXT))) - { + if (v3d->gizmo_flag & (V3D_GIZMO_HIDE | V3D_GIZMO_HIDE_CONTEXT)) { return false; } diff --git a/source/blender/editors/space_view3d/view3d_gizmo_camera.c b/source/blender/editors/space_view3d/view3d_gizmo_camera.c index 2aa10dc3040..8f0a57375fd 100644 --- a/source/blender/editors/space_view3d/view3d_gizmo_camera.c +++ b/source/blender/editors/space_view3d/view3d_gizmo_camera.c @@ -61,9 +61,7 @@ struct CameraWidgetGroup { static bool WIDGETGROUP_camera_poll(const bContext *C, wmGizmoGroupType *UNUSED(gzgt)) { View3D *v3d = CTX_wm_view3d(C); - if ((v3d->flag2 & V3D_HIDE_OVERLAYS) || - (v3d->gizmo_flag & (V3D_GIZMO_HIDE | V3D_GIZMO_HIDE_CONTEXT))) - { + if (v3d->gizmo_flag & (V3D_GIZMO_HIDE | V3D_GIZMO_HIDE_CONTEXT)) { return false; } @@ -374,9 +372,7 @@ static bool WIDGETGROUP_camera_view_poll(const bContext *C, wmGizmoGroupType *UN } View3D *v3d = CTX_wm_view3d(C); - if ((v3d->flag2 & V3D_HIDE_OVERLAYS) || - (v3d->gizmo_flag & (V3D_GIZMO_HIDE | V3D_GIZMO_HIDE_CONTEXT))) - { + if (v3d->gizmo_flag & (V3D_GIZMO_HIDE | V3D_GIZMO_HIDE_CONTEXT)) { return false; } diff --git a/source/blender/editors/space_view3d/view3d_gizmo_empty.c b/source/blender/editors/space_view3d/view3d_gizmo_empty.c index 7d6ec3b782f..b44e48a0670 100644 --- a/source/blender/editors/space_view3d/view3d_gizmo_empty.c +++ b/source/blender/editors/space_view3d/view3d_gizmo_empty.c @@ -106,9 +106,7 @@ static bool WIDGETGROUP_empty_image_poll(const bContext *C, wmGizmoGroupType *UN View3D *v3d = CTX_wm_view3d(C); RegionView3D *rv3d = CTX_wm_region_view3d(C); - if ((v3d->flag2 & V3D_HIDE_OVERLAYS) || - (v3d->gizmo_flag & (V3D_GIZMO_HIDE | V3D_GIZMO_HIDE_CONTEXT))) - { + if (v3d->gizmo_flag & (V3D_GIZMO_HIDE | V3D_GIZMO_HIDE_CONTEXT)) { return false; } diff --git a/source/blender/editors/space_view3d/view3d_gizmo_forcefield.c b/source/blender/editors/space_view3d/view3d_gizmo_forcefield.c index 750a8101a15..8aa5cca4cbf 100644 --- a/source/blender/editors/space_view3d/view3d_gizmo_forcefield.c +++ b/source/blender/editors/space_view3d/view3d_gizmo_forcefield.c @@ -49,9 +49,7 @@ static bool WIDGETGROUP_forcefield_poll(const bContext *C, wmGizmoGroupType *UNU { View3D *v3d = CTX_wm_view3d(C); - if ((v3d->flag2 & V3D_HIDE_OVERLAYS) || - (v3d->gizmo_flag & (V3D_GIZMO_HIDE | V3D_GIZMO_HIDE_CONTEXT))) - { + if (v3d->gizmo_flag & (V3D_GIZMO_HIDE | V3D_GIZMO_HIDE_CONTEXT)) { return false; } diff --git a/source/blender/editors/space_view3d/view3d_gizmo_light.c b/source/blender/editors/space_view3d/view3d_gizmo_light.c index 90f1b60e21a..f8f9951c20e 100644 --- a/source/blender/editors/space_view3d/view3d_gizmo_light.c +++ b/source/blender/editors/space_view3d/view3d_gizmo_light.c @@ -51,9 +51,7 @@ static bool WIDGETGROUP_light_spot_poll(const bContext *C, wmGizmoGroupType *UNUSED(gzgt)) { View3D *v3d = CTX_wm_view3d(C); - if ((v3d->flag2 & V3D_HIDE_OVERLAYS) || - (v3d->gizmo_flag & (V3D_GIZMO_HIDE | V3D_GIZMO_HIDE_CONTEXT))) - { + if (v3d->gizmo_flag & (V3D_GIZMO_HIDE | V3D_GIZMO_HIDE_CONTEXT)) { return false; } diff --git a/source/blender/editors/space_view3d/view3d_gizmo_navigate.c b/source/blender/editors/space_view3d/view3d_gizmo_navigate.c index acf6aa7e188..a6fd195b04d 100644 --- a/source/blender/editors/space_view3d/view3d_gizmo_navigate.c +++ b/source/blender/editors/space_view3d/view3d_gizmo_navigate.c @@ -121,13 +121,11 @@ static bool WIDGETGROUP_navigate_poll(const bContext *C, wmGizmoGroupType *UNUSE { View3D *v3d = CTX_wm_view3d(C); if (((U.uiflag & USER_SHOW_GIZMO_AXIS) == 0) || - (v3d->flag2 & V3D_HIDE_OVERLAYS) || (v3d->gizmo_flag & (V3D_GIZMO_HIDE | V3D_GIZMO_HIDE_NAVIGATE))) { return false; } return true; - } static void WIDGETGROUP_navigate_setup(const bContext *UNUSED(C), wmGizmoGroup *gzgroup) diff --git a/source/blender/editors/space_view3d/view3d_gizmo_ruler.c b/source/blender/editors/space_view3d/view3d_gizmo_ruler.c index 09757e13297..f8f92d8bef8 100644 --- a/source/blender/editors/space_view3d/view3d_gizmo_ruler.c +++ b/source/blender/editors/space_view3d/view3d_gizmo_ruler.c @@ -1042,9 +1042,7 @@ static int view3d_ruler_add_invoke(bContext *C, wmOperator *op, const wmEvent *e View3D *v3d = CTX_wm_view3d(C); RegionView3D *rv3d = ar->regiondata; - if ((v3d->flag2 & V3D_HIDE_OVERLAYS) || - (v3d->gizmo_flag & (V3D_GIZMO_HIDE | V3D_GIZMO_HIDE_TOOL))) - { + if (v3d->gizmo_flag & (V3D_GIZMO_HIDE | V3D_GIZMO_HIDE_TOOL)) { BKE_report(op->reports, RPT_WARNING, "Gizmos hidden in this view"); return OPERATOR_CANCELLED; } @@ -1107,9 +1105,7 @@ static int view3d_ruler_remove_invoke(bContext *C, wmOperator *op, const wmEvent ARegion *ar = CTX_wm_region(C); View3D *v3d = CTX_wm_view3d(C); - if ((v3d->flag2 & V3D_HIDE_OVERLAYS) || - (v3d->gizmo_flag & (V3D_GIZMO_HIDE | V3D_GIZMO_HIDE_TOOL))) - { + if (v3d->gizmo_flag & (V3D_GIZMO_HIDE | V3D_GIZMO_HIDE_TOOL)) { BKE_report(op->reports, RPT_WARNING, "Gizmos hidden in this view"); return OPERATOR_CANCELLED; } -- cgit v1.2.3