[Bf-extensions-cvs] SVN commit: /data/svn/bf-extensions [3069] contrib/py/scripts/addons/ object_edit_linked.py: minor updates
Campbell Barton
ideasman42 at gmail.com
Wed Mar 7 18:32:39 CET 2012
Revision: 3069
http://projects.blender.org/scm/viewvc.php?view=rev&root=bf-extensions&revision=3069
Author: campbellbarton
Date: 2012-03-07 17:32:32 +0000 (Wed, 07 Mar 2012)
Log Message:
-----------
minor updates
- dont store data in bpy.
- no need use "//" on its own for abspath() calls.
Modified Paths:
--------------
contrib/py/scripts/addons/object_edit_linked.py
Modified: contrib/py/scripts/addons/object_edit_linked.py
===================================================================
--- contrib/py/scripts/addons/object_edit_linked.py 2012-03-07 08:50:00 UTC (rev 3068)
+++ contrib/py/scripts/addons/object_edit_linked.py 2012-03-07 17:32:32 UTC (rev 3069)
@@ -33,26 +33,26 @@
import bpy
from bpy.app.handlers import persistent
+settings = {
+ "original_file": "",
+ "linked_file": "",
+ "linked_objects": [],
+ }
-bpy.original_file = ""
-bpy.linked_file = ""
-bpy.linked_objects = []
-
-
@persistent
def linked_file_check(context):
- if bpy.linked_file != "":
- if bpy.linked_file == bpy.data.filepath or bpy.linked_file == bpy.path.abspath("//") + bpy.data.filepath[2:]:
+ if settings["linked_file"] != "":
+ if settings["linked_file"] in {bpy.data.filepath, bpy.path.abspath(bpy.data.filepath)}:
print("Editing a linked library.")
bpy.ops.object.select_all(action = 'DESELECT')
- for ob in bpy.linked_objects:
- bpy.data.objects[ob].select = True
- if len(bpy.linked_objects) == 1:
- bpy.context.scene.objects.active = bpy.data.objects[bpy.linked_objects[0]]
+ for ob_name in settings["linked_objects"]:
+ bpy.data.objects[ob_name].select = True
+ if len(settings["linked_objects"]) == 1:
+ bpy.context.scene.objects.active = bpy.data.objects[settings["linked_objects"][0]]
else:
# For some reason, the linked editing session ended (failed to find a file or opened a different file before returning to the originating .blend)
- bpy.original_file = ""
- bpy.linked_file = ""
+ settings["original_file"] = ""
+ settings["linked_file"] = ""
@@ -73,11 +73,10 @@
if target.dupli_group and target.dupli_group.library:
targetpath = target.dupli_group.library.filepath
- for ob in target.dupli_group.objects:
- bpy.linked_objects.append(ob.name)
+ settings["linked_objects"].extend([ob.name for ob in target.dupli_group.objects])
elif target.library:
targetpath = target.library.filepath
- bpy.linked_objects.append(target.name)
+ settings["linked_objects"].append(target.name)
if targetpath:
print(target.name + " is linked to " + targetpath)
@@ -85,15 +84,12 @@
if self.properties.autosave == True:
bpy.ops.wm.save_mainfile()
- bpy.original_file = bpy.data.filepath
+ settings["original_file"] = bpy.data.filepath
# XXX: need to test for proxied rigs
- if targetpath[:2] == "//": #Relative path
- bpy.linked_file = bpy.path.abspath("//") + targetpath[2:]
- else: #Absolute path
- bpy.linked_file = targetpath
+ settings["linked_file"] = bpy.path.abspath(targetpath)
- bpy.ops.wm.open_mainfile(filepath = bpy.linked_file)
+ bpy.ops.wm.open_mainfile(filepath=settings["linked_file"])
print("Opened linked file!")
else:
self.report({'WARNING'}, target.name + " is not linked")
@@ -117,9 +113,9 @@
def execute(self, context):
if self.properties.autosave == True:
bpy.ops.wm.save_mainfile()
- bpy.ops.wm.open_mainfile(filepath=bpy.original_file)
- bpy.original_file = ""
- bpy.linked_objects = []
+ bpy.ops.wm.open_mainfile(filepath=settings["original_file"])
+ settings["original_file"] = ""
+ settings["linked_objects"] = []
print("Back to the original!")
return {'FINISHED'}
@@ -138,12 +134,12 @@
kmi_edit = km.keymap_items["object.edit_linked"]
kmi_return = km.keymap_items["wm.return_to_original"]
- if bpy.original_file == "" and ((context.active_object.dupli_group and context.active_object.dupli_group.library is not None) or context.active_object.library is not None):
+ if settings["original_file"] == "" and ((context.active_object.dupli_group and context.active_object.dupli_group.library is not None) or context.active_object.library is not None):
kmi_edit.active = True
kmi_return.active = False
self.layout.operator("object.edit_linked").autosave = context.scene.edit_linked_autosave
self.layout.prop(context.scene, "edit_linked_autosave")
- elif bpy.original_file != "":
+ elif settings["original_file"] != "":
kmi_edit.active = False
kmi_return.active = True
self.layout.operator("wm.return_to_original").autosave = context.scene.edit_linked_autosave
More information about the Bf-extensions-cvs
mailing list