feat(编辑能力): 支持复合对象内部编辑,优化提示文案与操作稳定性
build.yaml / build (push) Successful in 36s

This commit is contained in:
xiaoqidun committed 2026-09-17 15:13:30 +08:00
1 parent 094f67e333
commit 896b00148a
14 files changed
+963 -60

No files matched your search

+10 -2
View File
@@ -320,7 +320,7 @@ func (e *Editor) usedResources() (fonts, images []editorResource, spaces []Color
for _, layer := range page.Content.Layer {
for _, object := range layer.Objects {
before, exists := original[editorObjectID(object)]
if origin := e.objectOrigin(editorObjectID(object)); origin != nil && (!exists || before.Type != object.Type) {
if origin := e.objectOrigin(editorObjectID(object)); origin != nil && (!exists || before.Type != object.Type || !reflect.DeepEqual(before.CompositeGraphicUnit, object.CompositeGraphicUnit)) {
for _, name := range origin.page.original.PageRes {
files[e.source.reader.ResPath(resolveResourcePath(origin.page.ref.BaseLoc, "", name))] = true
}
@@ -335,7 +335,7 @@ func (e *Editor) usedResources() (fonts, images []editorResource, spaces []Color
}
switch object.Type {
case "CompositeObject", "CompositeGraphicUnit":
used[object.CompositeGraphicUnit.ResourceID] = true
collectCompositeReferences(object.CompositeGraphicUnit, used)
case "TextObject":
used[object.TextObject.Font] = true
if e.source != nil && (!exists || before.Type != object.Type || before.TextObject.Font != object.TextObject.Font) {
@@ -356,6 +356,14 @@ func (e *Editor) usedResources() (fonts, images []editorResource, spaces []Color
}
}
}
for i := len(e.resources) - 1; i >= 0; i-- {
resource := e.resources[i]
if resource.composite != "" && used[resource.composite] {
for _, id := range resource.references {
used[id] = true
}
}
}
for _, resource := range e.resources {
if resource.composite != "" && used[resource.composite] {
files[resource.name] = true