From 7a10cfe7fe01bbeb7588239a9fd743ecc6af6c39 Mon Sep 17 00:00:00 2001 From: Brecht Van Lommel Date: Fri, 27 Apr 2018 13:50:26 +0200 Subject: UI: preset popover buttons in panel headers. Moves the preset into a menu for the panel header, so it can be changed without opening the panel and takes up less space. Two remaining issues: * For long lists the add new preset button can be scrolled off screen. * We should support showing the name of the chosen preset in the panel header, but the current preset system does not support detecting which preset is used. Differential Revision: https://developer.blender.org/D3366 --- .../startup/bl_ui/properties_data_camera.py | 28 +++++++++------------- 1 file changed, 11 insertions(+), 17 deletions(-) (limited to 'release/scripts/startup/bl_ui/properties_data_camera.py') diff --git a/release/scripts/startup/bl_ui/properties_data_camera.py b/release/scripts/startup/bl_ui/properties_data_camera.py index 132a226f287..22c7964173b 100644 --- a/release/scripts/startup/bl_ui/properties_data_camera.py +++ b/release/scripts/startup/bl_ui/properties_data_camera.py @@ -20,6 +20,7 @@ import bpy from bpy.types import Panel, Menu from rna_prop_ui import PropertyPanel +from bl_operators.presets import PresetMenu class CameraButtonsPanel: @@ -33,20 +34,20 @@ class CameraButtonsPanel: return context.camera and (engine in cls.COMPAT_ENGINES) -class CAMERA_MT_presets(Menu): +class CAMERA_MT_presets(PresetMenu): bl_label = "Camera Presets" preset_subdir = "camera" preset_operator = "script.execute_preset" + preset_add_operator = "camera.preset_add" COMPAT_ENGINES = {'BLENDER_RENDER', 'BLENDER_EEVEE'} - draw = Menu.draw_preset -class SAFE_AREAS_MT_presets(Menu): +class SAFE_AREAS_MT_presets(PresetMenu): bl_label = "Camera Presets" preset_subdir = "safe_areas" preset_operator = "script.execute_preset" + preset_add_operator = "safe_areas.preset_add" COMPAT_ENGINES = {'BLENDER_RENDER', 'BLENDER_EEVEE'} - draw = Menu.draw_preset class DATA_PT_context_camera(CameraButtonsPanel, Panel): @@ -185,17 +186,14 @@ class DATA_PT_camera(CameraButtonsPanel, Panel): bl_label = "Camera" COMPAT_ENGINES = {'BLENDER_RENDER', 'BLENDER_EEVEE'} + def draw_header_preset(self, context): + CAMERA_MT_presets.draw_panel_header(self.layout) + def draw(self, context): layout = self.layout cam = context.camera - row = layout.row(align=True) - - row.menu("CAMERA_MT_presets", text=bpy.types.CAMERA_MT_presets.bl_label) - row.operator("camera.preset_add", text="", icon='ZOOMIN') - row.operator("camera.preset_add", text="", icon='ZOOMOUT').remove_active = True - layout.use_property_split = True col = layout.column() @@ -410,6 +408,9 @@ class DATA_PT_camera_safe_areas(CameraButtonsPanel, Panel): self.layout.prop(cam, "show_safe_areas", text="") + def draw_header_preset(self, context): + SAFE_AREAS_MT_presets.draw_panel_header(self.layout) + def draw(self, context): layout = self.layout safe_data = context.scene.safe_areas @@ -430,13 +431,6 @@ def draw_display_safe_settings(layout, safe_data, settings): layout.use_property_split = True - row = layout.row(align=True) - row.menu("SAFE_AREAS_MT_presets", text=bpy.types.SAFE_AREAS_MT_presets.bl_label) - row.operator("safe_areas.preset_add", text="", icon='ZOOMIN') - row.operator("safe_areas.preset_add", text="", icon='ZOOMOUT').remove_active = True - - layout.separator() - col = layout.column() col.active = show_safe_areas -- cgit v1.2.3