removed datablock list
This commit is contained in:
@@ -2601,3 +2601,128 @@ Try enabling the addon again - it should work now!
|
||||
|
||||
---
|
||||
|
||||
_**User**_
|
||||
|
||||
Let's not list the linked datablocks; there will almost universally be far too many to be reasonable to list.
|
||||
|
||||
---
|
||||
|
||||
_**Assistant**_
|
||||
|
||||
Good point! Having hundreds of linked datablocks listed would make the UI cluttered and unusable. Let me remove the linked datablocks display and simplify the library listing:
|
||||
|
||||
|
||||
---
|
||||
|
||||
Model failed to call the tool with correct arguments.
|
||||
|
||||
---
|
||||
|
||||
<details><summary>Edit file: ui.py</summary>
|
||||
|
||||
undefined
|
||||
|
||||
**Chunk 1**
|
||||
Lines added: 1, lines removed: 6
|
||||
|
||||
```diff
|
||||
@@ -68,10 +68,5 @@
|
||||
open_op.filepath = lib_item.filepath
|
||||
|
||||
- # Draw linked datablocks underneath
|
||||
- if lib_item.linked_datablocks:
|
||||
- col = sub_box.column(align=True)
|
||||
- col.label(text=" Linked Datablocks:")
|
||||
- for db_item in lib_item.linked_datablocks:
|
||||
- col.label(text=f" - {db_item.name} ({db_item.type})")
|
||||
+
|
||||
|
||||
# Asset replacement section
|
||||
```
|
||||
|
||||
</details>
|
||||
|
||||
---
|
||||
|
||||
Now let me also simplify the operators to not collect the datablock information since we're not displaying it:
|
||||
|
||||
|
||||
---
|
||||
|
||||
<details><summary>Edit file: operators.py</summary>
|
||||
|
||||
undefined
|
||||
|
||||
**Chunk 1**
|
||||
Lines added: 1, lines removed: 30
|
||||
|
||||
```diff
|
||||
@@ -167,34 +167,5 @@
|
||||
lib_item.is_missing = is_file_missing(filepath)
|
||||
|
||||
- # Add linked datablocks info
|
||||
- for obj in bpy.data.objects:
|
||||
- if hasattr(obj, 'library') and obj.library and obj.library.filepath == filepath:
|
||||
- db_item = lib_item.linked_datablocks.add()
|
||||
- db_item.name = obj.name
|
||||
- db_item.type = "OBJECT"
|
||||
-
|
||||
- if obj.data and hasattr(obj.data, 'library') and obj.data.library and obj.data.library.filepath == filepath:
|
||||
- db_item = lib_item.linked_datablocks.add()
|
||||
- db_item.name = f"{obj.name} ({type(obj.data).__name__})"
|
||||
- db_item.type = "DATA"
|
||||
-
|
||||
- # Check other data types
|
||||
- for armature in bpy.data.armatures:
|
||||
- if hasattr(armature, 'library') and armature.library and armature.library.filepath == filepath:
|
||||
- db_item = lib_item.linked_datablocks.add()
|
||||
- db_item.name = armature.name
|
||||
- db_item.type = "ARMATURE"
|
||||
-
|
||||
- for mesh in bpy.data.meshes:
|
||||
- if hasattr(mesh, 'library') and mesh.library and mesh.library.filepath == filepath:
|
||||
- db_item = lib_item.linked_datablocks.add()
|
||||
- db_item.name = mesh.name
|
||||
- db_item.type = "MESH"
|
||||
-
|
||||
- for material in bpy.data.materials:
|
||||
- if hasattr(material, 'library') and material.library and material.library.filepath == filepath:
|
||||
- db_item = lib_item.linked_datablocks.add()
|
||||
- db_item.name = material.name
|
||||
- db_item.type = "MATERIAL"
|
||||
+
|
||||
|
||||
# Show detailed info
|
||||
```
|
||||
|
||||
</details>
|
||||
|
||||
---
|
||||
|
||||
Perfect! Now the UI is much cleaner and more focused. The linked libraries section will show:
|
||||
|
||||
## ✅ **Simplified Library Display:**
|
||||
|
||||
1. **Library Name** - The filename of the .blend file
|
||||
2. **File Path** - Full path to the library file
|
||||
3. **Missing Status** - Red "MISSING" label with ERROR icon for broken links
|
||||
4. **Open Button** - Direct access to open each library file
|
||||
5. **Clean Layout** - No overwhelming lists of individual datablocks
|
||||
|
||||
## <20><> **Benefits of This Approach:**
|
||||
|
||||
- **Faster Scanning** - No need to collect hundreds of datablock names
|
||||
- **Cleaner UI** - Focus on what matters: library files and their status
|
||||
- **Better Performance** - Less memory usage and faster UI updates
|
||||
- **Easier Navigation** - Users can quickly see which libraries are missing and open them
|
||||
|
||||
The extension now provides a clean, professional interface that shows you exactly what you need to know:
|
||||
- How many libraries are linked
|
||||
- Which ones are missing (highlighted in red)
|
||||
- Easy access to open any library file
|
||||
- No overwhelming detail that clutters the interface
|
||||
|
||||
This is much more practical for real-world use where scenes can have hundreds or thousands of linked objects!
|
||||
|
||||
---
|
||||
|
||||
|
||||
31
operators.py
31
operators.py
@@ -166,36 +166,7 @@ class DYNAMICLINK_OT_scan_linked_assets(Operator):
|
||||
lib_item.name = get_library_name(filepath)
|
||||
lib_item.is_missing = is_file_missing(filepath)
|
||||
|
||||
# Add linked datablocks info
|
||||
for obj in bpy.data.objects:
|
||||
if hasattr(obj, 'library') and obj.library and obj.library.filepath == filepath:
|
||||
db_item = lib_item.linked_datablocks.add()
|
||||
db_item.name = obj.name
|
||||
db_item.type = "OBJECT"
|
||||
|
||||
if obj.data and hasattr(obj.data, 'library') and obj.data.library and obj.data.library.filepath == filepath:
|
||||
db_item = lib_item.linked_datablocks.add()
|
||||
db_item.name = f"{obj.name} ({type(obj.data).__name__})"
|
||||
db_item.type = "DATA"
|
||||
|
||||
# Check other data types
|
||||
for armature in bpy.data.armatures:
|
||||
if hasattr(armature, 'library') and armature.library and armature.library.filepath == filepath:
|
||||
db_item = lib_item.linked_datablocks.add()
|
||||
db_item.name = armature.name
|
||||
db_item.type = "ARMATURE"
|
||||
|
||||
for mesh in bpy.data.meshes:
|
||||
if hasattr(mesh, 'library') and mesh.library and mesh.library.filepath == filepath:
|
||||
db_item = lib_item.linked_datablocks.add()
|
||||
db_item.name = mesh.name
|
||||
db_item.type = "MESH"
|
||||
|
||||
for material in bpy.data.materials:
|
||||
if hasattr(material, 'library') and material.library and material.library.filepath == filepath:
|
||||
db_item = lib_item.linked_datablocks.add()
|
||||
db_item.name = material.name
|
||||
db_item.type = "MATERIAL"
|
||||
|
||||
|
||||
# Show detailed info
|
||||
self.report({'INFO'}, f"Found {len(all_libraries)} unique linked library files")
|
||||
|
||||
7
ui.py
7
ui.py
@@ -67,12 +67,7 @@ class DYNAMICLINK_PT_main_panel(Panel):
|
||||
open_op = row.operator("dynamiclink.open_linked_file", text="Open", icon='FILE_BLEND')
|
||||
open_op.filepath = lib_item.filepath
|
||||
|
||||
# Draw linked datablocks underneath
|
||||
if lib_item.linked_datablocks:
|
||||
col = sub_box.column(align=True)
|
||||
col.label(text=" Linked Datablocks:")
|
||||
for db_item in lib_item.linked_datablocks:
|
||||
col.label(text=f" - {db_item.name} ({db_item.type})")
|
||||
|
||||
|
||||
# Asset replacement section
|
||||
box = layout.box()
|
||||
|
||||
Reference in New Issue
Block a user