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>2010-02-12 14:34:25 +0300
committerCampbell Barton <ideasman42@gmail.com>2010-02-12 14:34:25 +0300
commit912fdcacab3bcfb927696f92b4b36bb53452c6f2 (patch)
tree91c6e40aaf4bcd118da09013db88ee08ead31f01 /release
parent9e652ce6bb3e8d18906bcf71f58104278bb03365 (diff)
button to save edited textures in texture paint
Diffstat (limited to 'release')
-rw-r--r--release/scripts/op/image.py44
-rw-r--r--release/scripts/ui/space_view3d.py34
2 files changed, 63 insertions, 15 deletions
diff --git a/release/scripts/op/image.py b/release/scripts/op/image.py
new file mode 100644
index 00000000000..f38385de994
--- /dev/null
+++ b/release/scripts/op/image.py
@@ -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
diff --git a/release/scripts/ui/space_view3d.py b/release/scripts/ui/space_view3d.py
index e33234a153c..2718bf37db2 100644
--- a/release/scripts/ui/space_view3d.py
+++ b/release/scripts/ui/space_view3d.py
@@ -65,21 +65,25 @@ class VIEW3D_HT_header(bpy.types.Header):
row_sub.prop(toolsettings, "mesh_selection_mode", text="", index=2, icon='FACESEL')
'''
-
- # Particle edit
- if obj and obj.mode == 'PARTICLE_EDIT':
- row.prop(toolsettings.particle_edit, "selection_mode", text="", expand=True, toggle=True)
-
- # 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 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)
+ if obj:
+ # Particle edit
+ if 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="")
+
+ # 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")
# Snap
row = layout.row(align=True)