From e96187250e6b570432ddb88b761171c2afc88c44 Mon Sep 17 00:00:00 2001 From: Campbell Barton Date: Fri, 4 May 2012 17:39:37 +0000 Subject: [PATCH] fix [#31136] Save All Edited only works for Saved external image, not New or Packed image (bpy.ops.image.save_dirty) --- release/scripts/startup/bl_operators/image.py | 26 ++++++++++++------- 1 file changed, 17 insertions(+), 9 deletions(-) diff --git a/release/scripts/startup/bl_operators/image.py b/release/scripts/startup/bl_operators/image.py index 1b7d5e3a40d..6af6488e86b 100644 --- a/release/scripts/startup/bl_operators/image.py +++ b/release/scripts/startup/bl_operators/image.py @@ -118,16 +118,24 @@ class SaveDirty(Operator): unique_paths = set() for image in bpy.data.images: if image.is_dirty: - filepath = bpy.path.abspath(image.filepath) - if "\\" not in filepath and "/" not in filepath: - self.report({'WARNING'}, "Invalid path: " + filepath) - elif filepath in unique_paths: - self.report({'WARNING'}, - "Path used by more then one image: %r" % - filepath) + if image.packed_file: + if image.library: + self.report({'WARNING'}, + "Packed library image: %r from library %r can't be re-packed" % + (image.name, image.library.filepath)) + else: + image.pack(as_png=True) else: - unique_paths.add(filepath) - image.save() + filepath = bpy.path.abspath(image.filepath, library=image.library) + if "\\" not in filepath and "/" not in filepath: + self.report({'WARNING'}, "Invalid path: " + filepath) + elif filepath in unique_paths: + self.report({'WARNING'}, + "Path used by more then one image: %r" % + filepath) + else: + unique_paths.add(filepath) + image.save() return {'FINISHED'}