Welcome to mirror list, hosted at ThFree Co, Russian Federation.

git.blender.org/blender.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
path: root/intern
diff options
context:
space:
mode:
authorBrecht Van Lommel <brechtvanlommel@gmail.com>2018-04-27 14:50:26 +0300
committerBrecht Van Lommel <brechtvanlommel@gmail.com>2018-06-13 16:22:34 +0300
commit7a10cfe7fe01bbeb7588239a9fd743ecc6af6c39 (patch)
tree05b5b281f0aef36fc27bcaf4b8b9aa9e14d193e3 /intern
parent1664ccb6752adf1bcf326b72d1230aa9b667a1fb (diff)
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
Diffstat (limited to 'intern')
-rw-r--r--intern/cycles/blender/addon/ui.py31
1 files changed, 12 insertions, 19 deletions
diff --git a/intern/cycles/blender/addon/ui.py b/intern/cycles/blender/addon/ui.py
index c514ec1704e..c5eafe9ebfb 100644
--- a/intern/cycles/blender/addon/ui.py
+++ b/intern/cycles/blender/addon/ui.py
@@ -18,6 +18,7 @@
import bpy
from bpy_extras.node_utils import find_node_input, find_output_node
+from bl_operators.presets import PresetMenu
from bpy.types import (
Panel,
@@ -26,20 +27,20 @@ from bpy.types import (
)
-class CYCLES_MT_sampling_presets(Menu):
+class CYCLES_MT_sampling_presets(PresetMenu):
bl_label = "Sampling Presets"
preset_subdir = "cycles/sampling"
preset_operator = "script.execute_preset"
+ preset_add_operator = "render.cycles_sampling_preset_add"
COMPAT_ENGINES = {'CYCLES'}
- draw = Menu.draw_preset
-class CYCLES_MT_integrator_presets(Menu):
+class CYCLES_MT_integrator_presets(PresetMenu):
bl_label = "Integrator Presets"
preset_subdir = "cycles/integrator"
preset_operator = "script.execute_preset"
+ preset_add_operator = "render.cycles_integrator_preset_add"
COMPAT_ENGINES = {'CYCLES'}
- draw = Menu.draw_preset
class CyclesButtonsPanel:
@@ -144,6 +145,9 @@ class CYCLES_RENDER_PT_sampling(CyclesButtonsPanel, Panel):
bl_label = "Sampling"
bl_options = {'DEFAULT_CLOSED'}
+ def draw_header_preset(self, context):
+ CYCLES_MT_sampling_presets.draw_panel_header(self.layout)
+
def draw(self, context):
layout = self.layout
layout.use_property_split = False
@@ -151,11 +155,6 @@ class CYCLES_RENDER_PT_sampling(CyclesButtonsPanel, Panel):
scene = context.scene
cscene = scene.cycles
- row = layout.row(align=True)
- row.menu("CYCLES_MT_sampling_presets", text=bpy.types.CYCLES_MT_sampling_presets.bl_label)
- row.operator("render.cycles_sampling_preset_add", text="", icon="ZOOMIN")
- row.operator("render.cycles_sampling_preset_add", text="", icon="ZOOMOUT").remove_active = True
-
layout.use_property_split = True
layout.prop(cscene, "progressive")
@@ -315,17 +314,11 @@ class CYCLES_RENDER_PT_light_paths(CyclesButtonsPanel, Panel):
bl_label = "Light Paths"
bl_options = {'DEFAULT_CLOSED'}
- def draw(self, context):
- layout = self.layout
- layout.use_property_split = True
-
- scene = context.scene
- cscene = scene.cycles
+ def draw_header_preset(self, context):
+ CYCLES_MT_integrator_presets.draw_panel_header(self.layout)
- row = layout.row(align=True)
- row.menu("CYCLES_MT_integrator_presets", text=bpy.types.CYCLES_MT_integrator_presets.bl_label)
- row.operator("render.cycles_integrator_preset_add", text="", icon="ZOOMIN")
- row.operator("render.cycles_integrator_preset_add", text="", icon="ZOOMOUT").remove_active = True
+ def draw(self, context):
+ pass
class CYCLES_RENDER_PT_light_paths_max_bounces(CyclesButtonsPanel, Panel):