From b2948ae5fa060f6891d7edfefbee3c9f37394027 Mon Sep 17 00:00:00 2001 From: Jason van Gumster <fweeb@monsterjavaguns.com> Date: Mon, 24 May 2021 16:50:06 -0400 Subject: [PATCH] Attempt to address T67111. If you have a relative path (e.g. //../objects/object.blend) and you use bpy.path.abspath, it leaves the relative part (the double dots) as part of the path (e.g. ~/some_project/scenes/../objects/object.blend). While Windows is perfectly happy to open files with this kind of path, it seems to get confused about paths that are relative to that. The fix is to wrap the bpy.path.abspath function with os.path.abspath and everything appears to remain sane. Also introduced a small fix for the new linked node groups feature; in 2.93, the Item tab in the sidebar has been renamed to Node. --- object_edit_linked.py | 15 ++++++++++----- 1 file changed, 10 insertions(+), 5 deletions(-) diff --git a/object_edit_linked.py b/object_edit_linked.py index f27fb82e3..95b4ec528 100644 --- a/object_edit_linked.py +++ b/object_edit_linked.py @@ -22,8 +22,8 @@ bl_info = { "author": "Jason van Gumster (Fweeb), Bassam Kurdali, Pablo Vazquez, Rainer Trummer", "version": (0, 9, 2), "blender": (2, 80, 0), - "location": "File > External Data / View3D > Sidebar > Item Tab", - "description": "Allows editing of assets linked from a .blend library.", + "location": "File > External Data / View3D > Sidebar > Item Tab / Node Editor > Sidebar > Node Tab", + "description": "Allows editing of objects, collections, and node groups linked from a .blend library.", "doc_url": "{BLENDER_MANUAL_URL}/addons/object/edit_linked_library.html", "category": "Object", } @@ -110,7 +110,8 @@ class OBJECT_OT_EditLinked(bpy.types.Operator): bpy.ops.wm.save_mainfile() settings["original_file"] = bpy.data.filepath - settings["linked_file"] = bpy.path.abspath(targetpath) + # Using both bpy and os abspath functions because Windows doesn't like relative routes as part of an absolute path + settings["linked_file"] = os.path.abspath(bpy.path.abspath(targetpath)) if self.use_instance: import subprocess @@ -169,7 +170,8 @@ class NODE_OT_EditLinked(bpy.types.Operator): bpy.ops.wm.save_mainfile() settings["original_file"] = bpy.data.filepath - settings["linked_file"] = bpy.path.abspath(targetpath) + # Using both bpy and os abspath functions because Windows doesn't like relative routes as part of an absolute path + settings["linked_file"] = os.path.abspath(bpy.path.abspath(targetpath)) if self.use_instance: import subprocess @@ -311,7 +313,10 @@ class NODE_PT_PanelLinkedEdit(bpy.types.Panel): bl_label = "Edit Linked Library" bl_space_type = 'NODE_EDITOR' bl_region_type = 'UI' - bl_category = "Node" + if bpy.app.version >= (2, 93, 0): + bl_category = "Node" + else: + bl_category = "Item" bl_options = {'DEFAULT_CLOSED'} @classmethod -- GitLab