[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [26836] trunk/blender/release/scripts: button to save edited textures in texture paint

Campbell Barton ideasman42 at gmail.com
Fri Feb 12 12:34:25 CET 2010


Revision: 26836
          http://projects.blender.org/plugins/scmsvn/viewcvs.php?view=rev&root=bf-blender&revision=26836
Author:   campbellbarton
Date:     2010-02-12 12:34:25 +0100 (Fri, 12 Feb 2010)

Log Message:
-----------
button to save edited textures in texture paint

Modified Paths:
--------------
    trunk/blender/release/scripts/ui/space_view3d.py

Added Paths:
-----------
    trunk/blender/release/scripts/op/image.py

Added: trunk/blender/release/scripts/op/image.py
===================================================================
--- trunk/blender/release/scripts/op/image.py	                        (rev 0)
+++ trunk/blender/release/scripts/op/image.py	2010-02-12 11:34:25 UTC (rev 26836)
@@ -0,0 +1,44 @@
+# ##### 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., 59 Temple Place - Suite 330, Boston, MA  02111-1307, USA.
+#
+# ##### END GPL LICENSE BLOCK #####
+
+# <pep8 compliant>
+
+import bpy
+
+class SaveDirty(bpy.types.Operator):
+    '''Select object matching a naming pattern'''
+    bl_idname = "image.save_dirty"
+    bl_label = "Save Dirty"
+    bl_register = True
+    bl_undo = True
+
+    def execute(self, context):
+        unique_paths = set()
+        for image in bpy.data.images:
+            if image.dirty:
+                path = bpy.utils.expandpath(image.filename)
+                if "\\" not in path and "/" not in path:
+                    self.report({'WARNING'}, "Invalid path: " + path)
+                elif path in unique_paths:
+                    self.report({'WARNING'}, "Path used by more then one image: " + path)
+                else:
+                    unique_paths.add(path)
+                    image.save(path=path)
+        return {'FINISHED'}
+
+bpy.types.register(SaveDirty)
\ No newline at end of file


Property changes on: trunk/blender/release/scripts/op/image.py
___________________________________________________________________
Name: svn:keywords
   + Author Date Id Revision
Name: svn:eol-style
   + native

Modified: trunk/blender/release/scripts/ui/space_view3d.py
===================================================================
--- trunk/blender/release/scripts/ui/space_view3d.py	2010-02-12 11:03:41 UTC (rev 26835)
+++ trunk/blender/release/scripts/ui/space_view3d.py	2010-02-12 11:34:25 UTC (rev 26836)
@@ -65,22 +65,26 @@
             row_sub.prop(toolsettings, "mesh_selection_mode", text="", index=2, icon='FACESEL')
         '''
 
+        if obj:
+            # Particle edit
+            if obj.mode == 'PARTICLE_EDIT':
+                row.prop(toolsettings.particle_edit, "selection_mode", text="", expand=True, toggle=True)
 
-        # Particle edit
-        if obj and obj.mode == 'PARTICLE_EDIT':
-            row.prop(toolsettings.particle_edit, "selection_mode", text="", expand=True, toggle=True)
+            # Occlude geometry
+            if view.viewport_shading in ('SOLID', 'SHADED', 'TEXTURED') and (obj.mode == 'PARTICLE_EDIT' or (obj.mode == 'EDIT' and obj.type == 'MESH')):
+                row.prop(view, "occlude_geometry", text="")
 
-        # Occlude geometry
-        if obj and view.viewport_shading in ('SOLID', 'SHADED', 'TEXTURED') and (obj.mode == 'PARTICLE_EDIT' or (obj.mode == 'EDIT' and obj.type == 'MESH')):
-            row.prop(view, "occlude_geometry", text="")
+            # Proportional editing
+            if obj.mode in ('OBJECT', 'EDIT', 'PARTICLE_EDIT'):
+                row = layout.row(align=True)
+                row.prop(toolsettings, "proportional_editing", text="", icon_only=True)
+                if toolsettings.proportional_editing != 'DISABLED':
+                    row.prop(toolsettings, "proportional_editing_falloff", text="", icon_only=True)
+            
+            # paint save
+            if mode_string == 'PAINT_TEXTURE':
+                row.operator("image.save_dirty", text="Save Edited")
 
-        # Proportional editing
-        if obj and obj.mode in ('OBJECT', 'EDIT', 'PARTICLE_EDIT'):
-            row = layout.row(align=True)
-            row.prop(toolsettings, "proportional_editing", text="", icon_only=True)
-            if toolsettings.proportional_editing != 'DISABLED':
-                row.prop(toolsettings, "proportional_editing_falloff", text="", icon_only=True)
-
         # Snap
         row = layout.row(align=True)
         row.prop(toolsettings, "snap", text="")





More information about the Bf-blender-cvs mailing list