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
diff options
context:
space:
mode:
Diffstat (limited to 'release/scripts/startup/bl_operators/presets.py')
-rw-r--r--release/scripts/startup/bl_operators/presets.py150
1 files changed, 70 insertions, 80 deletions
diff --git a/release/scripts/startup/bl_operators/presets.py b/release/scripts/startup/bl_operators/presets.py
index c696c38dac6..5c1ca0ab2ad 100644
--- a/release/scripts/startup/bl_operators/presets.py
+++ b/release/scripts/startup/bl_operators/presets.py
@@ -19,9 +19,15 @@
# <pep8 compliant>
import bpy
-from bpy.types import Menu, Operator
+from bpy.types import Menu, Operator, Panel, WindowManager
from bpy.props import StringProperty, BoolProperty
+# For preset popover menu
+WindowManager.preset_name = StringProperty(
+ name="Preset Name",
+ description="Name for new preset",
+ default="New Preset"
+)
class AddPresetBase:
"""Base preset class, only for subclassing
@@ -40,6 +46,10 @@ class AddPresetBase:
maxlen=64,
options={'SKIP_SAVE'},
)
+ remove_name = BoolProperty(
+ default=False,
+ options={'HIDDEN', 'SKIP_SAVE'},
+ )
remove_active = BoolProperty(
default=False,
options={'HIDDEN', 'SKIP_SAVE'},
@@ -48,6 +58,7 @@ class AddPresetBase:
# needed for mix-ins
order = [
"name",
+ "remove_name",
"remove_active",
]
@@ -85,11 +96,17 @@ class AddPresetBase:
else:
ext = ".py"
- if not self.remove_active:
- name = self.name.strip()
+ name = self.name.strip()
+ if not (self.remove_name or self.remove_active):
+
if not name:
return {'FINISHED'}
+ # Reset preset name
+ wm = bpy.data.window_managers[0]
+ if name == wm.preset_name:
+ wm.preset_name = 'New Preset'
+
filename = self.as_filename(name)
target_path = os.path.join("presets", self.preset_subdir)
@@ -155,15 +172,16 @@ class AddPresetBase:
preset_menu_class.bl_label = bpy.path.display_name(filename)
else:
- preset_active = preset_menu_class.bl_label
+ if self.remove_active:
+ name = preset_menu_class.bl_label
# fairly sloppy but convenient.
- filepath = bpy.utils.preset_find(preset_active,
+ filepath = bpy.utils.preset_find(name,
self.preset_subdir,
ext=ext)
if not filepath:
- filepath = bpy.utils.preset_find(preset_active,
+ filepath = bpy.utils.preset_find(name,
self.preset_subdir,
display_name=True,
ext=ext)
@@ -194,7 +212,7 @@ class AddPresetBase:
self.name = self.as_filename(self.name.strip())
def invoke(self, context, event):
- if not self.remove_active:
+ if not (self.remove_active or self.remove_name):
wm = context.window_manager
return wm.invoke_props_dialog(self)
else:
@@ -241,18 +259,51 @@ class ExecutePreset(Operator):
return {'FINISHED'}
+class PresetMenu(Panel):
+ bl_space_type = 'PROPERTIES'
+ bl_region_type = 'HEADER'
+ bl_label = "Presets"
+ path_menu = Menu.path_menu
+
+ @classmethod
+ def draw_panel_header(cls, layout):
+ layout.emboss = 'NONE'
+ layout.popover(cls.bl_space_type,
+ cls.bl_region_type,
+ cls.__name__,
+ icon='PRESET',
+ text='')
+
+ @classmethod
+ def draw_menu(cls, layout, text=None):
+ if text == None:
+ text = cls.bl_label
+
+ layout.popover(cls.bl_space_type,
+ cls.bl_region_type,
+ cls.__name__,
+ icon='PRESET',
+ text=text)
+
+ def draw(self, context):
+ layout = self.layout
+ layout.emboss = 'PULLDOWN_MENU'
+ layout.operator_context = 'EXEC_DEFAULT'
+
+ Menu.draw_preset(self, context)
+
+
class AddPresetRender(AddPresetBase, Operator):
"""Add or remove a Render Preset"""
bl_idname = "render.preset_add"
bl_label = "Add Render Preset"
- preset_menu = "RENDER_MT_presets"
+ preset_menu = "RENDER_PT_presets"
preset_defines = [
"scene = bpy.context.scene"
]
preset_values = [
- "scene.render.field_order",
"scene.render.fps",
"scene.render.fps_base",
"scene.render.pixel_aspect_x",
@@ -260,8 +311,6 @@ class AddPresetRender(AddPresetBase, Operator):
"scene.render.resolution_percentage",
"scene.render.resolution_x",
"scene.render.resolution_y",
- "scene.render.use_fields",
- "scene.render.use_fields_still",
]
preset_subdir = "render"
@@ -271,7 +320,7 @@ class AddPresetCamera(AddPresetBase, Operator):
"""Add or remove a Camera Preset"""
bl_idname = "camera.preset_add"
bl_label = "Add Camera Preset"
- preset_menu = "CAMERA_MT_presets"
+ preset_menu = "CAMERA_PT_presets"
preset_defines = [
"cam = bpy.context.camera"
@@ -302,7 +351,7 @@ class AddPresetSafeAreas(AddPresetBase, Operator):
"""Add or remove a Safe Areas Preset"""
bl_idname = "safe_areas.preset_add"
bl_label = "Add Safe Area Preset"
- preset_menu = "SAFE_AREAS_MT_presets"
+ preset_menu = "SAFE_AREAS_PT_presets"
preset_defines = [
"safe_areas = bpy.context.scene.safe_areas"
@@ -318,39 +367,11 @@ class AddPresetSafeAreas(AddPresetBase, Operator):
preset_subdir = "safe_areas"
-class AddPresetSSS(AddPresetBase, Operator):
- """Add or remove a Subsurface Scattering Preset"""
- bl_idname = "material.sss_preset_add"
- bl_label = "Add SSS Preset"
- preset_menu = "MATERIAL_MT_sss_presets"
-
- preset_defines = [
- ("material = "
- "bpy.context.material.active_node_material "
- "if bpy.context.material.active_node_material "
- "else bpy.context.material")
- ]
-
- preset_values = [
- "material.subsurface_scattering.back",
- "material.subsurface_scattering.color",
- "material.subsurface_scattering.color_factor",
- "material.subsurface_scattering.error_threshold",
- "material.subsurface_scattering.front",
- "material.subsurface_scattering.ior",
- "material.subsurface_scattering.radius",
- "material.subsurface_scattering.scale",
- "material.subsurface_scattering.texture_factor",
- ]
-
- preset_subdir = "sss"
-
-
class AddPresetCloth(AddPresetBase, Operator):
"""Add or remove a Cloth Preset"""
bl_idname = "cloth.preset_add"
bl_label = "Add Cloth Preset"
- preset_menu = "CLOTH_MT_presets"
+ preset_menu = "CLOTH_PT_presets"
preset_defines = [
"cloth = bpy.context.cloth"
@@ -372,7 +393,7 @@ class AddPresetFluid(AddPresetBase, Operator):
"""Add or remove a Fluid Preset"""
bl_idname = "fluid.preset_add"
bl_label = "Add Fluid Preset"
- preset_menu = "FLUID_MT_presets"
+ preset_menu = "FLUID_PT_presets"
preset_defines = [
"fluid = bpy.context.fluid"
@@ -390,7 +411,7 @@ class AddPresetHairDynamics(AddPresetBase, Operator):
"""Add or remove a Hair Dynamics Preset"""
bl_idname = "particle.hair_dynamics_preset_add"
bl_label = "Add Hair Dynamics Preset"
- preset_menu = "PARTICLE_MT_hair_dynamics_presets"
+ preset_menu = "PARTICLE_PT_hair_dynamics_presets"
preset_defines = [
"psys = bpy.context.particle_system",
@@ -416,35 +437,6 @@ class AddPresetHairDynamics(AddPresetBase, Operator):
]
-class AddPresetSunSky(AddPresetBase, Operator):
- """Add or remove a Sky & Atmosphere Preset"""
- bl_idname = "lamp.sunsky_preset_add"
- bl_label = "Add Sunsky Preset"
- preset_menu = "LAMP_MT_sunsky_presets"
-
- preset_defines = [
- "sky = bpy.context.lamp.sky"
- ]
-
- preset_values = [
- "sky.atmosphere_extinction",
- "sky.atmosphere_inscattering",
- "sky.atmosphere_turbidity",
- "sky.backscattered_light",
- "sky.horizon_brightness",
- "sky.spread",
- "sky.sun_brightness",
- "sky.sun_intensity",
- "sky.sun_size",
- "sky.sky_blend",
- "sky.sky_blend_type",
- "sky.sky_color_space",
- "sky.sky_exposure",
- ]
-
- preset_subdir = "sunsky"
-
-
class AddPresetInteraction(AddPresetBase, Operator):
"""Add or remove an Application Interaction Preset"""
bl_idname = "wm.interaction_preset_add"
@@ -475,7 +467,7 @@ class AddPresetTrackingCamera(AddPresetBase, Operator):
"""Add or remove a Tracking Camera Intrinsics Preset"""
bl_idname = "clip.camera_preset_add"
bl_label = "Add Camera Preset"
- preset_menu = "CLIP_MT_camera_presets"
+ preset_menu = "CLIP_PT_camera_presets"
preset_defines = [
"camera = bpy.context.edit_movieclip.tracking.camera"
@@ -509,7 +501,7 @@ class AddPresetTrackingTrackColor(AddPresetBase, Operator):
"""Add or remove a Clip Track Color Preset"""
bl_idname = "clip.track_color_preset_add"
bl_label = "Add Track Color Preset"
- preset_menu = "CLIP_MT_track_color_presets"
+ preset_menu = "CLIP_PT_track_color_presets"
preset_defines = [
"track = bpy.context.edit_movieclip.tracking.tracks.active"
@@ -527,7 +519,7 @@ class AddPresetTrackingSettings(AddPresetBase, Operator):
"""Add or remove a motion tracking settings preset"""
bl_idname = "clip.tracking_settings_preset_add"
bl_label = "Add Tracking Settings Preset"
- preset_menu = "CLIP_MT_tracking_settings_presets"
+ preset_menu = "CLIP_PT_tracking_settings_presets"
preset_defines = [
"settings = bpy.context.edit_movieclip.tracking.settings"
@@ -557,7 +549,7 @@ class AddPresetNodeColor(AddPresetBase, Operator):
"""Add or remove a Node Color Preset"""
bl_idname = "node.node_color_preset_add"
bl_label = "Add Node Color Preset"
- preset_menu = "NODE_MT_node_color_presets"
+ preset_menu = "NODE_PT_node_color_presets"
preset_defines = [
"node = bpy.context.active_node"
@@ -670,7 +662,7 @@ class AddPresetUnitsLength(AddPresetBase, Operator):
"""Add or remove length units preset"""
bl_idname = "scene.units_length_preset_add"
bl_label = "Add Length Units Preset"
- preset_menu = "SCENE_MT_units_length_presets"
+ preset_menu = "SCENE_PT_units_length_presets"
preset_defines = [
"scene = bpy.context.scene"
@@ -695,9 +687,7 @@ classes = (
AddPresetNodeColor,
AddPresetOperator,
AddPresetRender,
- AddPresetSSS,
AddPresetSafeAreas,
- AddPresetSunSky,
AddPresetTrackingCamera,
AddPresetTrackingSettings,
AddPresetTrackingTrackColor,