diff options
author | Arystanbek Dyussenov <arystan.d@gmail.com> | 2010-09-04 22:49:07 +0400 |
---|---|---|
committer | Arystanbek Dyussenov <arystan.d@gmail.com> | 2010-09-04 22:49:07 +0400 |
commit | 90b464d3728d9ed8ec26fdf59058d236b99dbcd9 (patch) | |
tree | e88cab4fb1358e962b19f658064ca8c9f8d29f5b /release/scripts/op/presets.py | |
parent | 08d02dd04d836976b25793bb1d4c6a86b3f924c7 (diff) | |
parent | b0b787ef38f9947b3176642556f5282eb3518f69 (diff) |
COLLADA branch: merge from trunk -r 28015:31610.soc-2009-chingachgook
Diffstat (limited to 'release/scripts/op/presets.py')
-rw-r--r-- | release/scripts/op/presets.py | 120 |
1 files changed, 77 insertions, 43 deletions
diff --git a/release/scripts/op/presets.py b/release/scripts/op/presets.py index 1a8e57f7c32..4d15d94f408 100644 --- a/release/scripts/op/presets.py +++ b/release/scripts/op/presets.py @@ -22,13 +22,13 @@ import bpy import os -class AddPresetBase(bpy.types.Operator): +class AddPresetBase(): '''Base preset class, only for subclassing subclasses must define - preset_values - preset_subdir ''' - bl_idname = "render.preset_add" - bl_label = "Add Render Preset" + # bl_idname = "script.preset_base_add" + # bl_label = "Add a Python Preset" name = bpy.props.StringProperty(name="Name", description="Name of the preset, used to make the path name", maxlen=64, default="") @@ -46,14 +46,18 @@ class AddPresetBase(bpy.types.Operator): target_path = bpy.utils.preset_paths(self.preset_subdir)[0] # we need some way to tell the user and system preset path - file_preset = open(os.path.join(target_path, filename), 'w') + filepath = os.path.join(target_path, filename) + if getattr(self, "save_keyconfig", False): + bpy.ops.wm.keyconfig_export(filepath=filepath, kc_name=self.properties.name) + file_preset = open(filepath, 'a') + file_preset.write("wm.keyconfigs.active = kc\n\n") + else: + file_preset = open(filepath, 'w') + file_preset.write("import bpy\n") for rna_path in self.preset_values: value = eval(rna_path) - if type(value) == str: - value = "'%s'" % value - - file_preset.write("%s = %s\n" % (rna_path, value)) + file_preset.write("%s = %s\n" % (rna_path, repr(value))) file_preset.close() @@ -68,29 +72,48 @@ class AddPresetBase(bpy.types.Operator): return {'RUNNING_MODAL'} -class AddPresetRender(AddPresetBase): +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="") + preset_name = bpy.props.StringProperty(name="Preset Name", description="Name of the Preset being executed", 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): + # change the menu title to the most recently chosen option + preset_class = getattr(bpy.types, self.properties.menu_idname) + preset_class.bl_label = self.properties.preset_name + + # execute the preset using script.python_file_run + bpy.ops.script.python_file_run(filepath=self.properties.filepath) + return {'FINISHED'} + + +class AddPresetRender(AddPresetBase, bpy.types.Operator): '''Add a Render Preset''' bl_idname = "render.preset_add" bl_label = "Add Render Preset" name = AddPresetBase.name preset_values = [ - "bpy.context.scene.render.resolution_x", - "bpy.context.scene.render.resolution_y", - "bpy.context.scene.render.pixel_aspect_x", - "bpy.context.scene.render.pixel_aspect_y", + "bpy.context.scene.render.field_order", "bpy.context.scene.render.fps", "bpy.context.scene.render.fps_base", + "bpy.context.scene.render.pixel_aspect_x", + "bpy.context.scene.render.pixel_aspect_y", "bpy.context.scene.render.resolution_percentage", - "bpy.context.scene.render.fields", - "bpy.context.scene.render.field_order", - "bpy.context.scene.render.fields_still", + "bpy.context.scene.render.resolution_x", + "bpy.context.scene.render.resolution_y", + "bpy.context.scene.render.use_fields", + "bpy.context.scene.render.use_fields_still", ] preset_subdir = "render" -class AddPresetSSS(AddPresetBase): +class AddPresetSSS(AddPresetBase, bpy.types.Operator): '''Add a Subsurface Scattering Preset''' bl_idname = "material.sss_preset_add" bl_label = "Add SSS Preset" @@ -102,7 +125,7 @@ class AddPresetSSS(AddPresetBase): "bpy.context.material.subsurface_scattering.color[1]", "bpy.context.material.subsurface_scattering.color[2]", "bpy.context.material.subsurface_scattering.color_factor", - "bpy.context.material.subsurface_scattering.error_tolerance", + "bpy.context.material.subsurface_scattering.error_threshold", "bpy.context.material.subsurface_scattering.front", "bpy.context.material.subsurface_scattering.ior", "bpy.context.material.subsurface_scattering.radius[0]", @@ -115,66 +138,77 @@ class AddPresetSSS(AddPresetBase): preset_subdir = "sss" -class AddPresetCloth(AddPresetBase): +class AddPresetCloth(AddPresetBase, bpy.types.Operator): '''Add a Cloth Preset''' bl_idname = "cloth.preset_add" bl_label = "Add Cloth Preset" name = AddPresetBase.name preset_values = [ - "bpy.context.cloth.settings.quality", - "bpy.context.cloth.settings.mass", - "bpy.context.cloth.settings.structural_stiffness", + "bpy.context.cloth.settings.air_damping", "bpy.context.cloth.settings.bending_stiffness", + "bpy.context.cloth.settings.mass", + "bpy.context.cloth.settings.quality", "bpy.context.cloth.settings.spring_damping", - "bpy.context.cloth.settings.air_damping", + "bpy.context.cloth.settings.structural_stiffness", ] preset_subdir = "cloth" -class AddPresetSunSky(AddPresetBase): +class AddPresetSunSky(AddPresetBase, bpy.types.Operator): '''Add a Sky & Atmosphere Preset''' bl_idname = "lamp.sunsky_preset_add" bl_label = "Add Sunsky Preset" name = AddPresetBase.name preset_values = [ + "bpy.context.object.data.sky.atmosphere_extinction", + "bpy.context.object.data.sky.atmosphere_inscattering", "bpy.context.object.data.sky.atmosphere_turbidity", - "bpy.context.object.data.sky.sky_blend_type", - "bpy.context.object.data.sky.sky_blend", + "bpy.context.object.data.sky.backscattered_light", "bpy.context.object.data.sky.horizon_brightness", "bpy.context.object.data.sky.spread", - "bpy.context.object.data.sky.sky_color_space", - "bpy.context.object.data.sky.sky_exposure", "bpy.context.object.data.sky.sun_brightness", - "bpy.context.object.data.sky.sun_size", - "bpy.context.object.data.sky.backscattered_light", "bpy.context.object.data.sky.sun_intensity", - "bpy.context.object.data.sky.atmosphere_inscattering", - "bpy.context.object.data.sky.atmosphere_extinction", + "bpy.context.object.data.sky.sun_size", + "bpy.context.object.data.sky.use_sky_blend", + "bpy.context.object.data.sky.use_sky_blend_type", + "bpy.context.object.data.sky.use_sky_color_space", + "bpy.context.object.data.sky.use_sky_exposure", ] preset_subdir = "sunsky" -classes = [ - AddPresetRender, - AddPresetSSS, - AddPresetCloth, - AddPresetSunSky] +class AddPresetInteraction(AddPresetBase, bpy.types.Operator): + '''Add an Application Interaction Preset''' + bl_idname = "wm.interaction_preset_add" + bl_label = "Add Interaction Preset" + name = AddPresetBase.name + save_keyconfig = True + + preset_values = [ + "bpy.context.user_preferences.edit.use_drag_immediately", + "bpy.context.user_preferences.edit.use_insertkey_xyz_to_rgb", + "bpy.context.user_preferences.inputs.invert_mouse_wheel_zoom", + "bpy.context.user_preferences.inputs.select_mouse", + "bpy.context.user_preferences.inputs.use_emulate_numpad", + "bpy.context.user_preferences.inputs.use_mouse_continuous", + "bpy.context.user_preferences.inputs.use_mouse_emulate_3_button", + "bpy.context.user_preferences.inputs.view_rotate_method", + "bpy.context.user_preferences.inputs.view_zoom_axis", + "bpy.context.user_preferences.inputs.view_zoom_method", + ] + preset_subdir = "interaction" def register(): - register = bpy.types.register - for cls in classes: - register(cls) + pass def unregister(): - unregister = bpy.types.unregister - for cls in classes: - unregister(cls) + pass if __name__ == "__main__": register() |