From 4f15c247052b6db49b5226b6c473bdb7b2be6293 Mon Sep 17 00:00:00 2001 From: Brecht Van Lommel Date: Wed, 20 Oct 2021 13:16:12 +0200 Subject: Fix T62325, T91990: changing Cycles presets does not update the Blender UI --- intern/cycles/blender/addon/ui.py | 22 +++++++++++++--------- 1 file changed, 13 insertions(+), 9 deletions(-) (limited to 'intern/cycles/blender') diff --git a/intern/cycles/blender/addon/ui.py b/intern/cycles/blender/addon/ui.py index 598f6f083ac..0ed2dd24f2e 100644 --- a/intern/cycles/blender/addon/ui.py +++ b/intern/cycles/blender/addon/ui.py @@ -26,27 +26,31 @@ from bpy.types import Panel from bl_ui.properties_grease_pencil_common import GreasePencilSimplifyPanel from bl_ui.properties_view_layer import ViewLayerCryptomattePanel, ViewLayerAOVPanel +class CyclesPresetPanel(PresetPanel, Panel): + COMPAT_ENGINES = {'CYCLES'} + preset_operator = "script.execute_preset" -class CYCLES_PT_sampling_presets(PresetPanel, Panel): + @staticmethod + def post_cb(context): + # Modify an arbitrary built-in scene property to force a depsgraph + # update, because add-on properties don't. (see T62325) + render = context.scene.render + render.filter_size = render.filter_size + +class CYCLES_PT_sampling_presets(CyclesPresetPanel): bl_label = "Sampling Presets" preset_subdir = "cycles/sampling" - preset_operator = "script.execute_preset" preset_add_operator = "render.cycles_sampling_preset_add" - COMPAT_ENGINES = {'CYCLES'} -class CYCLES_PT_viewport_sampling_presets(PresetPanel, Panel): +class CYCLES_PT_viewport_sampling_presets(CyclesPresetPanel): bl_label = "Viewport Sampling Presets" preset_subdir = "cycles/viewport_sampling" - preset_operator = "script.execute_preset" preset_add_operator = "render.cycles_viewport_sampling_preset_add" - COMPAT_ENGINES = {'CYCLES'} -class CYCLES_PT_integrator_presets(PresetPanel, Panel): +class CYCLES_PT_integrator_presets(CyclesPresetPanel): bl_label = "Integrator Presets" preset_subdir = "cycles/integrator" - preset_operator = "script.execute_preset" preset_add_operator = "render.cycles_integrator_preset_add" - COMPAT_ENGINES = {'CYCLES'} class CyclesButtonsPanel: -- cgit v1.2.3