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:
authorCampbell Barton <ideasman42@gmail.com>2011-03-21 15:35:49 +0300
committerCampbell Barton <ideasman42@gmail.com>2011-03-21 15:35:49 +0300
commit2e6a02438e997f1024f3ba6c332314f09f01a3b4 (patch)
tree7b9427c972858a2b0950b0328bb500f11294161b /release/scripts/op/presets.py
parent28d39473fc65543cbf3adc44964d4a9703d3076a (diff)
move script directories for internal blender scripts.
ui/ --> startup/bl_ui op/ --> startup/bl_operators scripts/startup/ is now the only auto-loading script dir which gives some speedup for blender loading too. ~/.blender/2.56/scripts/startup works for auto-loading scripts too.
Diffstat (limited to 'release/scripts/op/presets.py')
-rw-r--r--release/scripts/op/presets.py364
1 files changed, 0 insertions, 364 deletions
diff --git a/release/scripts/op/presets.py b/release/scripts/op/presets.py
deleted file mode 100644
index 65653aeee3e..00000000000
--- a/release/scripts/op/presets.py
+++ /dev/null
@@ -1,364 +0,0 @@
-# ##### BEGIN GPL LICENSE BLOCK #####
-#
-# This program is free software; you can redistribute it and/or
-# modify it under the terms of the GNU General Public License
-# as published by the Free Software Foundation; either version 2
-# of the License, or (at your option) any later version.
-#
-# This program is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-# GNU General Public License for more details.
-#
-# You should have received a copy of the GNU General Public License
-# along with this program; if not, write to the Free Software Foundation,
-# Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
-#
-# ##### END GPL LICENSE BLOCK #####
-
-# <pep8 compliant>
-
-import bpy
-import os
-
-
-class AddPresetBase():
- '''Base preset class, only for subclassing
- subclasses must define
- - preset_values
- - preset_subdir '''
- # bl_idname = "script.preset_base_add"
- # bl_label = "Add a Python Preset"
- bl_options = {'REGISTER'} # only because invoke_props_popup requires.
-
- name = bpy.props.StringProperty(name="Name", description="Name of the preset, used to make the path name", maxlen=64, default="")
- remove_active = bpy.props.BoolProperty(default=False, options={'HIDDEN'})
-
- @staticmethod
- def as_filename(name): # could reuse for other presets
- for char in " !@#$%^&*(){}:\";'[]<>,.\\/?":
- name = name.replace(char, '_')
- return name.lower().strip()
-
- def execute(self, context):
- import os
-
- if hasattr(self, "pre_cb"):
- self.pre_cb(context)
-
- preset_menu_class = getattr(bpy.types, self.preset_menu)
-
- if not self.remove_active:
-
- if not self.name:
- return {'FINISHED'}
-
- filename = self.as_filename(self.name)
-
- target_path = bpy.utils.user_resource('SCRIPTS', os.path.join("presets", self.preset_subdir), create=True)
-
- if not target_path:
- self.report({'WARNING'}, "Failed to create presets path")
- return {'CANCELLED'}
-
- filepath = os.path.join(target_path, filename) + ".py"
-
- if hasattr(self, "add"):
- self.add(context, filepath)
- else:
- file_preset = open(filepath, 'w')
- file_preset.write("import bpy\n")
-
- if hasattr(self, "preset_defines"):
- for rna_path in self.preset_defines:
- exec(rna_path)
- file_preset.write("%s\n" % rna_path)
- file_preset.write("\n")
-
- for rna_path in self.preset_values:
- value = eval(rna_path)
- # convert thin wrapped sequences to simple lists to repr()
- try:
- value = value[:]
- except:
- pass
-
- file_preset.write("%s = %r\n" % (rna_path, value))
-
- file_preset.close()
-
- preset_menu_class.bl_label = bpy.path.display_name(filename)
-
- else:
- preset_active = preset_menu_class.bl_label
-
- # fairly sloppy but convenient.
- filepath = bpy.utils.preset_find(preset_active, self.preset_subdir)
-
- if not filepath:
- filepath = bpy.utils.preset_find(preset_active, self.preset_subdir, display_name=True)
-
- if not filepath:
- return {'CANCELLED'}
-
- if hasattr(self, "remove"):
- self.remove(context, filepath)
- else:
- try:
- os.remove(filepath)
- except:
- import traceback
- traceback.print_exc()
-
- # XXX, stupid!
- preset_menu_class.bl_label = "Presets"
-
- if hasattr(self, "post_cb"):
- self.post_cb(context)
-
- return {'FINISHED'}
-
- def check(self, context):
- self.name = self.as_filename(self.name)
-
- def invoke(self, context, event):
- if not self.remove_active:
- wm = context.window_manager
- return wm.invoke_props_dialog(self)
- else:
- return self.execute(context)
-
-
-class ExecutePreset(bpy.types.Operator):
- ''' Executes a preset '''
- bl_idname = "script.execute_preset"
- bl_label = "Execute a Python Preset"
-
- filepath = bpy.props.StringProperty(name="Path", description="Path of the Python file to execute", maxlen=512, default="")
- menu_idname = bpy.props.StringProperty(name="Menu ID Name", description="ID name of the menu this was called from", default="")
-
- def execute(self, context):
- from os.path import basename
- filepath = self.filepath
-
- # change the menu title to the most recently chosen option
- preset_class = getattr(bpy.types, self.menu_idname)
- preset_class.bl_label = bpy.path.display_name(basename(filepath))
-
- # execute the preset using script.python_file_run
- bpy.ops.script.python_file_run(filepath=filepath)
- return {'FINISHED'}
-
-
-class AddPresetRender(AddPresetBase, bpy.types.Operator):
- '''Add a Render Preset'''
- bl_idname = "render.preset_add"
- bl_label = "Add Render Preset"
- preset_menu = "RENDER_MT_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",
- "scene.render.pixel_aspect_y",
- "scene.render.resolution_percentage",
- "scene.render.resolution_x",
- "scene.render.resolution_y",
- "scene.render.use_fields",
- "scene.render.use_fields_still",
- ]
-
- preset_subdir = "render"
-
-
-class AddPresetSSS(AddPresetBase, bpy.types.Operator):
- '''Add 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, bpy.types.Operator):
- '''Add a Cloth Preset'''
- bl_idname = "cloth.preset_add"
- bl_label = "Add Cloth Preset"
- preset_menu = "CLOTH_MT_presets"
-
- preset_defines = [
- "cloth = bpy.context.cloth"
- ]
-
- preset_values = [
- "cloth.settings.air_damping",
- "cloth.settings.bending_stiffness",
- "cloth.settings.mass",
- "cloth.settings.quality",
- "cloth.settings.spring_damping",
- "cloth.settings.structural_stiffness",
- ]
-
- preset_subdir = "cloth"
-
-
-class AddPresetSunSky(AddPresetBase, bpy.types.Operator):
- '''Add 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.object.data.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.use_sky_blend",
- "sky.use_sky_blend_type",
- "sky.use_sky_color_space",
- "sky.use_sky_exposure",
- ]
-
- preset_subdir = "sunsky"
-
-
-class AddPresetInteraction(AddPresetBase, bpy.types.Operator):
- '''Add an Application Interaction Preset'''
- bl_idname = "wm.interaction_preset_add"
- bl_label = "Add Interaction Preset"
- preset_menu = "USERPREF_MT_interaction_presets"
-
- preset_defines = [
- "user_preferences = bpy.context.user_preferences"
- ]
-
- preset_values = [
- "user_preferences.edit.use_drag_immediately",
- "user_preferences.edit.use_insertkey_xyz_to_rgb",
- "user_preferences.inputs.invert_mouse_wheel_zoom",
- "user_preferences.inputs.select_mouse",
- "user_preferences.inputs.use_emulate_numpad",
- "user_preferences.inputs.use_mouse_continuous",
- "user_preferences.inputs.use_mouse_emulate_3_button",
- "user_preferences.inputs.view_rotate_method",
- "user_preferences.inputs.view_zoom_axis",
- "user_preferences.inputs.view_zoom_method",
- ]
-
- preset_subdir = "interaction"
-
-
-class AddPresetKeyconfig(AddPresetBase, bpy.types.Operator):
- '''Add a Keyconfig Preset'''
- bl_idname = "wm.keyconfig_preset_add"
- bl_label = "Add Keyconfig Preset"
- preset_menu = "USERPREF_MT_keyconfigs"
- preset_subdir = "keyconfig"
-
- def add(self, context, filepath):
- bpy.ops.wm.keyconfig_export(filepath=filepath)
- bpy.utils.keyconfig_set(filepath)
-
- def pre_cb(self, context):
- keyconfigs = bpy.context.window_manager.keyconfigs
- if self.remove_active:
- preset_menu_class = getattr(bpy.types, self.preset_menu)
- preset_menu_class.bl_label = keyconfigs.active.name
-
- def post_cb(self, context):
- keyconfigs = bpy.context.window_manager.keyconfigs
- if self.remove_active:
- keyconfigs.remove(keyconfigs.active)
-
-
-class AddPresetOperator(AddPresetBase, bpy.types.Operator):
- '''Add an Application Interaction Preset'''
- bl_idname = "wm.operator_preset_add"
- bl_label = "Operator Preset"
- preset_menu = "WM_MT_operator_presets"
-
- operator = bpy.props.StringProperty(name="Operator", maxlen=64, options={'HIDDEN'})
-
- # XXX, not ideal
- preset_defines = [
- "op = bpy.context.space_data.operator",
- ]
-
- @property
- def preset_subdir(self):
- return __class__.operator_path(self.operator)
-
- @property
- def preset_values(self):
- properties_blacklist = bpy.types.Operator.bl_rna.properties.keys()
-
- prefix, suffix = self.operator.split("_OT_", 1)
- operator_rna = getattr(getattr(bpy.ops, prefix.lower()), suffix).get_rna().bl_rna
-
- ret = []
- for prop_id, prop in operator_rna.properties.items():
- if (not prop.is_hidden) and prop_id not in properties_blacklist:
- ret.append("op.%s" % prop_id)
-
- return ret
-
- @staticmethod
- def operator_path(operator):
- import os
- prefix, suffix = operator.split("_OT_", 1)
- return os.path.join("operator", "%s.%s" % (prefix.lower(), suffix))
-
-
-class WM_MT_operator_presets(bpy.types.Menu):
- bl_label = "Operator Presets"
-
- def draw(self, context):
- self.operator = context.space_data.operator.bl_idname
- bpy.types.Menu.draw_preset(self, context)
-
- @property
- def preset_subdir(self):
- return AddPresetOperator.operator_path(self.operator)
-
- preset_operator = "script.execute_preset"
-
-
-def register():
- bpy.utils.register_module(__name__)
-
-
-def unregister():
- bpy.utils.unregister_module(__name__)
-
-if __name__ == "__main__":
- register()