Fixed minor sound UI errors.
[blender.git] / release / scripts / op / preset_sss.py
1 # ##### BEGIN GPL LICENSE BLOCK #####
2 #
3 #  This program is free software; you can redistribute it and/or
4 #  modify it under the terms of the GNU General Public License
5 #  as published by the Free Software Foundation; either version 2
6 #  of the License, or (at your option) any later version.
7
8 #  This program is distributed in the hope that it will be useful,
9 #  but WITHOUT ANY WARRANTY; without even the implied warranty of
10 #  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
11 #  GNU General Public License for more details.
12
13 #  You should have received a copy of the GNU General Public License
14 #  along with this program; if not, write to the Free Software Foundation,
15 #  Inc., 59 Temple Place - Suite 330, Boston, MA  02111-1307, USA.
16 #
17 # ##### END GPL LICENSE BLOCK #####
18
19 import bpy
20 import os
21
22 class AddPreset(bpy.types.Operator):
23     '''Add a Subsurface Scattering Preset'''
24     bl_idname = "sss.preset_add"
25     bl_label = "Add Subsurface Scattering Preset"
26     
27     name = bpy.props.StringProperty(name="Name", description="Name of the preset, used to make the path name", maxlen= 64, default= "New Preset")
28     
29     _preset_values = [
30         "bpy.context.active_object.active_material.subsurface_scattering.radius",
31         "bpy.context.active_object.active_material.subsurface_scattering.color",
32     ]
33     
34     _last_preset = "" # hack to avoid remaking
35     
36     def _as_filename(self, name): # could reuse for other presets
37         for char in " !@#$%^&*(){}:\";'[]<>,./?":
38             name = name.replace('.', '_')
39         return name.lower()
40
41     def execute(self, context):
42         filename = self._as_filename(self.properties.name) + ".py"
43         
44         target_path = os.path.join(os.path.dirname(__file__), os.path.pardir, "presets", "sss", filename)
45         print(target_path)
46         file_preset = open(target_path, 'w')
47         
48         for rna_path in self._preset_values:
49             file_preset.write("%s = %s\n" % (rna_path, eval(rna_path)))
50         
51         file_preset.close()
52         
53         return ('FINISHED',)
54
55     def invoke(self, context, event):
56         wm = context.manager
57         wm.invoke_props_popup(self, event)
58         return ('RUNNING_MODAL',)
59
60 bpy.ops.add(AddPreset)