change python scripts so modules which register with blender have a register() functi...
[blender.git] / release / scripts / op / image.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., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
16 #
17 # ##### END GPL LICENSE BLOCK #####
18
19 # <pep8 compliant>
20
21 import bpy
22
23 class SaveDirty(bpy.types.Operator):
24     '''Select object matching a naming pattern'''
25     bl_idname = "image.save_dirty"
26     bl_label = "Save Dirty"
27     bl_register = True
28     bl_undo = True
29
30     def execute(self, context):
31         unique_paths = set()
32         for image in bpy.data.images:
33             if image.dirty:
34                 path = bpy.utils.expandpath(image.filename)
35                 if "\\" not in path and "/" not in path:
36                     self.report({'WARNING'}, "Invalid path: " + path)
37                 elif path in unique_paths:
38                     self.report({'WARNING'}, "Path used by more then one image: " + path)
39                 else:
40                     unique_paths.add(path)
41                     image.save(path=path)
42         return {'FINISHED'}
43
44
45 def register():
46     bpy.types.register(SaveDirty)
47
48 def unregister():
49     bpy.types.unregister(SaveDirty)